> Linux教程 >

【Linux学习笔记】使用crond实现计划任务

crond是Linux下的一个服务,用于按照既定计划执行特定任务。crond的原理,即每隔一分钟醒来一次,查看crontab中是否有需要执行的命令,如果有,则执行,没有则继续休眠。了解了crond的大概原理后,我们来看看具体操作。

1、启用crond服务

service crond start

启用后,查找crontab文件,一般位于 /var/spool/cron/ 目录下,与用户名同名。例如如果我是root用户,则crontab文件为 /var/spool/cron/root。

2、编辑crontab文件

编辑crontab文件内容:crontab -e

列举crontab文件内容:crontab -l

删除当前的crontab:crontab -r

crontab的编辑类似使用vi编辑器。其实也可以通过sftp将crontab文件下载回本地,使用notepad++等文本编辑器修改后再传回覆盖即可。根据实际情况选取和变通最擅长的操作,没必要过于刻板。

3、crontab文件的内容与语法

crontab文件中,每一行代表一个计划任务,每行的基本语法:

[分钟] [小时] [日期] [年份] [星期] [命令]

说明:

(1)这6部分均不可为空,如果不需要设置则使用“*”来替代;

(2)命令需要使用绝对路径,例如cp命令需要写成/bin/cp;

(3)分钟、小时、日期、年份与正常的自然事件写法相同,小时为24小时制,星期0~6代表周日~周六

(4)用户必须要有执行命令的权限;

(5)如果某个段有多个值,可用“,”隔开,如果多个值是连续的,可用“-”连接;

(6)如果要每隔一个时间执行,写法为“*/[数值]”。

4、crontab任务范例一:

每小时的第5分钟执行一个任务:5 * * * * /bin/echo "this is a task"

每天15点30分执行一个任务:30 15 * * * /bin/echo "this is a task"

每月16日18点40分执行一个任务:40 18 16 * * /bin/echo "this is a task"

每周五8点整执行一个任务:0 8 * * 5 /bin/echo "this is a task"

5、crontab任务范例二:

周一到周五18点整执行某任务:0 18 * * 1-5 /bin/echo "this is a task"

每月5日、15日、25日8点15分执行某任务:15 8 5,15,25 * * /bin/echo "this is a task"

每隔10分钟执行某任务 */10 * * * * /bin/echo "this is a task"

(责任编辑:IT)