Linux运维技术之详解任务计划(crontab命令)

crontab命令

   按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务

  (1)、先来看一下/etc/crontab文件的内容:

 

[root@localhost ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts             ==>这里分别设置了每小时每天每星期每月定期执行的任务脚本分别存放在这些目录中

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

注意:

启用周期性任务有一个前提条件,即对应的系统服务crond必须已经运行;

全局配置和系统默认配置中的内容一般不需要用户去修改,用户只需设置/var/spool/cron/目录下与本帐号同名的文件即可

  (2)、管理cron计划任务

编辑计划任务:crontab  -e  [-u  用户名]

查看计划任务:crontab  -l  [-u  用户名]

删除计划任务:crontab  -r  [-u  用户名]

(root用户可以管理指定用户的计划任务;普通用户只能管理自己的计划任务)

(备注:用户只需执行“crontab -e”命令后会自动调用文本编辑器(默认为vi)并打开“/var/spool/cron/用户名”文件,无需手动指定文件位置)

 

     (3)、crontab应用简单举例

    1)、示例1:root用户

   需求:  每天早上7:50自动开启sshd服务,22点50时关闭

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

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

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

[root@localhost ~]# crontab -e

50 7 * * *  /sbin/service sshd start

50 22 * * *  /sbin/service sshd stop

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

30 7 * * 6  /sbin/service httpd restart

30 17 * * 1,3,5  /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd

      2)、示例2:linuxidc用户

   需求:每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件

[root@localhost ~]# crontab -e -u linuxidc

55 23 * * 7  /bin/cp /etc/passwd /home/linuxidc/pwd.txt

    3)、示例3:

  root用户查看自己的计划任务列表;查看并删除linuxidc用户设置的计划任务

[root@localhost root]# crontab -l

50 7 * * *  /sbin/service sshd start

50 22 * * *  /sbin/service sshd stop

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

30 7 * * 6  /sbin/service httpd restart

30 17 * * 1,3,5  /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd

[root@localhost root]# crontab -l -u linuxidc

55 23 * * 7  /bin/cp /etc/passwd /home/linuxidc/pwd.txt

[root@localhost root]# crontab -r -u linuxidc

[root@localhost root]# crontab -l -u linuxidc

no crontab for linuxidc

[root@localhost root]#

 

   从上面这3个例子简单总结一下crontab任务的配置格式:

 (1)  时间周期设置:                            任务内容设置:

  50       3      2       1     *       run_command

 分钟       小时     日期      月份    星期      命令

字段

说明

分钟

取值为从0到59之间的任意整数

小时

取值为从0到23之间的任意整数

日期

取值为从1到31之间的任意整数

月份

取值为从1到12之间的任意整数

星期

取值为从0到7之间的任意整数,0或7代表星期日

命令

要执行的命令或程序脚本

 

 前5个字段指定任务重复执行的时间规律,第6个字段用于指定具体的任务内容

crontab任务配置记录中,所设置的命令在“分钟+小时+日期+月份+星期”都满足的条件下才会运行。

 

  (2)、时间数值的特殊表示方法

*    表示该范围内的任意时间

,    表示间隔的多个不连续时间点

-    表示一个连续的时间范围

/    指定间隔的时间频率

应用示例:

0  17  *  *  1-5          周一到周五每天17:00

30  8  *  *  1,3,5        每周一、三、五的8点30分

0  8-18/2  *  *  *       8点到18点之间每隔2小时

0  *  */3  *  *            每隔3天

转载于:https://www.cnblogs.com/linux-s/p/11289627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值