目录
一:系统定时任务
二:系统定时任务配置文件(crontab)
三:增加定时任务
1.crontab -e
2.1.sh
3.2.txt
四:查看crontab定时任务
五:定时任务配置文件(root最终结论)
六:定时任务日志文件
七:日志常用命令
八:定时任务格式(全面解析《秒懂》)
定时任务作用说明
1.类似于生活中使用的闹钟
2.可以自动完成操作命令
3.定时备份系统数据信息
一:系统定时任务
系统定时任务周期:每小时 控制定时任务目录:/etc/cron.hourly
定时 每小时顺序:
1.进入定时任务目录
[root@localhost ~]# cd /etc/cron.hourly
2.创建普通文件
[root@localhost cron.hourly]# touch 1.sh
3.增加可执行权限
[root@localhost cron.hourly]# chmod +x 1.sh
4.hourly内的可执行文件,每小时都会从头到尾的执行一遍。
系统定时任务周期:每一天 控制定时任务目录:/etc/cron.daily
1.进入定时任务目录
[root@localhost ~]# cd /etc/cron.daily
2.创建普通文件
[root@localhost cron.hourly]# touch 1.sh
3.增加可执行权限
[root@localhost cron.hourly]# chmod +x 1.sh
4.hourly内的可执行文件,每小时都会从头到尾的执行一遍。
系统定时任务周期:每一周 控制定时任务目录:/etc/cron.weekly
1.进入定时任务目录
[root@localhost ~]# cd /etc/cron.weekly
2.创建普通文件
[root@localhost cron.hourly]# touch 1.sh
3.增加可执行权限
[root@localhost cron.hourly]# chmod +x 1.sh
4.hourly内的可执行文件,每小时都会从头到尾的执行一遍。
系统定时任务周期:每个月 控制定时任务目录:/etc/cron.monthly
1.进入定时任务目录
[root@localhost ~]# cd /etc/cron.monthly
2.创建普通文件
[root@localhost cron.hourly]# touch 1.sh
3.增加可执行权限
[root@localhost cron.hourly]# chmod +x 1.sh
4.hourly内的可执行文件,每小时都会从头到尾的执行一遍。
二:系统定时任务配置文件(crontab)
1.定时任务配置文件路径
cd /etc/crontab
2.crontab表达式
* * * * * : crontab表达式
*(分)*(时)*(天)*(月)*(周)
3.定时任务软件(crontab)
默认系统自带定时软件《crontab》
4.crontab 能检查表达式是否正确,但无法检查命令是否正确
三:增加定时任务
1.进入增加定时任务命令
[root@localhost ~]# crontab -e
2.vim 1.sh 编写
[root@localhost ~]# vim 1.sh
3.vim 2.txt 编写
[root@localhost ~]# vim 2.txt
4.到时自动执行crontab -e 指定执行文件
1.crontab -e
2.1.sh
3.2.txt
四:查看crontab定时任务
``
1.查看crontab定时任务
crontab -l
五:定时任务配置文件(root最终结论)
1.定时任务配置文件命令
cd /var/spool/cron/root
1 每一个用户的定时任务是相对隔离,在/var/spool/cron目录下,以当前用户的用户名命名的文件,每一个用户都会在这个目录以它的用户名命名。
2 执行定时任务属主就是用户名自己,每一个用户的定时任务都是以它当前用户的用户信息去执行的。
解析得出最终结论:
不能执行到root下 root文件表示是root用户设置的定时任务
当python需要设置定时任务 以用户名root命名即可 不需要crontab。
六:定时任务日志文件
1.定时任务运行记录日志文件
cat /var/log/cron
2.定时任务禁止用户运行黑名单
/etc/cron.deny
![image.png](https://upload-images.jianshu.io/upload_images/17572385-938e50cffa680135.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
七:日志常用命令
head : 从头开始查看文件,默认查看10行
-n : 指定查看多少行
tail : 从尾部开始查看文件,默认查看10行
-n : 指定查看多少行
[root@localhost ~]# tail -n 20 /var/log/cron
-f : 实时监控文变化
[root@localhost ~]# tail -f /var/log/cron
less : 类似于vim的方式查看文件
less /var/log/cron
解析less:
类似于文件
q : 退出
八:定时任务格式(全面解析《秒懂》)
```
crontab (表达式)
* * * * *
1.每隔2分钟执行
*/2 * * * *
2.每天的2,4,6,8,10这4个小时的1分钟执行
01 2,4,6,8,10 * * *
3.每天的2到6点执行
* 2-6 * * *
4.每天的2到6点中每隔2小时执行
* 2-6/2 * * *
5.每天的2点时执行,但是这天必须是周二
* 02 * * 02
每五分钟执行一次: */5 * * * *
每小时执行一次 : 0 * * * *
每天执行一次: 0 0 * * *
每周执行一次: 0 0 * * 0
每月执行一次: 0 0 1 * *
每年执行一次: 0 0 1 1 *
每天早上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
```
九、crontab 常用命令:
```
systemctl stop crond #关闭crontab服务
systemctl start crond #开启crontab服务
systemctl restart crond #重启crontab服务
tail -f /var/log/cron #打印crontab日志(默认打印10条)
crontab -uroot -e
#编辑crontab服务,配合insert esc :wq(保存退出) :q!(不保存退出)等指令
crontab -l #列出crontab任务列表
# 每次修改crontab之后会默认重启crontab
```
来源:https://www.bbsmax.com/A/kPzONwBZdx/
https://blog.csdn.net/weixin_46560512/article/details/123559180
http://t.zoukankan.com/allenclare-p-8622286.html