crontab

 Thu, 22-Jun-2023 01:32:52

1.service crond start

 

 2. crontab -e

     进入定时任务配置。配置规则看下面文章

 

以下内容部分转自:

https://blog.csdn.net/renhuan28/article/details/79820281 

以及

https://blog.csdn.net/csdn265/article/details/51569669

 

#!/bin/sh
filepath=$(cd "$(dirname "$0")"; pwd)
find /opt/soft/log/ -mtime +1 -name "*.log" -exec rm -rf {} ;
echo `date +%Y-%m-%d/%H:%M:%S`' clear all out log ...' >> $filepath/rm_log.log;

-mtime +n n天前

-mmin +n n分钟前

3.计划定时任务:
crontab -e

或vim /var/spool/cron/用户

将auto-del-1-days-ago-log.sh执行脚本加入到系统计划任务,到点自动执行

输入:

10 10 * * * /home/renhuan/text/bin/auto-del-1-days-ago-log.sh
1
配置说明


*(分)  *(时)   *(天)  *(月)  *(星期)
1
2
这里的设置是每天10点10分执行auto-del-1-days-ago-log.sh文件进行数据清理任务了。

常用写法
* * * * * sleep 50;
1
每50秒执行一次

0 */2 * * *
1
每隔两小时

0 23-7/2,8 * * * 
1
晚上11点到早上8点之间每两个小时,早上8点

每五分钟执行 */5 *  *

每小时执行 0 * * * *

每天执行 0 0 * * *

每周执行 0 0 * * 0

每月执行 0 0 1 * *

每年执行 0 0 1 1 *

cron机制
​ cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制

crontab参数
​ -u: 这个参数可以让我们去编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab
​ crontab -u 使用者名称

​ -l: 可以列出crontab的内容

​ -r: 可以移除crontab

​ -e: 可以使用系统预设的编辑器,开启crontab

​ -i: 可以移除crontab,会跳出系统信息让你再次确定是否移除crontab

crontab时间格式说明
​ minute(分)可以设置0-59分

​ hour(小时)可以设置0-23小时

​ day of month(日期)可以设置1-31号

​ month(月份):可以设置1-12月

​ day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,或者我们也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一等等

crontab时间格式范例
​ 1-3表示123
​ 1-9/2表示13579

crontab范例
​ 每五分钟执行 /5 * * *

​ 每小时执行 0 * * * *

​ 每天执行 0 0 * * *

​ 每周执行 0 0 * * 0

​ 每月执行 0 0 1 * *

​ 每年执行 0 0 1 1 *

设定cron的权限
​ /etc/cron.allow
​ /etc/cron.deny

备注:cron在3个地方查找配置文件:
1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如falcon建的crontab任务对应的文件就是/var/spool/cron/falcon。
一般一个用户最多只有一个crontab文件。

2、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。**

3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。**

 

 

cron机制
        cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制

crontab参数
        -u:这个参数可以让我们去编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab
        crontab -u 使用者名称

        -l:可以列出crontab的内容

        -r:可以移除crontab

        -e:可以使用系统预设的编辑器,开启crontab

        -i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab

crontab时间格式说明
        minute(分)可以设置0-59分

        hour(小时)可以设置0-23小时

        day of month(日期)可以设置1-31号

        month(月份):可以设置1-12月

        day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,或者我们也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一等等

crontab时间格式范例
    1-3表示123
    1-9/2表示13579

crontab范例
    每五分钟执行  */5 * * * *

    每小时执行     0 * * * *

    每天执行        0 0 * * *

    每周执行       0 0 * * 0

    每月执行        0 0 1 * *

    每年执行       0 0 1 1 *

设定cron的权限
        /etc/cron.allow
        /etc/cron.deny

        系统首先判断是否有cron.allow这个文件,如果有这个文件的话,系统会判断这个使用者有没有在cron.allow的名单里面,如果在名单里面的话,就可以使用cron机制。如果这个使用者没有在cron.allow名单里面的话,就不能使用cron机制。

         如果系统里面没有cron.allow这个文件的话,系统会再判断是否有cron.deny这个文件,如果有cron.deny这个文件的话,就会判断这个使用者有没有在cron.deny这个名单里面,如果这个使用者在cron.deny名单里面的话,将不能使用cron机制。如果这个使用者没有在cron.deny这个名单里面的话就可以使用cron机制。

        如果系统里这两个文件都没有的话,就可以使用cron机制

介绍crontab文件
        /etc/crontab
        在这个文件里并没有记录系统要执行哪些工作,而是记录了下面四个子目录。
        /etc/cron.hourly
        /etc/cron.daily
        /etc/cron.weekly
        /etc/cron.monthly
        这些子目录里存放了一些脚本,到了crontab所指定的时间点,系统就会去执行这些子目录里的脚本