计划任务

 

计划任务

为什么要设置计划任务

       定时备份,定时重启

       管理任务,定时将服务器信息发邮件,每天只需要收邮件,就能了解很多台服务器的信息

       ...

主要分两种

       一次性计划任务

              at

       周期性计划任务

             

 

at

       指定的时间执行一次

       指定时间的方式

              绝对计时方法:

              midnight午夜 noon中午 teatime下午茶(16:00)

              hh:mm [today]

              hh:mm tomorrow

              hh:mm MM/DD/YY

              相对计时方法:

              now + n minutes

              now + n hours

              now + n days

       具体看帮助 man at

      

 

       系统时钟 date

       设置日期 date -s '2013-05-14 11:27:00'

 

       硬件时钟clock

       clock --systohc       将系统时间存回硬件时钟内

       clock --hctosys 系统时间设成和硬件时钟一致

 

 

       指定在今天下午17:30执行某命令,假设当前时间是2013年1月15日

       at 17:30

       at 5:30pm

       at 17:30 today

       at now + 3 hours

       at now + 180 minutes

       at 17:30 01/15/13

       at 17:30 15.01.13   如果用(.)表示日月年

 

       at now + 5 minutes回车后,输入要执行命令,写完按ctrl+d保存

       命令最好写绝对路径(例如which ls将查询到ls命令在哪里)

 

       例 at now + 1 minutes

       /usr/bin/wall hi,this is a test.       一分种后发一个广播

      

       查看计划任务进程是否开启ps -le | grep atd

       启动进程 /etc/rc.d/init.d/atd start

       默认都会安装计划任务并启动

 

       查看队列中的任务

       at -l  或 atq

      

       存放在这里

       ls /var/spool/at/

      

       删除一次性计划任务

       at -d 序号

 

 

       at配置文件,哪些用户可以使用at

       /etc/at.allow

       /etc/at.deny

              如果存在/etc/at.allow,只有在此文件中的用户才可以使用at命令

              如果存在/etc/at.deny,在此文件中的用户不可使用at命令

              如果两个文件都不存在,只有超级用户可以使用at命令

              如果两个文件都存在均为空,则所有用户都可以使用at命令

 

batch用法与at一样    [bætʃ] n. 一批;一批生产的量;成批作业

       安排在系统负载较轻时运行一次

       一般情况负载较低指0.8以下(w或top命令能看到)

      

crontab命令   [krɔn teibl]

 

       周期性计划任务

       三个常用选项:

       -l     列出当前crontab

       -r     删除当前的crontab      不建议用,直接用-e编辑就好

       -e    编辑当前的crontab文件

 

       crontab -e

 

       命令/脚本

       把知道的具体时间添上,不知道的用*号  周日是0

 

       每天04:00

       0   4   *   *   *  要执行的命令

      

       周二和周五18:00

       0   18  *   *   2,5  要执行的命令

      

      

       1月到3月份, 周二和周五18:00

       0   18  *   1-3   2,5  要执行的命令

      

       周一到周五17:30发广播,然后17:45分关机

       写两条计划任务,不是只能写一条

       30 17  *  *  1-5  /usr/bin/wall < /root/msg

       45 17  *  *  1-5  /sbin/shutdown -h now

 

       中午12点到14点,每两分钟(偶数)

       */2  12-14  *   *  *   命令

       1-59/2     (奇数)

 

       写命令时,最后要写上出错信息

              例/bin/cp -r /etc /backup/etc.bak 2 >>/backup/etc.bak.err

              2表示错误信息

      

       这6项,都不能为空

       多个值用,

       连续的值用-

       任何时间*

任何值用 *

       步长     /n

       命令给出绝对路径

       用户必须具有运行对应命令或程序的权限

      

       保存在 /var/spool/cron

 

       检查crond进程是否开启

       ps -le | grep crond

       /etc/rc.d/init.d/crond start

 

       有一个配置文件

       /etc/crontab

       定义了执行时的一些环境变量

       最后四行,是一些系统的一些计划任务

              01 * * * * root run-parts /etc/cron.hourly

              02 4 * * * root run-parts /etc/cron.daily

              22 4 * * 0 root run-parts /etc/cron.weekly

              42 4 1 * * root run-parts /etc/cron.monthly

       把脚本放在那四个目录中,只要有执行权限,就会被定时执行

 

       限制哪些用户可以使有crontab

              /etc/cron.allow

              /etc/cron.deny

 

posted @ 2015-07-01 11:04  bodhicitta  阅读(156)  评论(0编辑  收藏  举报