Linux计划任务管理
http://edu.51cto.com/lesson/id-50475.html
吴忠捷 老师
一次性的计划任务设置
at命令
at命令可以对一次性的计划任务进行设置。要执行该命令之前,atd的服务一定要启动起来才能运行at的。
启动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
命令执行后索罗坐等了三分钟,然后直接到tmp目录下收货了,比较爽!
注意上面的<EOT> 不是敲进去的,是ctrl—d提交生成的哈。
atq
atq用以查看尚未执行的计划任务。
atrm
atrm用以删除指定的尚未执行的计划任务
把上述的若干命令串起来执行一遍
周期性的计划任务设置
crontab命令
- 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
- 服务脚本名称:/etc/init.d/crond
- 主要设置文件
- 全局配置文件,位于文件:/etc/crontab
- 系统默认的设置,位于目录:/etc/cron.*/
- 用户定义的设置,位于文件:/var/spool/cron/用户名
管理cron计划任务
- 编辑计划任务:crontab -e [-u 用户名]
- 查看计划任务:crontab -l [-u 用户名]
- 删除计划任务:crontab -r [-u 用户名]
时间数值的特殊表示方法
- * 表示该范围内的任意时间
- , 表示间隔的多个不连续时间点
- – 表示一个连续的时间范围
- / 指定间隔的时间频率
应用示例
- 0 17 * * 1-5 周一到周五每天17:00
- 30 8 * * 1,3,5 每周一、三、五的8点30分
- 0 8-18/2 * * * 8点到18点之间每隔2小时
- 0 * */3 * * 每隔3天
示例1(root用户):
- 每天早上7:50自动开启sshd服务,22点50时关闭
分 时 日 月 周 命令
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