定时清理指定目录下大于指定大小、指定文件名的文件
1、查找指定目录下大于(小于)指定大小、指定文件名的文件
find pathname –size +filesizec –name filename
find pathname –size -filesizec –name filename
2、清理(删除)
find pathname –size filesize –exec rm {} \;
3、定时
usage: crontab [-u user] file
crontab [-u user] { -e | -l | -r }
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
crontab定时时间格式如下:
t1 t2 t3 t4 t5 program
t1:表示分钟,取值(0-59)。
t2:表示小时,取值(0-23)。
t3:表示日,取值(1-31)。
t4:表示月份,取值(1-12)。
t5:表示星期,取值(0-6),0是星期天。
还有几个特殊的符号:“*”,“/”,“-”。
“*”表示所有取值范围内的数字,“/”表示每的意思,比如在分钟上 */2 ,表示每两分钟为一个单位,“-”表示从某个数字到某个数字。
由于crontab是个全局命令,因此可以在任何目录下操作crontab。
实例及总结:
在每周五的5点5分删除temp目录下文件大小走超过1KB的所有文件。
(1)文件名为findfile.sh,如下:
#!/bin/sh find temp -size +1k -exec rm {} /; |
(2)然后对findfile.sh文件操作:
chmod u+rwx findfile.sh #修改文件属性,使该shell脚本可执行。 |
(3)在当前目录下 crontab -e编辑crontab,键入i使其成为可输入,输入如下内容:
5 5 * * 5 /bin/sh /home/findfile.sh |
/bin/sh代表shell程序,可以通过which sh 命令来查看机器的shell程序在哪个目录。
(4)启动cron服务
sudo /usr/sbin/service cron start |
参考:
http://blog.chinaunix.net/u/31547/showart_438018.html