crontab 定时任务报错:crontab -e 然后 保存下退出。估计是新账户并没有crontab文件。
1.查看定时任务状态:
1 |
sudo service cron status |

2.编写定时任务
1 |
crontab -e |
ubuntu初次使用会让你选择文本编辑器,默认是 nano ,但是我只会用 vim
,所以选择 3,如图:

1 2 3 4 5 6 7 8 9 10 |
如果你第一次贸然选择了默认,再想切回vim,用如下方法 crontab默认编辑器为nano,不方便使用。 修改crontab默认编辑器为vi或者其他的编辑器。 export EDITOR="/usr/bin/vim" ; crontab -e 更简单的办法,直接执行命令:select-editor 然后选择编辑器 |
编辑定时任务,在最后插入以下内容就可以了:
1 2 3 4 5 6 |
* * * * * /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 10; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 20; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 30; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 40; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 50; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 |

前面都是实操,这里才是干货。
Cron 服务命令:
1 2 3 4 5 6 7 8 |
# 查看服务状态 sudo service cron status # 开启服务 sudo service cron start # 停止服务 sudo service cron stop # 重启服务 sudo service cron restart |
设置定时任务
1 2 3 4 5 6 7 |
# 如果服务没有开启,开启该服务 sudo service cron restart # 输入该命令,修改crontab配置。第一次输入该命令时,会提示选择编辑工具,一般选择vim(vi)即可。 crontab –e # 在上一步打开的终端中(第一次使用该命令的话,在选择编辑工具后),输入下面的内容 # 该内容表示,在每天的0点0分,执行脚本MakeProject.sh 0 0 * * * /home/linduo/Project/MakeProject.sh |
Crontab定时任务命令格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 格式如下 # minute hour day-of-month month-of-year day-of-week commands # 00-59 00-23 01-31 01-12 0-6 (0 is sunday) # 每天0点0分,执行指定脚本 0 0 * * * /home/linduo/Project/MakeProject.sh # 星期1到星期5,11点30分,执行指定脚本 30 11 * * 1,2,3,4,5 /home/linduo/Project/MakeProject.sh # 星期1、星期3、星期5,23点00,执行指定脚本,并将内容重定向到文件(使用日期命名) # 获取日期命令,必须使用如下格式,否则会导致cron执行失败。 00 23 * * 1,3,5 /home/linduo/Project/MakeProject.sh all >> "/home/linduo/Project/Build_$(date +"\%Y-\%m-\%d")".log 2>&1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
首先 crontab 任务配置基本格式: * * * * * command 第1列表示分钟0~59 每分钟用*或者 */1表示 第2列表示小时0~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0,7都可表示星期天) 第6列要运行的命令 crontab 中增加延迟30秒来实现,就是延迟加载。 * * * * * /root/hr/mod.sh * * * * * sleep 30; /root/hr/mod.sh 看懂了吗?其实就是将一分钟平分为几块,如果你想 30 秒就平分为两块写一次 sleep,如果想 10 秒就是平分为 6 次,写 5 个 sleep ,同理 20 秒就是平分为 3 个,写 2 个 sleep,一次类推。 所以如果你想 5 秒钟执行一个,就是11个sleep: * * * * * /root/hr/mod.sh * * * * * sleep 5; /root/hr/mod.sh * * * * * sleep 10; /root/hr/mod.sh * * * * * sleep 15; /root/hr/mod.sh * * * * * sleep 20; /root/hr/mod.sh * * * * * sleep 25; /root/hr/mod.sh * * * * * sleep 30; /root/hr/mod.sh * * * * * sleep 35; /root/hr/mod.sh * * * * * sleep 40; /root/hr/mod.sh * * * * * sleep 45; /root/hr/mod.sh * * * * * sleep 50; /root/hr/mod.sh * * * * * sleep 55; /root/hr/mod.sh |
部署在当前用户下
1 |
sudo vim /var/spool/cron/crontabs/shooter |
1 2 3 4 5 6 |
* * * * * /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 10; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 20; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 30; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 40; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 * * * * * sleep 50; /opt/script/wifi_status_reports.sh >> /opt/script/logs/log.txt 2>&1 |
记得要给写入日志的文件777权限
- 本文固定链接: https://www.yoyoask.com/?p=4834
- 转载请注明: shooter 于 SHOOTER 发表