在Unix中使用shell脚本删除超过10天的文件
我是新的shell脚本,任何人都可以帮忙吗? 我想从当前date删除文件夹中的脚本到10天。 这些脚本看起来像:
2012.11.21.09_33_52.script 2012.11.21.09_33_56.script 2012.11.21.09_33_59.script
该脚本将每10天运行一次Crontab,这就是为什么我需要当前date。
find
是这种任务的常用工具:
find ./my_dir -mtime +10 -type f -delete
说明
-
./my_dir
你的目录(用你自己的replace) -
-mtime +10
10天以上的时间-mtime +10
-
-type f
只有文件 -
-delete
没有意外。 在执行整个命令之前删除它以testing您的find
filter
并./my_dir
存在,以避免不好的惊喜!
只是精神上的shell脚本删除旧文件
#!/bin/bash timestamp=$(date +%Y%m%d_%H%M%S) path="/data/backuplog" filename=log_back_$timestamp.txt log=$path/$filename find $path -name "*.txt" -type f -mtime +7 -print -delete >> $log echo "Backup:: Script Start -- $(date +%Y%m%d_%H%M)" >> $log START_TIME=$(date +%s) ... code for backup ...or any other operation .... END_TIME=$(date +%s) ELAPSED_TIME=$(expr $END_TIME - $START_TIME) echo "Backup :: Script End -- $(date +%Y%m%d_%H%M)" >> $log echo "Elapsed Time :: $(date -d 00:00:$ELAPSED_TIME +%Hh:%Mm:%Ss) " >> $log
代码基于sputnick的答案,并增加了一些东西。
- 用时间戳命名的日志文件
- 日志文件夹指定
- find仅在日志文件夹中查找* .txt文件
- 超过7天的日志文件被删除(假设这是备份日志)
- 注意开始/结束时间
- 计算经过的时间…
如果你可以通过文件数据工作,你可以做
find -mmin +14400 -delete