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

更新时间:2020-03-10    来源:linux    手机版     字体:

【www.bbyears.com--linux】

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

本文来源:http://www.bbyears.com/caozuoxitong/86144.html