at命令:在指定时间内调度一次性的任务
at [-f script] [-mldv] [time]
参数:
-m:作业完成后给用户发邮件。
-l:列出当前所有等待运行的作业。atq 具相同的作用。
-d:取消一个at任务
-v:使用时间格式列出at任务
-c:列出任务内容
-f script:要提交的脚本或命令
时间格式:
now + 时间 :时间以 minutes、hours、days、或 weeks 为单位
HH:MM :24小时制度,如果时间已过,就会在第二天的这一时间执行
midnight :表示00:00
noon :表示12:00
teatime :表示16:00
示例:
at 3:00pm tomorrow -f db_table.sh
at -f mycrontest.sh 2:00 next week
echo find /etc -name "passwd" -print | at now +1 minute
atrm [job no] 或at -r [job no] 清除作业
crontab:周期性定时任务
[minute:0~59] [hour:0~23] [day:1~31] [month:1~12] [week:0~7,0、7表示星期日] command
注:*所有,分隔符-范围/频率
修改crontab文件:crontab -e列出crontab文件 crontab -l
删除crontab文件:crontab -r
恢复丢失的crontab文件:crontab
创建一个新的crontab文件:
1.修改.bash_profile,添加:EDITOR=vi; export EDITOR
2.创建 cron的文件(例如:ora用户的oracron文件),添加如下:
0,15,30,45 18-06 * * * /bin/echo 'date' > /dev/console
3.提交crontab文件:crontab oracron
启动关闭cron服务程序service crond [start|stop|status]
加入开机启动chkconfig --level 235 crond on
系统任务调度配置文件/etc/crontab
用户任务调度配置文件/var/spool/cron目录下,文件名同用户名
所列用户不允许使用crontab命令/etc/cron.deny
所列用户允许使用crontab命令/etc/cron.allow
示例
每晚的21:30运行/apps/bin目录下的cleanup.sh:30 21* * * /apps/bin/cleanup.sh
每月1、10、22日的4:45运行/apps/bin目录下的backup.sh:45 4 1,10,22 * * /apps/bin/backup.sh
每周六、周日的1:10运行一个find命令:10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
每天18:00至23:00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh:0,30 18-23 * * * /apps/bin/dbcheck.sh
每星期六的11:00pm运行/apps/bin目录下的qtrend.sh:0 23 * * 6 /apps/bin/qtrend.sh