● 工作中,同事问起linux的定时任务,告诉其简单用法,有些参数已经遗忘了,写下此博客以备后续查看!
● 打开编辑定时任务
#任意路径即可
[root@qjw-01 ~]# crontab -e
● 查看定时任务列表
[root@qjw-01 usr]# crontab -l
* * * * * sleep 10; echo 111 >> hello.txt
● 删除用户下定时任务
[root@qjw-01 usr]# crontab -r
[root@qjw-01 usr]# crontab -l
no crontab for root
● 定时任务参数详解
定时器有5个参数,分别是 : minute , hour , day-of-month , month , day-of-week + 需要执行的任务
minute : 每分钟 0-59
hour : 每小时 0 -23
day-of-month : 一个月中的第几天 1-31
month : 一年中的第几个月 1-12
day-of-week : 一周中的星期几 0-7 0和7都代表周日
--------------------------------------------------------------------
上述参数不填则填写 * ,每个参数之间空一格,如下:
* * * * * echo hello >> /root/hello.log
问题来了,同事需要每秒执行一个任务,crontab定时是在想不出来,我只能用脚本!
看了网上说可以使用sleep:
[root@qjw-01 ~]# crontab -l
* * * * * sleep 1;echo hello >> /root/y.log
然后以失败告终,emmmm…
只能使用脚本 :
[root@qjw-01 ~]# vi schedule.sh
#!/bash/bin
while [ 1 ]
do
echo $(date "+%Y-%m-%d %H:%M:%S") >> /root/y.log
sleep 1
done
#每秒打印时间脚本
● 补充一些例子
#定时每天8点30做XXXX
30 8 * * * XXXX
#定时8点到18点和20点做XXXX
* 8-18,20 * * * XXXX
#定时8点到18点间隔2小时,20点 do XXXXX
* 8-18/2,20 * * * XXXXX