Linux系统中,我们可以使用定时任务在每天的特定时间段运行作业,或在一周或一月中的不同时段运行。cron是Linux系统主要的调度进程,可以在无需人工干预的情况下运行作业。通过crontab命令允许用户提交、编辑或删除相应的作业,用于设置周期性执行的指令或脚本。每一个用户都可以有一个属于自己的crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。
在命令行中通过crontab命令来为您的用户账号添加一条新的定时任务: $ crontab -e
如果您为别的用户账号添加定时任务,您可以加上-u参数: $ sudo crontab -u
此时系统会为您打开一个文本编辑器,您可以在其中添加您想要设置的定时任务(由于系统不同,您可以看到的内容与下图不一致)
crontab 文件中每行任务由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间,每个字段的值域范围如下: 分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期几(0-7,其中0和7代表星期日) 第6个字段是待定时执行的命令或脚本字符串。
以下是一些定时任务的例子: * * * * * /home/myuser/script.sh: 每分钟执行一次脚本 0 * * * * /home/myuser/script.sh: 每小时执行一次脚本 0 0 * * * /home/myuser/script.sh: 每天零点执行一次脚本 0 9,18 * * * /home/myuser/script.sh: 每天9点和18点各执行一次脚本 0 9-18 * * * /home/myuser/script.sh: 每天9点到18点之间,每小时执行一次脚本 0 9-18 * * 1-5 /home/myuser/script.sh: 每周周一到周五,9点到18点之间,每小时执行一次脚本 */10 * * * * /home/myuser/script.sh: 每10分钟执行一次脚本
一旦添加、修改好定时任务,可以通过 Ctrl+X 键来保存修改。可以通过crontab -l 查看定时任务列表。 之后,需要重启cron服务让crontab配置文件生效。在Fedora和Redhat中,可以用以下命令进行重启: /etc/rc.d/crond restart
如果让crond在开机时运行,应该改变其运行级别: chkconfig –level 35 crond on
也可以通过service crond status查看cron服务状态,如果没有启动则service crond start启动它。 |