首页 > 技术文章 > linux定时任务

luozx207 2019-04-23 15:22 原文

crontab指令

crontab –e :编辑用户个人的定时执行任务,如果文件不存在会自动创建

crontab –l : 显示 crontab 文件。

crontab -r : 删除 crontab 文件。

crontab -ir : 删除 crontab 文件前提醒用户。

使用crontab -e创建文件后,文件的每一行都表示一个定时执行的任务

每一行的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}

minute: 区间为 0 – 59

hour: 区间为0 – 23

day-of-month: 区间为0 – 31

month: 区间为1 – 12. 1 是1月. 12是12月.

Day-of-week: 区间为0 – 7. 周日可以是0或7.

举个例子:

每隔5分钟执行usercnt.sh脚本:*/5 * * * * /root/usercnt.sh

“*”表示所有。"/"代表每的意思, "/5"表示每5个单位

"-"代表从某个数字到某个数字, ","分开几个离散的数字。

应用实例

每天凌晨删除某个文件夹中三天前的数据

crontab写法:0 0 * * * /home/wb.luozixi/del-files-3-days-ago.sh

表示每天的零点零分执行del-files-3-days-ago.sh

删除三天前数据的脚本del-files-3-days-ago.sh

#!/bin/bash
find /home/xxx/files -mtime +3 -name "*" -exec rm -rf {} \;

-mtime +3表示3天前的文件

也可以用-name "*.log"表示所有的log文件

{}表示用find指令找到的文件或文件夹名称

;表示使用-exec执行的指令的结尾,为了不让shell误解要加一个转义字符\,这样它才能够传递给find指令

推荐阅读