Linux Unix计划任务
Linux Unix计划任务
Linux Unix计划任务
计划任务之at
使用它在一个特定的时间运行一次特殊的作业。
系统上常见的例行性命令举例:
1. 进行登录文件的数据轮替 (log rotate)
2.rpm 数据库的建立 {不解,来源资料2}
3.建立 locate 的数据库 {不解,来源资料2}
4.进行程序的分析
5.登录文件分析
6.指纹数据库的比对 即tripwire套件
at 其实是一个脚本: /etc/init.d/atd. 工作纪录文件预设的放置目录在 /var/spool/at 底下,
默认所有用户都可以执行at, /etc/at.allow 与 /etc/at.deny可以设置权限.
先找寻 /etc/at.allow 这个档案,写在这个档案中的使用者才能使用 at ,没有在这个档案中的使用者则不能使用 at ( 即使没有写在
at.deny 当中 );
如果没有 /etc/at.allow 就寻找 /etc/at.deny 这个档案,若写在这个 at.deny 的使用者则不能使用 at
,而没有在这个 at.deny 档案中的使用者,就可以使用 at 咯;
如果两个档案都不存在,那么只有 root 可以使用 at 这个指令。
at命令的基本形式为:
at [-f script] [-m -l -r] [time] [date]
其中,
-f script 是所要提交的脚本或命令。
-l 列出当前所有等待运行的作业。atq命令具有相同的作用。
-r 清除作业。为了清除某个作业,还要提供相应的作业标识(ID);有些U N I X变体只接受atrm作为清除命令。
-m 作业完成后给用户发邮件。
time at命令的时间格式非常灵活;可以是HH:MM , HH:MM YYYY-MM-DD, HH:MM[am|pm] [Month]
[Date] 比如04pm December 3, MM[am|pm] + number [minutes|hours|days|weeks]
比如now + 5 minutes和 04pm + 3 days
date 日期格式可以是月份数或日期数,而且at命令还能够识别诸如today、tomorrow这样的词。
可以使用echo命令向at命令提交作业:
$ echo find /etc -name "passwd" -print | at now +1 minute
可以使用at -l命令来列出所有的作业
清除作业的命令格式为:
atrm [job no]或 at -r [job no]
实例: 在16:22删除LTS模块的log
[root@svr-86-21 log]# at 16:22
at> rm -rf /var/log/lts.log*-*
at>
job 1 at 2007-11-28 16:22
可以在/var/spool/at 看到a0000101303816这个文件.
结束符是Ctrl+D
计划任务之cron
cron 系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行.
这个工作将持续例行性的作下去!它查找/var/spool/cron下的文件,与/etc/passwd中的用户对照,还查找/etc/crontab,/etc/cron.d/中的文件。每分钟执行一次。格式参考:crontab(5)
安全设置: /etc/cron.allow /etc/c