在 Linux/Unix 系统中,我们的应用每天会产生日志档案,每天也会备份应用程式和资料库,日志档案和备份档案长时间积累会占用大量的储存空间,而有些日志和备份档案是不需要长时间保留的,一般保留 7 天内的档案即可,那么我们怎么找出并删除 7 天前产生的日志档案和备份档案并将其删除呢?
Linux/Unix 提供了 find 操作系统命令,使用该命令可以实现我们的目标。
$man find 可以检视 find 命令的使用方法。
1. 找出 n 天前的档案
$find /temp/ -type f -mtime +n -print
注:/temp/ 指出寻找/temp/目录下的档案
-type f 指出找系统普通档案,不包含目录档案
-mtime +n 指出找 n*24 小时前的档案
-print 将找出的档案列印出来
如:找出 7 天前的档案
$find /temp/ -type f -mtime +7 -print
找出 3 天前的档案
find /temp/ -type f -mtime +3 -print
2. 找出并删除 7 天前的档案
$find /temp/ -type f -mtime +7 -print -exec rm -f {} ;
注:-exec 指出要执行后面的系统命令
rm -f 删除找出的档案
{} 只有该符号能跟在命令后面
结束符
3. 也可以使用 xargs 代替 -exec
$find /temp/ -type f -mtime +7 -print | xargs rm -f
find 命令用途举例:
如:
* 查询/var 下最大的前 10 个档案:
$ find /var -type f -ls | sort -k 7 -r -n | head -10
* 查询/var/log/下大于 5GB 的档案:
$ find /var/log/ -type f -size +5120M -exec ls -lh {} ;
* 找出今天的所有档案并将它们拷贝到另一个目录:
$ find /home/me/files -ctime 0 -print -exec cp {} /mnt/backup/{} ;
* 找出所有一周前的临时档案并删除:
$ find /temp/ -mtime +7-type f | xargs /bin/rm -f
* 查询所有的 mp3 档案,并修改所有的大写字母为小写字母:
$ find /home/me/music/ -type f -name *.mp3 -exec rename ‘y/[A-Z]/[a-z]/’ ‘{}’ “,
mysql 使用者管理, 快速建立使用者,linux