$ cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # 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 根据输出可知,该命令分三部分,
身份期中以什么身份运行脚本,可通过 $ sudo crontab -u user001 -e 上述命令将以 也可以直接编辑 1 1 * * * user001 user001 /data/home/user001/test.sh job 的管理
循环周期5 个
所以如下格式:
表示 “12 月 11 日的 5:30” 打印 “hello”。 特殊符号
|
Entry | Description | Equivalent to |
---|---|---|
@yearly (or @annually) |
每年一月午夜 | 0 0 1 1 * |
@monthly |
每月首日午夜 | 0 0 1 * * |
@weekly |
每周天午夜 | 0 0 * * 0 |
@daily (or @midnight) |
每天午夜 | 0 0 * * * |
@hourly |
每小时 | 0 * * * * |
@reboot |
重启时 | N/A |
示例:重启后启动 redis
@reboot /usr/local/bin/redis-server /path/to/redis.conf
每分钟打印日期到指定文件,
crontab -e
打开 job 编辑界面*/1 * * * * date >> /data/home/wayongliu/foo.txt
然后 :wq
保存退出tail -f
/data/home/wayongliu/foo.txt` 查看结果因为能设置的最小时间单位为分,需要设置每隔多少秒执行时,就需要变通来实现。
借助 sleep,可不用 crontab, 比如每 5 秒:
#!/bin/bash while true do /home/user/myscript.sh sleep 5 done
也可以 sleep 与 crontab 结合来用,考虑到每 5 秒,一分钟内即执行 12 次,可以设置 12 个 job:
* * * * * /home/user/myscript.sh * * * * * sleep 5; /home/user/myscript.sh * * * * * sleep 10; /home/user/myscript.sh * * * * * sleep 15; /home/user/myscript.sh * * * * * sleep 20; /home/user/myscript.sh * * * * * sleep 25; /home/user/myscript.sh * * * * * sleep 30; /home/user/myscript.sh * * * * * sleep 35; /home/user/myscript.sh * * * * * sleep 40; /home/user/myscript.sh * * * * * sleep 45; /home/user/myscript.sh * * * * * sleep 50; /home/user/myscript.sh * * * * * sleep 55; /home/user/myscript.sh
其中第一个任务会在每分钟开始时执行,
第二个也是每分钟开始执行,不过会 sleep 5s,所以实际是每分钟每 5s 的时候执行,
后面的任务类似,从而达到了需要的效果。
The text was updated successfully, but these errors were encountered: