Linux定时任务cron详解

定时任务

  • 以root身份打开/etc/crontab文件,在其中添加下面这一行
    • 分钟,0表示整点;
    • 小时,17表示下午5点;
    • 日期,星号“*”表示一个月中的每一天;
    • 月份,星号“*”表示一年中的每个月;
    • 星期,星号“*”一星期中的每一天;
    • 以哪个用户身份执行命令,这里是root;
    • 需要执行的命令。
# 每天下午5点(差不多刚好是下班的时间)以root身份将/media/station/document/book目录下所有的doc文件打包成book.tar.gz,并且存放在闪存/media/disk中。最后保存文件并退出编辑器,该配置会自动生效。
0  17   * * *   root    ( tar czf /media/disk/book.tar.gz /media/station/
document/book/*.doc )

cron的运行原理

  • Linux上的周期性任务通常都是由cron这个守护进程来完成的。cron随系统启动而启动,一般不需要用户干预。当cron启动时,它会读取配置文件,并把信息保存在内存中。
  • 每过1分钟,cron重新检查配置文件,并执行这一分钟内安排的任务。因此cron执行命令的最短周期是1分钟
  • 在/etc/init.d中找到它的启动脚本cron
 sudo /etc/init.d/cron restart

crontab管理

  • 和系统维护有关的全局任务计划一般都存放在/etc/crontab中,这个配置文件由系统管理员手动制定。
  • 另一个存放系统crontab的地方是/etc/cron.d目录。在实际工作中,这个目录中的文件和/etc/crontab的地位是相等的。
    • 某些应用软件需要设置自己的任务计划,/etc/cron.d提供了这样一个地方让这些软件包安装crontab项。
    • 特别提供这样一个目录的意义在于,将系统管理员的想法和应用软件的想法分开,保证它们不至于混杂在一个文件(/etc/crontab)中。
  • 除了/etc/cron.d目录,cron还提供了/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly和/etc/cron.monthly这些目录。分别用于存放每小时、每天、每星期和每月需要执行的脚本文件
  • 每个用户的cron配置文件保存在/var/spool/cron目录下,这个配置文件以用户的登录名作为文件名,cron依据这些文件名来判断到时候以哪个用户身份执行命令

管理用户的cron任务计划

  • 编辑用户自己的cron配置文件应该使用crontab命令
  • 管理员需要建立/etc/cron.allow和/etc/cron.deny文件(通常只要建立其中一个就可以了),/etc/cron.allow列出了那些可以提交crontab的用户
    • 这两个文件的“语法”非常简单:包含若干行,每行一个用户
理解配置文件
  • 为了使改动生效,只需要修改并保存这个文件就可以了,而不必运行crontab命令通知cron重新载入配置文件。
  • 表示时间的字段应该是下面这4种形式之一。
    • 星号“*”:用于匹配所有合法的时间;
    • 整数:精确匹配一个时间单位;
    • 用短划线“-”隔开的两个整数,匹配两个整数之间代表的时间范围;
    • 用逗号“,”分隔的一系列整数,匹配这些整数所代表的时间单位。
  • 同时设置day字段和weekday字段意味着“匹配其中任意一项”。
# 下面的时间设置表示“每周的周一至周三,以及每月的25号,每隔半个小时(执行某项命令)”。
0,30    *    25    *    1-3
  • command字段可以是任何有效的Shell命令,并且不应该加引号
  • 可以使用圆括号“( )”括起多条命令,命令之间用分号“;”隔开

简单的定时:at命令

  • at命令则更适合于那些一次性的任务。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值