在使用linux系统中,我们不可避免的要在某一个时间内执行某个任务,比如数据库日备份,周备份。这对于人来说,是很烦的一件时。但是在linux系统中我们可一通过crontab这个工具来实现自动执行。
当我们使用crontab来新建工作调度后,该项工作就会记录到/var/pool/cron里面,而且是以帐号来作为判别的。另外,cron每执行一项工作都会被记录到/var/log/cron这个日志文件中。
crontab语法: crontab 【-u username】 【-l |-e | -r]
参数: -u :只有root才能使用这个参数。表示帮其他用户建立/删除crontab工作调度
-e :编辑crontab的工作内容
- l :列出现有的crontab的工作内容
-r:删除crontab所有的工作内容。注意,这个参数是删除所有。如果只删除一个,用-e
输入crontab -e后就进入了工作编辑页面。一个工作调度占一行。 每行的格式都是六个字段,具有语法的。
比如每10分钟报时: */10 * * * * date>> ~/date.cron
第一个字段表示分,0~59
第二个字段表示时,0~23
第三个字段表示日,1~31
第四个字段表示月,1~12
第五个字段表示周,0~7。注意0和7都代表星期日。
第六个就是执行的命令。
另外还有一些辅助字符:
* (星号):代表任何时刻。
,(逗号):分别列举适合的时段。 如3点和六点都执行: 0 3,6 * * * command
-(减号):代表一段时间。比如8点到12点之间20分执行:20 8-12 * * * command
/n(斜线):n代表数字,每隔n个单位。每5分钟执行: */5 * * * * command
系统级的例行工作:/etc/crontab。这个一般由root直接vim编写。每行工作要指定执行者。默认是root。
注意的问题:
1.系统资源分配,适当调整工作调度的顺序和时间。
2.输出信息:可以用重定向输出到某一个特定文件
3.安全检验:查看/var/log/cron是否有未知的危险的动作(如木马)
4.周与日,月不可同时并存。只能以周或者日,月来分别设定循环周期。两个不能同时成立。