Linux  定时任务crontab实现秒级定时以及@reboot的一些问题

Linux自带的crontab定时任务服务还是比较强大的,通过该服务结合脚本可以实现很多功能,实乃运维工作的一大神器。

首先明确一点,定时任务自然需要有任务,任务分为脚本任务和系统自带命令。

如果有这样一个脚本任务,仅仅需要开机后运行一次,那么,crontab结合@reboot是一个不错的选项。如果是系统自带命令任务,@reboot不一定会执行,由于系统开机初始化,很有可能系统自带命令运行环境并不满足,但crontab已经开始执行@reboot,从而造成命令运行失败。

@reboot的使用方法如下:

crontab -e -u root,这时候打开了一个文本编辑窗口,输入如下内容

@reboot /bin/bash/脚本路径和脚本名称

保存后关闭,重启机器会自动执行一次脚本。

Linux 定时任务crontab实现秒级定时以及@reboot的一些问题_linux

重启后,会在/root 目录下生成一个 名为 hello.txt 的文件。建议要执行的任务最好是脚本,本例使用的是touch命令,可能别的命令就不一定会成功了。

因此,如果有一些服务没有写进systemd守护的自启进程,可以使用此方法来进行代替,比如,weblogic服务只编写有启动脚本,这个时候将该服务的启动脚本利用@reboot 就可以做成自启服务了。

秒级定时任务的实现是利用sleep 刷新时间后,会执行后续命令的方式来实现。详情见下面。

*/1 * * * * /bin/date >>/tmp/date.txt
*/1 * * * * sleep 5 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 10 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 15 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 20 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 25 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 30 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 35 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 40 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 45 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 50 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 55 ; /bin/date >>/tmp/date.txt
*/1 * * * * sleep 25 ; /bin/date >>/tmp/date.txt



*/1 * * * * /bin/date >>/tmp/date.txt
*/1 * * * * sleep 10 ; /bin/date >>/root/date.txt
*/1 * * * * sleep 20 ; /bin/date >>/root/date.txt
*/1 * * * * sleep 30 ; /bin/date >>/root/date.txt
*/1 * * * * sleep 40 ; /bin/date >>/root/date.txt
*/1 * * * * sleep 50 ; /bin/date >>/root/date.txt

#两个任务,第一个任务是每隔五秒将当前时间写入 /tmp/date.txt,第二个任务是每隔10秒将当前时间写入
#/root/date.txt文件,tail -f /tmp/date.txt 可以实时的看到任务的执行。
#如果是别的任务,将命令根据实际情况替换即可。