计划任务 crond

计划任务就是让系统在特定时间点执行特定任务,可以是一次性的,也可以是周期性的。

crontab

选项作用
-l列出当前用户所有计划任务
-e新建、编辑当前用户计划任务
-r删除指定用户所有计划任务
-u指定用户名,若不指定则当前用户

计划任务编写:

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
  • 语法:分 时 日 月 周 需要执行的任务
  • 取值范围:

分:0~59

时:0~23

日:0~31

月:1~12

周:0~70或者7 表示星期日

  • 特殊符号

* :表示取值范围中任意一个数字

,:取多个值,eg: 8,10,12

-:表示区间,eg: 8-10

/n:每个n的单位执行一次, eg: 每10分钟执行一次需要在分的位置写 */10

用户编写好的计划任务存放在:/var/spool/cron/

时间例子:

(1)每月 1、11、21 日的 1:10 分重启network服务

10 1 1,11,21 * * service network restart

(2)每月的1到10号,每天每隔一个小时重启下network服务

* */1 1-10 * * service network restart

(3)每隔两天的上午8点到11点的第3和第15分钟重启network服务

3,15 8-11 */2 *  * service network restart

案例:

(1)每分钟向 /tmp/test.log 文件中追加当前日期时间

执行命令 crontab -e,然后输入如下计划任务:

*/1 * * * * date +'%F %T' >> /tmp/test.log

(2)备份etc目录,到 /var/back/目录中,每10分钟执行一次,文件以日期和时间命名(eg:20101010_101000_etc.tar.gz),并删除一个小时之前备份的文件。

创建 /root/back.sh 文件并添加x权限,并在文件中添加如下内容:

tar -czPf /var/back/"$(date +'%Y%m%d_%H%M%S')"_etc.tar.gz /etc/*
find /var/back/* -mmin +60 -delete

执行命令crontab -e 然后添加如下计划任务:

*/10 * * * *  /root/back.sh

其他:

1.设置特定用户不能创建cron计划任务

添加用户名到 /etc/cron.deny

Last modification:November 15th, 2018 at 10:52 pm