第一部分:at命令
1.at命令:在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程(ps-ef|grepatd查看,开启用/etc/init.d/atdstartorrestart;开机即启动则需要运行chkconfig--level2345atdon)。
[root@localhosttest]atnow+1minat>echo"hello">/dev/tty2后回车#一分钟后发送“hello”给tty2终端
at00:552009-12-13at>echo"testatcommand">/home/test.txtat1:002009-12-13at>/sbin/shutdown-hnow#此处使用绝对路径
atnow+1minat>echo"hello"<EOF>#此时会以发送邮件的方式给当前执行的人,用mail命令可以查看,即先使用mail命令,出现&后输入'1'则可查看。
batchat>echo"hello">/home/abc.txt<EOF>
1、cron服务介绍
cron把命令行保存在/etc/crontab文件里,每个系统用户如果设置了自己的cron,那都会在/var/spool/cron下面有对应用户名的crontab。无论编写/var/spool/cron目录内的文件还是/etc/crontab文件,都能让cron准确无误地执行安排的任务,区别是/var/spool/cron下各系统用户的crontab文件是对应用户级别的的任务配置,而/var/crontab文件则是对应系统级别的任务配置。cron服务器每分钟读取一次/var/crontab/cron目录内的所有文件和/etc/crontab文件。
2、使用cron服务执行计划任务
#servicecrondstart/restart/stop
启动/重启/关闭cron服务
#crontab-l
浏览当前用户的crontab,即浏览已存在的计划任务列表
#crontab-e
编辑当前用户crontab,如之前从未编辑过crontab文件,那么crontab是一个空白文件,我们可以完全手工编写我们所需要的计划任务列表,下面详细介绍计划任务列表的写法。
以下是几个例子:
99***/usr/local/bin/cvsb
33**0/usr/local/bin/qbbak
**/6***/usr/local/bin/esbbak
20,30***/usr/local/bin/esbak
六个字段对应的含义如下:
99***
分钟小时日期月份星期
表示每天早上9点9分执行目录/usr/local/bin/中的cvsb文件
表示每周日凌晨3时3分执行目录/usr/local/bin中的qbbak文件
表示每6小时执行一次,执行时间从第一次执行起计算,当然也可以自定义执行时间,比如0*/6***那程序就会在整点执行
表示在每小时20分和30分时执行
上面简单介绍了cron的一些基本用法,这个东东的时间组合可不是一般的强~可以复杂到你无法想象,我们只要掌握少许基本就可以满足日常需求了。
3、cron进阶使用
(1).避免cron产生垃圾文件
细心的朋友可能会发现系统/var/spool/clientmqueue/目录下往往存有大量文件,原因是系统中有用户开启了cron,而cron中执行的程序有输出内容,输出内容会以邮件形式发给cron的用户,而sendmail(系统自带的邮件服务器)没有启动所以就产生了这些文件。
这时可以使用输出重定向,即在计划任务后加上>/dev/null2>&1
例:
99***/usr/local/bin/cvsb>/dev/null2>&1
(2>&1:把错误重定向到输出要送到的地方。)
把命令的执行结果重定向到/dev/null,即把产生的错误抛弃。
(2).一种经常碰到的情况,需要执行的文件没问题,但通过cron就是死活不能正确执行,这时我们可以通过输出重定向将cron的执行过程输出到一个文件,通过分析执行过程来寻找错误的原因
例:
99***/usr/local/bin/cvsb>/var/log/crontab_log2>&1
上例将cron的执行过程输出到一个文本文件crontab_log,这个文件可以随便手动建一个,放在哪都行,重定向目录写对就Ok