包括一次性的定时at,和长期的定时cron。
Cron设置:
Cron长期定时:cron是linux的内置服务,不会自动启动:service crond start/stop/status/restart/reload;
Crontab –u root //设定某个用户的cron服务,一般root执行的时候需要该参数
Crontab –l root //列出某个用户的cron服务的详细内容
Crontab –r //删除每个用户的cron服务
Crontab –e //编辑某个用户的cron服务
通过编辑crontab文件配置cron:
Cron内容如下:
[root@redhat5 admin]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者是数据输出,数据作为邮件发给这个账号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月执行cron.monthy内的脚本
*******command
分 时 日 月 周 命令
第一列表示分钟1-59,每分钟用*或者是*/1表示
第二列表示小时1-23(0表示0点)
第三列表示日期1-31
第四列表示月份1-12
第五列表示星期0-6(0表示星期日)
第六列表示要运行的命令。
如果“run-parts”这个参数去掉的话,后面就可以写要运行的某个脚本,而不是文件夹名了。
At设置:
指定运行的时间,那么就会在那个时间运行。At类似打印进程,会把任务放到/var/spool/at目录中,到指定时间去运行。At命令相当于另一个shell,运行at time命令,她发送一个命令,可以输入任意的命令或是程序。
运行at的时候必须保证atq服务是否启动。
例如:
[root@redhat5 home]# at now+4minutes
at> /home/mkdir.sql
at> <EOT>
job 1 at 2011-08-17 23:50
在四分钟后执行/home/mkdir.sql的脚本,<EOT>表示ctrl+d
时间说明:
Minute at now+5 minutes //任务在5分钟后运行
Hour at now+1 hour //任务在1小时后运行
Days at now+3 days //任务在4天后执行
Weeks at now+2 weeks //任务在2周后运行
Fixed at midnight //任务在午夜运行
Fixed at 10:30pm //任务在晚上10点30分运行。
查看at执行的具体内容:一般位于/var/spool/at目录下面,用vi打开,最后一部分就是你的执行程序。