定时任务

目录
一:系统定时任务
二:系统定时任务配置文件(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内的可执行文件,每小时都会从头到尾的执行一遍。
image.png
系统定时任务周期:每一天 控制定时任务目录:/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 能检查表达式是否正确,但无法检查命令是否正确
image.png

三:增加定时任务

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

image.png

2.1.sh


image.png

3.2.txt


image.png

四:查看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

你可能感兴趣的:(定时任务)