AIX中crontab和at 定时任务
1、crontab
crontab文件用于在指定日期和时间周期性地执行作业
crontab 作业存放在/var/spool/cron/crontabs/$USER
cron根据crontab文件项运行命令。如果用户不指定将cron作业的输出重定向到标准输出或标准错误。
cron将使用电子邮件向用户报告其输出或错误
要使用cron,用户必须建立crontab文件
cron进程将crontab文件驻留在内存中,所以用vi直接修改硬盘上的cron文件是没有效果的
必须使用crontab命令操作,它会告诉cron进程crontab文件已修改
语法:
minute hour day month dayofweek command
分钟 小时 天数 月数 (0~6,0表示星期日)
示例1:
50 23 * * 6 /home/oracle/rman.sh
表示每月每天的23点50分,只要这一天星期六,就执行脚本
50:表示50分钟
23:23点
*:表示所有天
*:表示所有月
6:表示星期六
在AIX中,任务计划的使用授权控制在两个文件中:
/var/adm/cron/cron.deny :定义了不允许使用cron的用户
/var/adm/cron/cron.allow :定义了允许使用c'ron的用户
如果两个文件都存在,那么只有cron.allow文件有效,如果两个文件都不存在,那么只有root才可以用cron
示例2:
0 0 * * 1-5 backup –0 –u –f /dev/rmt0
周一至周五的,每天24:00整执行backup –0 –u –f /dev/rmt0命令
示例3:
0,15,30,45 8-17 * * 1-5 /tmp/script1
周一至周五的,每天早上8点至17点,每个15分钟执行/tmp/script1命令
2、常用指令:
查看当前用户的定时任务。
#crontab -l
删除cron表
# crontab –r
编辑cron表
方法一:
# crontab –e
方法二:
# crontab –l>/tmp/crontmp
# vi /tmp/crontmp
# crontab /tmp/crontmp
#crontab -l
3、at定时任务
at命令用于在指定时间执行一次性作业,它从标准输入读取要执行的命令
at作业存放在/var/spool/cron/atjobs/$USER中
控制用户使用crontab的两个文件:
/var/adm/cron/at.deny 不允许使用at的用户
/var/adm/cron/at.allow 允许使用at的用户
如果两个文件都存在,那么只有at.allow文件有效,如果两个文件都不存在,那么只有root才可以用at
示例:
2分钟后发个大字体的hello的字符给/dev/tty3终端:
# at now +2 mins
banner hello > /dev/tty3
< ctrl + d >
job user.time.a will be run at date
列出at作业清单
# at –l [user]
# atq [user]
取消at作业
# at -r job
# atrm {job | user}
只有 root才可以列出和取消所有的作业,包括其他人的作业;其他人只能取消他本人的作业
4、batch作业管理
示例:
CPU空闲时发个hello的banner信号给/dev/tty3终端:
# batch
banner hello > /dev/tty3
< ctrl + d >
batch命令用于在CPU空闲时执行一次性作业,即在处理负载足够低时提交作业
5、 skulker 命令
skulker 用来删除过时的文件,清理文件系统;通过修改skulker脚本调整要清除旧文件
比如删除以下文件:
旧的qdir 文件
/var/tmp中的文件
一天以前的*.bak、a.out、core等文件
skulker通常写入root的crontab文件中,由cron 守候进程每日执行一次;新安装好一个系统后,想要启动skulker,只好修改root的crontab文件
skulker是个脚本,不是一个服务,可以直接执行skulker命令,但不能用startsrc –s skulker启动
、skulker 命令skulker 命令 skulk