这里分享的是Centos简单设置定时任务,我们通过本文方式简单设置定时任务。
系统默认情况下crontab是已经安装好的。
![Centos简单设置定时任务 图片[1]-Centos简单设置定时任务-不念博客](https://www.bunian.cn/wp-content/uploads/2023/12/u12618049431200660712fm253fmtautoapp138fJPEG.webp)
下面代码是服务常规命令:
- crontab -u 设定某个用户的cron服务
- crontab -l 显示crontab文件(显示已设置的定时任务)
- crontab -e 编辑crontab文件(编辑定时任务)
- crontab -r 删除crontab文件(删除定时任务)
- crontab -i 删除crontab文件提醒用户(删除定时任务)
分享2种编辑定时任务的方式:
crontab定时脚本时间解释:
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=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用户的定时任务分6段,分别是:分,时,日,月,周,命令第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令*:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分-:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令/n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次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 用户的定时任务分6段,分别是:分,时,日,月,周,命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 *:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分 -:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令 ,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令 /n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次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 用户的定时任务分6段,分别是:分,时,日,月,周,命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 *:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分 -:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令 ,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令 /n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次
1、使用crontab -e 命令编辑:
中输入crontab -e 使用vim编辑。
2、直接编辑目标文件
进入系统/var/spool/cron/目录,文件名一般是系统用户默认名root,直接文本编辑。
如果你执行了以上两种方式,你再进来看一下这个目录下的文件你可能会发现一点问题。
这里的文件都是以用户名来命名的,你再打开你使用crontab -e 添加过任务的用户文件,原来crontab -e编辑的就是这里的文件,所以我们如果需要为哪个用户添加任务,只用编辑这个目录下对应用户的文件即可。
crontab定时实例:
参数说明:
分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令*/30 * * * root /usr/local/mycommand.sh (每天,每30分钟执行一次 mycommand命令)* 3 * * * root /usr/local/mycommand.sh (每天凌晨三点,执行命令脚本,PS:这里由于第一个的分钟没有设置,那么就会每天凌晨3点的每分钟都执行一次命令)0 3 * * * root /usr/local/mycommand.sh (这样就是每天凌晨三点整执行一次命令脚本)*/10 11-13 * * * root /usr/local/mycommand.sh (每天11点到13点之间,每10分钟执行一次命令脚本,这一种用法也很常用)10-30 * * * * root /usr/local/mycommand.sh (每小时的10-30分钟,每分钟执行一次命令脚本,共执行20次)10,30 * * * * * root /usr/local/mycommand.sh (每小时的10,30分钟,分别执行一次命令脚本,共执行2次)* * * * * 每1分钟执行一次15,30,45 * * * * 每小时的第15、30、45分执行15,30 10-11 * * * 在上午10点到11点的第15和第30分钟执行* */2 * * * 每两个小时执行一次chmod 777 /usr/local/mycommand.shsystemctl restart crond.service分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令 */30 * * * root /usr/local/mycommand.sh (每天,每30分钟执行一次 mycommand命令) * 3 * * * root /usr/local/mycommand.sh (每天凌晨三点,执行命令脚本,PS:这里由于第一个的分钟没有设置,那么就会每天凌晨3点的每分钟都执行一次命令) 0 3 * * * root /usr/local/mycommand.sh (这样就是每天凌晨三点整执行一次命令脚本) */10 11-13 * * * root /usr/local/mycommand.sh (每天11点到13点之间,每10分钟执行一次命令脚本,这一种用法也很常用) 10-30 * * * * root /usr/local/mycommand.sh (每小时的10-30分钟,每分钟执行一次命令脚本,共执行20次) 10,30 * * * * * root /usr/local/mycommand.sh (每小时的10,30分钟,分别执行一次命令脚本,共执行2次) * * * * * 每1分钟执行一次 15,30,45 * * * * 每小时的第15、30、45分执行 15,30 10-11 * * * 在上午10点到11点的第15和第30分钟执行 * */2 * * * 每两个小时执行一次 chmod 777 /usr/local/mycommand.sh systemctl restart crond.service分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令 */30 * * * root /usr/local/mycommand.sh (每天,每30分钟执行一次 mycommand命令) * 3 * * * root /usr/local/mycommand.sh (每天凌晨三点,执行命令脚本,PS:这里由于第一个的分钟没有设置,那么就会每天凌晨3点的每分钟都执行一次命令) 0 3 * * * root /usr/local/mycommand.sh (这样就是每天凌晨三点整执行一次命令脚本) */10 11-13 * * * root /usr/local/mycommand.sh (每天11点到13点之间,每10分钟执行一次命令脚本,这一种用法也很常用) 10-30 * * * * root /usr/local/mycommand.sh (每小时的10-30分钟,每分钟执行一次命令脚本,共执行20次) 10,30 * * * * * root /usr/local/mycommand.sh (每小时的10,30分钟,分别执行一次命令脚本,共执行2次) * * * * * 每1分钟执行一次 15,30,45 * * * * 每小时的第15、30、45分执行 15,30 10-11 * * * 在上午10点到11点的第15和第30分钟执行 * */2 * * * 每两个小时执行一次 chmod 777 /usr/local/mycommand.sh systemctl restart crond.service
超实用的Crontab使用实例:
实例1:每1分钟执行一次root /usr/local/mycommand.sh
* * * * * root /usr/local/mycommand.sh* * * * * root /usr/local/mycommand.sh* * * * * root /usr/local/mycommand.sh
实例2:每小时的第3和第15分钟执行
3,15 * * * * root /usr/local/mycommand.sh3,15 * * * * root /usr/local/mycommand.sh3,15 * * * * root /usr/local/mycommand.sh
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * root /usr/local/mycommand.sh3,15 8-11 * * * root /usr/local/mycommand.sh3,15 8-11 * * * root /usr/local/mycommand.sh
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * root /usr/local/mycommand.sh3,15 8-11 */2 * * root /usr/local/mycommand.sh3,15 8-11 */2 * * root /usr/local/mycommand.sh
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 root /usr/local/mycommand.sh3,15 8-11 * * 1 root /usr/local/mycommand.sh3,15 8-11 * * 1 root /usr/local/mycommand.sh
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart30 21 * * * /etc/init.d/smb restart30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart45 4 1,10,22 * * /etc/init.d/smb restart45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart10 1 * * 6,0 /etc/init.d/smb restart10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart0,30 18-23 * * * /etc/init.d/smb restart0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart0 23 * * 6 /etc/init.d/smb restart0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
0 */1 * * * /etc/init.d/smb restart0 */1 * * * /etc/init.d/smb restart0 */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart0 23-7/1 * * * /etc/init.d/smb restart0 23-7/1 * * * /etc/init.d/smb restart
相关文件
#该文件中所列用户不允许使用crontab命令/etc/cron.deny# 该文件中所列用户允许使用crontab命令/etc/cron.allow#所有用户crontab文件存放的目录,以用户名命名/var/spool/cron/# crond日志文件/var/log/cron#该文件中所列用户不允许使用crontab命令 /etc/cron.deny # 该文件中所列用户允许使用crontab命令 /etc/cron.allow #所有用户crontab文件存放的目录,以用户名命名 /var/spool/cron/ # crond日志文件 /var/log/cron#该文件中所列用户不允许使用crontab命令 /etc/cron.deny # 该文件中所列用户允许使用crontab命令 /etc/cron.allow #所有用户crontab文件存放的目录,以用户名命名 /var/spool/cron/ # crond日志文件 /var/log/cron
保存生效 加载任务,使之生效:
crontab /etc/crontabcrontab /etc/crontabcrontab /etc/crontab
查看任务
crontab -lcrontab -u 用户名 -l #列出用户的定时任务列表crontab -lcrontab -u 用户名 -l #列出用户的定时任务列表crontab -lcrontab -u 用户名 -l #列出用户的定时任务列表
查看日志
tailf /var/log/crontailf /var/log/crontailf /var/log/cron
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END