Linux Crontab

前言

在 Linux 中 crontab 默认都是安装好的,如果遇到了 crontab 没安装的情况先安装 crontab

php 复制代码
$ sudo apt update
$ sudo apt install cron

安装完成后检查 service 的路径

shell 复制代码
$ which service

启动 crontab 并查看是否正常运行

shell 复制代码
$ sudo /usr/sbin/service cron start
start: Job is already running: cron
$ ps -ef | grep cron

其他相关指令

shell 复制代码
$ sudo /usr/sbin/service cron status #查询服务状态
$ sudo /usr/sbin/service cron reload #重新配置
$ sudo /usr/sbin/service cron restart #服务重启

建立 crontab 并选择默认编辑器

php 复制代码
$ crontab -e

Crontab 使用

bash 复制代码
# Example of job definition:
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

# 每天早上8点30分执行
30 8 * * * /home/test/script.sh --your --parameter

# 每周日下午6点30分执行
30 18 * * 0 yourcommand

# 每年12月24日早上8点00分执行
0 8 12 24 * yourcommand

# 每月1日、15日早上12点30分各执行一次
30 12 1,15 * * yourcommand

# 每隔5分钟执行一次
*/5 * * * * yourcommand

# 从早上8点到下午4点,遇到整点就执行

Crontab log输出

网上文章都说 crontablog 会在 /var/log/cron 下,但我不管怎么找都找不到,所以我干脆自己将 log 输出至指定位置,这里我设了一个测试用的 cron 每五分钟 run 一次 echo 并将结果输出至 /home/test/cronlog.log

bash 复制代码
*/5 * * * * echo 12345 >> /home/test/cronlog.log 2>&1

I/O 重定向

一般的 Linux 指令在执行时,会有三个输入与输出的数据流,分别为:

  1. 标准输入(standard input,代码为 0 ):程序执行所需要的输入数据。

  2. 标准输出(standard output,代码为 1 ):程序正常执行所产生的输出数据。

  3. 标准错误输出(standard error output,代码为 2 ):程序出错时通知使用者用的信息,或是体现程序状态用的信息。

简单举例

shell 复制代码
$ ls > output.txt

代表将 ls 的结果输出至 output.txt ,而 > 代表如果没有文件则新增,有文件就直接覆盖掉,如不想直接覆盖要接续加入可改用 >>

但这样只会有标准输出,若在执行中遇到错误的话 output.txt 内并不会显示,因为我们并没有将错误输出导到文件。

lua 复制代码
$ ls >> output.txt 2 >> error.txt

使用以上方法可以将标准输出导至 output.txt 而错误信息导至 error.txt 。那若想将标准输出和错误信息都导至同一个文件呢?

shell 复制代码
$ ls >> output.txt 2>&1

2>&1 就是把标准错误输出 2 导入标准输出 1 ,然后再靠著 >> 把所有的数据全部导入 output.txt,这样所有的输出信息就会一起存入 outpupt.txt 中了。

相关推荐
小陈phd21 分钟前
Vscode LinuxC++环境配置
linux·c++·vscode
是阿建吖!25 分钟前
【Linux】进程状态
linux·运维
草莓base40 分钟前
【手写一个spring】spring源码的简单实现--容器启动
java·后端·spring
明明跟你说过1 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
Ljw...1 小时前
表的增删改查(MySQL)
数据库·后端·mysql·表的增删查改
编程重生之路1 小时前
Springboot启动异常 错误: 找不到或无法加载主类 xxx.Application异常
java·spring boot·后端
薯条不要番茄酱1 小时前
数据结构-8.Java. 七大排序算法(中篇)
java·开发语言·数据结构·后端·算法·排序算法·intellij-idea
Komorebi.py2 小时前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh2 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
内核程序员kevin5 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip