一般情况下,我们在操作和运维VPS、服务器的时候可能会用到定时任务的配置,比如定时的重启服务器、定时备份数据等操作使用的还是比较多的。这里就离不开使用crontab命令的任务配置,在这篇文章中,老左将会整理较为齐全的crontab命令使用的方法以及常用的实例操作。

Linux系统环境crontab定时任务设置参数实例及常用技巧

从上图中,我们其实就可以看到crontab具体用法。一共有6个段落,前面5个标示定时的时间设定,后面一个标示文件的路径定时执行。

第一、crontab安装

一般我们使用的centos或者debian发行版本都自带crontab定时软件支持的,如果系统不支持,我们只需要通过下面对应的安装就可以。

1、centos安装crontab

#安装Crontab
yum install vixie-cron crontabs
#设置开机启动Crontab
chkconfig crond on
#启动Crontab
service crond start

2、debian安装crontab

#安装Crontab
apt-get install cron
#重启Crontab
/etc/init.d/cron restart

确保系统安装且运行生效之后才可以相关的设置。

第二、定时任务案例

1、35 * * * * updatedb

每隔一小时35分钟的时候更新一次数据库。

2、*/5 * * * * /usr/local/bin/diskusage.sh

每隔5分钟运行diskusage.sh文件。

3、25,50 1 15 * 2 /usr/local/bin/diskusage.sh

每周二1:50AM执行文件

4、00 14 10 3,6,9,12 * /usr/local/bin/diskusage.sh

每年3、6、9、12月份第十天下午2点执行。

5、00 21 * * Mon,Wed,Fri /usr/local/bin/diskusage.sh admin@laozuo.org

每周一、三、五下午9点执行脚本

6、*/5 * * * 1-5 /usr/local/bin/diskusage.sh

周一到周五,每五分钟执行。

第三、系统调度

/etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly

如果我们根目录在执行backup.sh备份命令,使用上面脚本可以直接替换到/etc/cron.weekly目录。

第四、定时计划的级别设定

我们在操作的时候,每个用户都可以编辑、查看、删除crontab定时配置文件。如果根用户需要改crontab文件,必须加上'-u'选项来指定用户名。

1、编辑crontab文件的用户laozuo时候,我们可以使用命令:

crontab -u laozuo -e

2、移除laozuo用户的定时设定

crontab -u laozuo -r

3、查看laozuo定时任务设置文件

crontab -u laozuo -l

第四、从文件中加载crontab

我们除了可以手工编辑定时文件之外,还可以文件加载到定时文件中。

cat /root/mycronjobs.txt
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh

我们需要先上传编辑好的mycronjobs.txt定时任务文件到目录中,然后才可以执行。

crontab /root/mycronjobs.txt

通过这个命令检查验证。

crontab -l
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh

这里我们可以检查定时文件是否存在。

第五、加入SELinux安全选项

crontab -s /root/mycronjobs/my.txt
SELINUX_ROLE_TYPE=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh

第六、删除定时任务工作

[root@linux ~]# crontab -l
53 00 * * 7 /bin/sh /root/server-backup.sh
01 00 * * * /bin/sh /root/check-user-quota.sh

[root@linux ~]# crontab -r

[root@linux ~]# crontab -l
no crontab for root

我们先用-l查看当前的定时任务,然后用-r删除,然后再检查已经没有任务选项。

总结,以上6个步骤和方法,就是我们常用的crontab定时文件配置常用的,一般我们会用的多的是备份和定时启动等,根据我们实际的需要再进行时间上的调整。