Linux 周期性计划任务之crontab

  • crontab命令介绍
  • 按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作

  • 属于周期性计划任务

  • 主要设置文件: 全局配置文件负责调度各种管理和维护任务:/etc/crontab

    ​ 系统默认的设置,位于目录:/etc/cron.d/

    ​ 用户定义的设置,位于文件:/var/spool/cron/用户名

  • crontab命令选项
crontab [-u username]   ##如果不使用选项-u指定用户则表示对当前用户进行操作
         -e  编辑计划任务
         -l  显示计划任务列表
         -r  删除所有计划任务  ##如果是root用户下执行该选项则会删除全部计划任务
  • crontab命令设置格式
# 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 17 * * 1-5   含义:周一到周五每天17:00
字段 说明
分钟 取值为从0到59之间的任意整数
小时 取值为0到23之间的任意整数
日期 取值为1到31之间的任意整数
月份 取值为1到12之间的任意整数
星期 取值为从0到7之间的任意整数,0或7代表星期日
命令 要执行的命令或程序脚本
  • 时间数值的特殊表示方法

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

    每天下午16:00将messages日志拷贝到/root目录下

    [root@localhost ~]# crontab -e   ##创建周期性计划任务
    [root@localhost ~]# crontab -l   ##查看计划任务列表
    15 16 * * * cp /var/log/messages /root
    到16:00后我们查看一下/root目录下是否有messages文件
    [root@localhost ~]# ls /root   ##列出root目录下所有文件
    anaconda-ks.cfg  messages
    
  • 【思考】:crontab -e 与 /etc/crontab 同样是编辑计划任务,两者之间的区别是什么?

    /etc/crontab 只能由root用户才能修改,普通用户没有权限

    crontab -e 所有用户都可以执行该命令,计划任务会写入 /var/spool/cron/用户名

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/107134963