Linux定时任务配置且清除N天前文件
1.找到定时任务文件查看并编辑
(1)Linux 命令行,进入目录:cd /var/spool/cron/
(2)查看定时任务:crontab -l
(3)编辑定时任务文件:vi root 编辑定时任务 编辑完成后,点ESC,然后:wq
(4) 编辑完成后重新启动:#service crond restart
【注】
时间格式
分钟 小时 日期 月份 周 命令
数字范围 0-59 0-23 1-31 1-12 0-7 echo "hello" >> abc.log
特殊字符的含义
*(星号) 代表任何时刻都接受。
,(逗号) 代表分隔时段的意思。
-(减号) 代表一段时间范围内。
/n(斜线) 那个 n 代表数字,每隔 n 单位间隔。
eg1: 每年的五月一日 10:5 执行一次
5 10 1 5 * command(要是执行网址(curl "http://网址"),或者执行其它的直接写路径)
eg2: 每天的三点,六点各执行一次
00 3,6 * * * command
eg3: 每天的8:20, 9:20,10:20,11:20各执行一次
20 8-11 * * * command
eg4: 每五分钟执行一次
*/5 * * * * command
eg5: 每周一十点执行一次
00 10 * * 1 command
编写shell脚本
语句写法:
find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} ;
例如:
设置是每天凌晨1点执行clear文件进行数据清理
示例:
#!/bin/sh
find /usr/log -mtime +6 -name"server.log.*" -exec rm -rf {} \;
exit
设置定时任:
[root@aaaaa ~]# crontab -l
* 1 * * * sh /root/AutoDelLog.sh
这样每天晚上1点执行这个脚本,脚本是删除6天前的文件
find /etc/rc.d -name ‘*crond’ -exec file {} ;
查找/etc/rc.d目录下面所有以crond结束的文件,并使用file指令查看其属性
【注意】:exec和file间是一个空格,file和{}间是一个空格,{}和;之间是一个空格,;是一个整体。
按磁盘大小排序
按从大至小的顺序排序: du -sh * | sort -nr
选出排在前面的10个:du -s * | sort -nr | head
选出排在后面的10个:du -s * | sort -nr | tail