`
mushme
  • 浏览: 777832 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

自动删除文件的脚本

 
阅读更多
linux是一个很能自动产生文件的系统,日志、邮件、备份等。所以自动删除就显的很方便。
语句写法:
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
例1:
find /u01/backups -mtime +10 -name "*.*" -exec rm -rf {} \;
将/u01/backups目录下所有10天前带"."的文件删除
find:linux的查找命令,用户查找指定条件的文件
/u01/backups:想要进行清理的任意目录
-mtime:标准语句写法
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \; :固定写法,一对大括号+空格+\+;

可以将这小语句写到一个可执行文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。

新建一个可执行文件clear.sh
#vi clear
#!/bin/sh
find /u01/backups -mtime +10 -name "*.*" -exec rm -rf {} \;

赋权
#chmod 777 clear
将clear.sh文件加入到系统计划任务,到点自动执行
#crontab -e
* 2 * * */usr/local/bin/clear
这里的设置是每天凌晨2点执行clear文件进行数据清理

查找
find . -name "*.jsp"

如何用find命令查找目录中文件大小大于1MB日文件
find / -size +2 -print
删除当前文件夹下字节数为 37154字节的html文件
find . -size 37154c -name “*.html”  -exec  rm -f } \;

参数介绍
-size N[bcwkMG]    -size<文件大小>  查找符合指定的文件大小的文件。
-exec COMMAND {} + -ok COMMAND ;  假设find指令的回传值为True,就执行该指令。

查找 包含alias字符串的*.conf的文件
find / -name "*.conf" | xargs grep "alias"
1. grep -R -l 一些也可以实现,但是通过管道 | 比单纯用grep 复杂的参数更有效率。
2. xargs是用来展开find获得的结果,使其作为grep的参数。


#> find . -type f -exec grep 'happy new year' -l {} \;
grep -l :是显示匹配的内容的文件名字!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics