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指令