Linux系统定时任务

Linux系统定时任务

定时任务Crond

    Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便会启动Crond任务调度服务。

Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于我们平时早起使用的闹钟一样。 

 

程序文件:程序代码组成,但是没有在计算机内执行。当前没有执行

进程:所谓的进程就是计算机中正在执行的程序

守护程序或守护进程:守护进程就是一种运行的程序

Linux系统定时任务_第1张图片

 

crontab -l用来查看定时任务信息

 

下面是定时任务的使用指定格式:

# 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

简单点儿记就是分时日月周,*代表每的意思

例:

①30 3,12 * * * /bin/sh /scripts/oldboy.sh

每天凌晨3点半和中午12点半的时刻执行/scripts/oldboy.sh脚本

②30 */6 * * * /bin/sh /scripts/oldboy.sh

每6小时30分执行一次/scripts/oldboy.sh脚本

③30 8-18/2 * * * /bin/sh /scripts/oldboy.sh

在每天的8点到18点之间,每隔2小时的   半点时刻执行/scripts/oldboy.sh

④30 21 * * * /application/apache/bin/apachectl graceful

每天晚上9点半重启apache

⑤ 45 4 1,10,22 * * /application/apache/bin/apachectl graceful

每月1日10日22日的4点45分重启apache

⑥ 10 1 * * 6,0 /application/apache/bin/apachectl graceful

每周六和周日的凌晨1点10分重启apache

⑦ 0,30 18-23 * * * /application/apache/bin/apachectl graceful

每天的18点到23点每隔30分钟重启一次apache。

提示:最后一次执行任务时23:30分

⑧ 0 */1 * * * /application/apache/bin/apachectl graceful

每小时重启一次apache

####⑨ * 23,00-07/1 * * * /application/apache/bin/apachectl graceful

每天的23点与0-7点之间每分钟重启一次apache

⑩ 00 11 * 4 1-3 /application/apache/bin/apachectl graceful

每年的4月份每周的周1到周3每天的11点整重启一次apache

//一般周和日尽量不要同时用,否则可能达不到想要的效果

例:8月9号上午10:00开学:

00 10 09 08 *  

每周日,下午7:30上晚自习:

30 07 * * 0

Linux系统定时任务_第2张图片

工作中调试定时任务的方法:

  1. 增加执行任务频率调试任务

   每分钟或者系统时间之后5分钟执行,看结果对不对

   某些任务不能用于生产环境没有测试机会

代码、配置变更发布流程:

个人开发环境--办公室测试环境--IDC机房测试环境--IDC正式环境(分组,灰度发布)

  1. 调整系统时间调试任务(不能直接用于生产环境),保持5分钟

  2. 通过脚本日志输出调试定时任务

  3. 注意一些任务命令带来的问题

例如:

标准输出多了

*/1 * * * * echo “==” >> /emp/oldboy.log >/dev/null 2>&1)

百分号转义(脚本无需转义)

*/1 * * * * tar zvf /tmp/oldboy_$(date +%F).tar.gz /etc/hosts

  1. 注意:环境变量导致的定时任务故障(java)

  2. 通过crond定时任务服务日志调试定时任务(/var/log/oron)

  3. 其他问题调试的办法

8.sh -x 调试脚本

你可能感兴趣的:(linux基础)