定时任务
- 以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命令