读书笔记
一次性安排计划任务
at 安排某个程序在某一时刻执行一次
bath 安排作业在系统负载不重时执行一次
第一步:开启at命令(默认是关闭的,必须要打开,否则无法执行这个命令)
service atd start
格式:at 时间
时间的书写方法:
1.绝对计时方法
midnight noon teatime
HH:MM today 今天的几小时几分钟[today]不写,默认是今天
HH:MM tomorrow
HH:MM 星期几
2.相对计时方法
now+n minutes
now+n hours
now+n day
比如:
指定在今天下午5:30执行某个命令(假如现在是中午时间12:30,2009/9/16)
at 5:30pm
at 17:30
at 17:30 today
at now+300 minutes
at now+5 hours
at 17:30 16.9.2009
at 17:30 9/16/20009
注意:在某个 时间点执行这个程序的时候(命令),一定要使用该命令的全路径。
比如要执行拷贝这个命令的时候,就要用到cp命令,这时不能直接用cp命令,一定要用到cp命令的全路径。用whereis cp 查看它的全路径 cp: /bin/cp
1.比如:在计划时间拷贝文件到指定的目录下
[root@localhost ~]# at now+2minutes //两分钟后执行命令
at> /bin/cp -r /root/* /home/redhat //两分钟后执行/bin/cp拷贝命令,把/root目录下的所有文件[-r 指也包括目录]拷贝到/home/redhat目录下。
at> //按住ctrl+z 可以结束继续计划其他的任务,让自动复制进入后台、
[root@localhost redhat]# date // 输入date 可以查看当前的时间。
Sat Oct 23 10:54:18 CST 2010
[root@localhost ~]# atq //按atq 或者at -l 可以查看后台正在自动执行的任务
3 2010-10-23 10:42 a root
打开redhat后文件已经全部拷贝过来了。
2.比如。计划时间在某文件中输入文字
[root@localhost redhat]# at now+1minutes
at>/bin/echo "#########" > /root/w.txt //在计划时间在w. txt文件中输入一行#.
at> // 按ctrl+z 回到后逃模式
[root@localhost redhat]# atq //按atq或者at -l 查看后台的计划任务
4 2010-10-23 10:57 a root //看到了刚才的计划任务
[root@localhost redhat]# cat /root/w.txt
al -l 或者atq 查看当前的计划任务
at -d 或者atem 删除某个任务。
3.把命令写到一个文件里面。然后调用文件再运行命令
at -f 文件 时间点
at < 文件 时间点
[root@localhost ~]# vi one.txt //现在当前目录下新建一个文件one.txt,
1 /bin/echo "################" > a.txt //输入命令,一行一个命令
[root@localhost ~]# at -f one.txt 15:59 //用at -f 把这个文件输入进来,在15:59分执行
job 6 at 2010-10-23 15:59
[root@localhost ~]# atq //用atq或者at -l查看,任务已经生效。
6 2010-10-23 15:59 a root
[root@localhost ~]# cat a.txt //15:59,在/root下出现a.txt文件。
################ // 用cat打开,看看,嗯,是正确的。
4.at的执行结果和配置文件
at的结果会通过邮件寄给提交这个命令的用户mail
at的配置文件:限制哪些用户可以使用at命令
/etc/at.allow 如果这个文件存在,那么只在列在此文件中的用户才可以使用at命令
文件如果不存在则查/etc/at.deny
/etc/at.deny
如果这个文件存在,则在此文件中列出的用户都不能使用at命令
如果两个文件都不存在,则只有root用户可以使用at命令。
如果这两个文件都存在,而且都为空,则所有的用户都可以使用at命令