我的博客主页:笔头博客
在centos7 上可以利用crontab 来执行计划任务, 依赖与 crond 的系统服务,这个服务是系统自带的,可以直接查看状态,启动,停止。
计划任务的环境变量要使用绝对路径去执行
# 查看状态
systemctl status crond
# 设为开机启动
systemctl enable crond
# 启动crond服务
systemctl start crond
配置用户定时任务
crontab 可以设置针对某个用户的定时任务
# 编辑某个用户的定时任务
crontab -u {用户名} -e
# 默认使用当前用户编辑定时任务
crontab -e
命令参数
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
LOG
/var/log/cron
将脚本改为可执行(针对shell,.sh文件)
chmod +x filename
cron 脚本
cron脚本文件后缀为 .cron 例:mycron.cron
1、创建脚本并写入内容
vi mycron.cron
# 写入
0 6 * * * echo "Good morning." >> /tmp/test.txt
2、添加定时任务
crontab crontest.cron
3、 查看结果
crontab -l
# 或查看该目下是生成对应cron脚本
/var/spool/cron
配置参数
95.jpg例:
# 每天,每30分钟执行一次 mycrontab 脚本
*/30 * * * root /usr/local/mycrontab.sh
# 每天凌晨三点,执行脚本
# 由于第一个的分钟没有设置,所以每天凌晨3点的每分钟都执行一次脚本
* 3 * * * root /usr/local/mycrontab.sh
# 这样就是每天凌晨三点整执行一次脚本
00 3 * * * root /usr/local/mycrontab.sh
# 每天11点到13点之间,每10分钟执行一次脚本
*/10 11-13 * * * root /usr/local/mycrontab.sh
# 每小时的10-30分钟,每分钟执行一次脚本,共执行20次
10-30 * * * * root /usr/local/mycrontab.sh
# 每小时的10,30分钟,分别执行一次脚本,共执行2次
10,30 * * * * * root /usr/local/mycrontab.sh
# 每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
# 每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
# 晚上11点到早上8点之间每两个小时和早上八点
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
# 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
# 1月1日早上4点
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/
# 每小时执行/etc/cron.hourly内的脚本
01 * * * * root run-parts /etc/cron.hourly
# 每天执行/etc/cron.daily内的脚本
02 4 * * * root run-parts /etc/cron.daily
# 每星期执行/etc/cron.weekly内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly
# 每月去执行/etc/cron.monthly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly
# 注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。
# 每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
5,15,25,35,45,55 16,17,18 * * * command
# 每周一,三,五的下午3:00系统进入维护状态,重新启动系统。
00 15 * * 1,3,5 shutdown -r +5
# 每小时的10分,40分执行用户目录下的innd/bbslin这个指令:
10,40 * * * * innd/bbslink
# 每小时的1分执行用户目录下的bin/account这个指令:
1 * * * * bin/account
# 每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):
20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
# 每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。
12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt
# 每月1、 10、22日的4 : 45重启nginx。
45 4 1,10,22 * * /etc/init.d/nginx restart
# 每周六、周日的1 : 10重启nginx。
10 1 * * 6,0 /etc/init.d/nginx restart
# 每天18 : 00至23 : 00之间每隔30分钟重启nginx。
0,30 18-23 * * * /etc/init.d/nginx restart
# 每星期六的11 : 00 pm重启nginx。
0 23 * * 6 /etc/init.d/nginx restart
# 每一小时重启nginx
* */1 * * * /etc/init.d/nginx restart
# 晚上11点到早上7点之间,每 隔一小时重启nginx
* 23-7/1 * * * /etc/init.d/nginx restart
# 每月的4号与每周一到周三 的11点重启nginx
0 11 4 * mon-wed /etc/init.d/nginx restart
# 一月一号的4点重启nginx
0 4 1 jan * /etc/init.d/nginx restart
# 每半小时同步一下时间
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20
网友评论