at 和 crontab 是有区别的,at是一次性的,crontab是可以循环的
一般在redhat里面是没有安装crontab这个工具的,你可以配置好yum来安装
yum install vixie-cron
yum install crontabs
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
一般这个服务不会自己启动的 你要手动启动
/sbin/service crond start
crontab -e
f1 f2 f3 f4 f5 run-parts (如果program是目录的话就加上) program
分 时 日 月 周 命令
f1表示分钟,1~59 每分钟用*或者 */1表示
f2表示小时,1~23(0表示0点)
f3表示日期即一个月份中的第几日,1~31
f4表示月份,1~12
f5标识星期,0~6(0表示星期天)
f6要执行的程序
比如说
每月每天每小时的第 0 分钟执行一次 /etc/1.sh :
0 * * * * /etc/1.sh
更多详细的教程看 http://www.360doc.com/content/13/1104/22/14234135_326670166.shtml
at 命令
1、HH:MM
说明:在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务。
04:00
2、HH:MM YYYY-MM-DD
说明:规定在某年某月的某一天的特殊时刻进行该项任务
04:00 2009-03-17
3、HH:MM[am|pm] [Month] [Date]
说明:规定在某年某月某日的某时刻进行该项任务
04pm March 17
4、HH:MM[am|pm] + number [minutes|hours|days|weeks]
说明:规定在某个时间点再加多少时间后才进行该项任务
now + 5 minutes
04pm + 3 days
一般来说 如果你没有设置权限就会让at在所有的用户都执行at的内容
在控制文件目录:/etc/at.allow和/etc/at.deny里面设置
1:先找寻 /etc/at.allow 这个文件,写在这个文件中的使用者才能使用 at ,没有在这个文件中的使用者则不能使用 at (即使没有写在 at.deny 当中);
2:如果 /etc/at.allow 不存在,就寻找 /etc/at.deny 这个文件,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 文件中的使用者就可以使用 at 命令。
3:如果两个文件都不存在,那么只有 root 可以使用 at 这个命令。
4:在一般的 distributions 当中,由于假设系统上的所有用户都是可信任的, 因此系统通常会保留一个空的 /etc/at.deny 文件,意思是允许所有人使用 at 命令的意思。
5:如果不希望有某些使用者使用 at 的话,将那个使用者的帐号写入 /etc/at.deny 即可! 一个帐号写一行。
可以用atq看看我们有哪些at没有执行,执行过一次的默认是不显示出来的
用at -c 加上文件的作业号就可以看看这个at任务的内容是什么
如果我们觉得这个任务不想执行了 可以删除它
atrm 2
-m :当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
参考http://www.2cto.com/os/201409/336183.html
其实batch类似于at但是不不需要指定时间,自己会选择在cpu利用率较低时执行