Linux计划任务管理

http://edu.51cto.com/lesson/id-50475.html

吴忠捷  老师


 

一次性的计划任务设置

at命令

at命令可以对一次性的计划任务进行设置。要执行该命令之前,atd的服务一定要启动起来才能运行at的

启动atd服务  

一般来讲atd服务默认是启动的,如果未启动则需要先启动该服务。

atd

设置格式

at 【HH:MM】【yyyy-mm-dd】

ctrl-d  提交任务

at一例:在3分钟之后将root用户的进程数进行统计,形成文件输出到/tmp目录下。

[root@solo ~]# at 07:21 2017-02-05
at> pgrep -U root |wc -l > /tmp/root_proc
at> <EOT>
job 1 at 2017-02-05 07:21

at1

命令执行后索罗坐等了三分钟,然后直接到tmp目录下收货了,比较爽!

注意上面的<EOT> 不是敲进去的,是ctrl—d提交生成的哈。

atq

atq用以查看尚未执行的计划任务。

atrm

atrm用以删除指定的尚未执行的计划任务

把上述的若干命令串起来执行一遍

atall

 

周期性的计划任务设置

crontab命令

  • 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
  • 服务脚本名称:/etc/init.d/crond
  • 主要设置文件
  • 全局配置文件,位于文件:/etc/crontab
  • 系统默认的设置,位于目录:/etc/cron.*/
  • 用户定义的设置,位于文件:/var/spool/cron/用户名

管理cron计划任务

  • 编辑计划任务:crontab -e [-u  用户名]
  • 查看计划任务:crontab -l [-u  用户名]
  • 删除计划任务:crontab -r [-u  用户名]

crond

时间数值的特殊表示方法

  • * 表示该范围内的任意时间
  • , 表示间隔的多个不连续时间点
  • 表示一个连续的时间范围
  • / 指定间隔的时间频率

应用示例

  • 0 17 *  *  1-5 周一到周五每天17:00
  • 30 8 *  *  1,3,5 每周一、三、五的830
  • 0 8-18/2 *  *  * 8点到18点之间每隔2小时
  • 0 * */3  *  * 每隔3

示例1root用户):

  • 每天早上7:50自动开启sshd服务,2250时关闭

分   时  日  月  周    命令

50 7 * * *  /etc/init.d/sshd start

50 22 * * * /etc/init.d/sshd stop

  • 每隔5天清空一次FTP服务器公共目录/var/ftp/pub

分   时  日  月  周    命令

* * /5 * * rm -rf /var/ftp/pub/*

  • 每周六的7:30时,重新启动httpd服务

分   时  日  月  周    命令

30 7 * * 6 service httpd restart

  • 每周一、三、五的17:30时,打包备份/etc/httpd目录

分   时  日  月  周    命令

30 17 * * 1,3,5 tar -cvf   dabao.tar /etc/httpd

 

yantaisolo

作者 yantaisolo