linux crontab任务

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令,例如系统管理员安排一个备份任务使其每天都运行。

crontab -e 编辑当前用户下的定时任务

*/15 * * * *  /home/ap/tunnel/command/dbjob/outbound/objob/ob_job_archive_all_10m.sh >> /home/ap/tunnel/command/dbjob/outbound/objob/outbound_runjob.log 2>&1

每15分钟执行ob_job_archive_all_10m.sh任务,并将结果输出到outbound_runjob.log日志中

0 3 * * *  /home/ap/tunnel/command/dbjob/magw/job_magw.sh >> /home/ap/tunnel/command/dbjob/magw/magw_runjob.log 2>&1

每天凌晨三点执行job_magw.sh脚本,并把结果输出到/magw_runjob.log日志中

Cron 各项的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 
o minute: 区间为 0 – 59 
o hour: 区间为0 – 23 
o day-of-month: 区间为0 – 31 
o month: 区间为1 – 12. 1 是1月. 12是12月. 
o Day-of-week: 区间为0 – 7. 周日可以是0或7.

1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

1 0 * * * /root/bin/backup.sh

2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。

59 11 * * 1,2,3,4,5 /root/bin/backup.sh

下面例子与上面的例子效果一样:

59 11 * * 1-5 /root/bin/backup.sh

3. 每5分钟运行一次命令

*/5 * * * * /root/bin/check-status.sh

4. 每个月的第一天 1:10 p.m 运行

10 13 1 * * /root/bin/full-backup.sh

5. 每个工作日 11 p.m 运行。

0 23 * * 1-5 /root/bin/incremental-backup.sh

crontab定时任务遇到的问题

1.在定时调用shell脚本时候,是不会携带当前用户的环境变量,所以在执行bin文件时需要加入绝对路径,比如执行sqlplus时候不加路径会提示找不到,需要这样写$ORACLE_HOME/bin/sqlplus才能执行成功。或者在脚本开头加上. $HOME/.bash_profile。

2.执行脚本时候报 shopt错误,是因为脚本开头是/bin/ksh格式,去执行. $HOME/.bash_profile时会有冲突,bash和ksh的冲突

猜你喜欢

转载自www.cnblogs.com/mf20140913/p/11824835.html