1. 使用 crontab -e 命令编辑定时任务列表
使用这个命令编辑的定时任务列表是属于用户级别的,初次编辑后在 /var/spool/cron 目录下生成一个与用户名相同的文件,文件内容就是我们的定时任务列表。如没有定时任务,这个文件就是空文件。crontab命令还有一些其他的选项 -u #指定哪个用户的cron服务,一般是root用户执行这个命令的时候需要 -l #列出用户的定时任务列表,默认当前用户 -r #删除用户的定时任务列表,默认当前用户 -e #编辑用户的定时任务列表,默认当前用户
2. 直接编辑 /etc/crontab 文件,命令如下:
编辑 /etc/crontab 文件只有 root 用户才行
vim /etc/crontab
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed
区别:rontab -e 会进行语法检查、直接编辑 /etc/crontab 文件则不会
3.定时器
* * * * * sh run.sh* * * * * sleep 10; sh run.sh* * * * * sleep 20; sh run.sh* * * * * sleep 30; sh run.sh* * * * * sleep 40; sh run.sh* * * * * sleep 50; sh run.sh
4.编辑crontab文件
如果希望添加、删除或编辑crontab文件中的条目,而EDITOR环境变量又设置为vi,那么就可以用vi来编辑crontab文件,相应的命令为: $ crontab -e 可以像使用vi编辑其他任何文件那样修改crontab文件并退出。
删除crontab文件 为了删除crontab文件,可以用: $ crontab -r
注释crontab文件 如果不希望删除写好的crontab文件,在该crontab文件前添加#将该文件注释掉。
crontab中的输出配置
crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。
shell命令的结果可以通过‘> ’的形式来定义输出
/dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么重定向输出语句的含义:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
5.定时规则:
crontab的语法规则格式:
代表意义 | 分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
---|---|---|---|---|---|---|
数字范围 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | 需要执行的命令 |
周的数字为 0 或 7 时,都代表“星期天”的意思。
引用自:https://blog.csdn.net/xinyflove/article/details/83178876
1.每分钟定时执行一次规则:
每1分钟执行: */1 * * * *或者* * * * * 每5分钟执行: */5 * * * *2.每小时定时执行一次规则:
每小时执行: 0 * * * *或者0 */1 * * * 每天上午7点执行:0 7 * * * 每天上午7点10分执行:10 7 * * *3.每天定时执行一次规则:
每天执行 0 0 * * *4.每周定时执行一次规则:
每周执行 0 0 * * 05.每月定时执行一次规则:
每月执行 0 0 1 * *6.每年定时执行一次规则:
每年执行 0 0 1 1 *