代码改变世界

shell命令之at 执行一次性定时任务的用法

2018-04-18 13:24  Justinyangbigdata  阅读(6157)  评论(0编辑  收藏  举报

大家都知道crontab是执行定时任务的命令,那么at又是什么呢? 其实at也是定时任务命令,不同的是crontab是执行循环任务,at执行一次性任务

首先说下时间例子

Minute    at now + 5 minutes   任务在5分钟后运行
Hour      at now + 1 hour      任务在1小时后运行
Days      at now + 3 days      任务在3天后运行
Weeks     at now + 2 weeks     任务在两周后运行
Fixed     at midnight          任务在午夜运行
Fixed     at 10:30pm           任务在晚上10点30分

Fixed     at 23:59 12/31/2018   任务在2018年12月31号23点59分

比如设计一个程序, 让任务在 2018年4月18 日 11:55 的时候将/home/hadoop/test文件夹下前一天的文件备份并压缩 ,存放在/home/hadoop/bak文件夹中,

且文件名为如下形式svn.2018.4.18.tar.gz  在写完命令后 按ctrl +d 那么任务就生成了,注意:/home/hadoop/bak目录要先建好.

查看任务使用

删除任务使用

接着查看文件 ,(我的时间重新改过了,但是命令没有问题)

 

通常情况下root用户是可以使用这个命令的,其他用户是否能使用取决于两个文件:/etc/at.allow和/etc/at.deny

默认是没有at.allow文件的,但这个文件的优先级要比at.deny高 ,如果at.deny写入了某个用户,那么该用户将不能使用at命令.可以将用户写在at.allow里面.