Linux使用crontab
crontab为Linux下的计划任务程序,对应的服务为crond。crond是一个守护进程,每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux系统上面原本就有非常多的计划性工作,故而,这个系统服务是默认启动的。
安装crontab
yum install cronie
启动crontab
# 启动任务
systemctl start crond
# 开机自启
systemctl enable crond
# 查看状态
systemctl status crond
查看定时任务
查看定时任务,查看当前用户下的
crontab -l
切换用户后查看
创建定时任务
配置案例
创建定时任务测试文件
# 执行一次写入一次666
vim test_crontab.sh
echo '6666' >> /home/ldsx/out_put.txt
配置定时任务
# 会打开一个编辑版
crontab -e
# 配置58,59分钟运行,在16点,(日期,月,星期不限)
58-59 16 * * * /home/ldsx/test_crontab.sh
配置语法
位置含义
MIN HOUR DOM MON DOW CMD
MIN表示分钟,范围是0到59。
HOUR表示小时,范围是0到23。
DOM表示月份中的第几天,范围是1到31。
MON表示月份,范围是1到12。
DOW表示一周中的第几天,范围是0到7,其中0和7都表示周日。
CMD表示要执行的命令或脚本。
配置58,59分钟运行,在16点,(日期,月,星期不限)
58-59 16 * * * /home/ldsx/test_crontab.sh
#每分钟执行
* * * * * /home/ldsx/test_crontab.sh 每分钟都需要执行
#每个小时执行
0 * * * *
#每天执行 (1点0分执行)
0 1 * * *
#每月执行 (1号1点0分执行)
0 1 1 * *
符号含义
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
注意
在使用crontab命令时,需要注意时间字段使用的是24小时制,一天的时间是0~23
取消定时任务
使用#注释任务,或者直接删除,当你注释时crontab -l 也会显示被注释的任务
crontab -e
# 58-59 16 * * * /home/ldsx/test_crontab.sh
清空任务,会删除所有配置
crontab -r