一般情况下,我们在操作和运维VPS、服务器的时候可能会用到定时任务的配置,比如定时的重启服务器、定时备份数据等操作使用的还是比较多的。这里就离不开使用crontab命令的任务配置,在这篇文章中,老左将会整理较为齐全的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定时文件配置常用的,一般我们会用的多的是备份和定时启动等,根据我们实际的需要再进行时间上的调整。