Linux实用工具–crontab和 at 定时任务

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没有执行,执行过一次的默认是不显示出来的

Linux实用工具–crontab和 at 定时任务

用at -c 加上文件的作业号就可以看看这个at任务的内容是什么

Linux实用工具–crontab和 at 定时任务

如果我们觉得这个任务不想执行了 可以删除它

atrm 2

-m :当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出

参考http://www.2cto.com/os/201409/336183.html

其实batch类似于at但是不不需要指定时间,自己会选择在cpu利用率较低时执行


本文转自 周子琪 51CTO博客,原文链接:http://blog.51cto.com/izhouyu/1910279


上一篇:解决WINCE6.0新建工程编译出错的问题


下一篇:android延时弹出软键盘