shell创建定时任务

shell创建定时任务

1. 创建shell

touch  /home/renhuan/text/bin/auto-del-1-days-ago-log.sh

chmod +x auto-del-1-days-ago-log.sh`

新建一个可执行文件auto-del-1-days-ago-log.sh,并分配可运行权限

2. 编辑shell脚本:

vi auto-del-1-days-ago-log.sh

编辑auto-del-1-days-ago-log.sh文件如下:

#!/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;

ok,保存退出(:wq)。

备注:

-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

配置说明


*(分)  *(时)   *(天)  *(月)  *(星期)

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

常用写法
* * * * * sleep 50;

每50秒执行一次

0 */2 * * *

每隔两小时

0 23-7/2,8 * * * 

晚上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文件或脚本。**

本文部分转自:https://blog.csdn.net/csdn265/article/details/51569669

你可能感兴趣的:(linux)