Linux系统为/var/spool/mail/目录设置logrotate

直接上代码

1 #!/bin/sh
2 
3 find /var/spool/mail/ -type f -size +10M -print -exec gzip {} \; > /tmp/mail_rotate_gzip.log 2>&1
4 find /var/spool/mail/ -type f -iname *.gz | xargs rename .gz .`date "+%Y%m%d"`.gz
5 find /var/spool/mail/ -type f -daystart -mtime +180 -iname *.gz -print -exec rm -f {} \; > /tmp/mail_rotate_remove.log 2>&1

 

find命令_Linux find 命令用法详解:在指定目录下查找文件
https://man.linuxde.net/find

虚拟机实验

找到下超过1MB的文件,gzip打成压缩包,源文件就没了
find /var/log/ -type f -size +1M -print -exec gzip {} \;


把"*.gz"压缩包文件,批量重命名为"*.190827.gz"的形式,源压缩包文件就没有了
find /var/log/ -type f -iname "*.gz" | xargs rename .gz .`date "+%Y%m%d"`.gz


找到从本日开始计算,3天前修改过的"*.gz"文件,删除掉
find /var/log/ -type f -daystart -mtime +3 -iname "*.gz" -print -exec rm -f {} \;

 

在/logs目录中查找更改时间在7日以前的文件并删除它们:
$ find logs/ -type f -mtime +7 -exec rm -f {} \;
在/logs目录中查找更改时间在7日以内的文件并删除它们:
$ find logs/ -type f -mtime -7 -exec rm -f {} \;
然后加入的计划任务中每日执行便可。


目录中查找更改时间在7日以前的文件:
find ./ -type f -mtime +7
目录中查找更改时间在7日以内的文件:
find ./ -type f -mtime -7
目录中查找更改时间在7日以内的目录:
find ./ -type d -mtime -7


目录中查找更改时间在7日以内的文件:
find ./ -type f -mtime -30
目录中查找更改时间在7日以内的目录:
find ./ -type d -mtime -30


将find的结果详细展示出来:
find ./ -type f -mtime -30 -exec ls -lh {} \;
find ./ -type f -mtime -30 -print -exec ls -lh {} \;


-print: 将查找到的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。

 

posted @ 2019-09-08 11:33  tobyhan  阅读(623)  评论(0编辑  收藏  举报