这个问题已经在这里有一个答案:
- shell脚本删除目录年龄超过n天 5个回答
我是新来的shell脚本,谁能帮助? 我想从当前日期的文件夹中删除脚本回10天。 这些脚本是这样的:
2012.11.21.09_33_52.script
2012.11.21.09_33_56.script
2012.11.21.09_33_59.script
该脚本将在每10天用crontab的运行,这就是为什么我需要的当前日期。
这个问题已经在这里有一个答案:
我是新来的shell脚本,谁能帮助? 我想从当前日期的文件夹中删除脚本回10天。 这些脚本是这样的:
2012.11.21.09_33_52.script
2012.11.21.09_33_56.script
2012.11.21.09_33_59.script
该脚本将在每10天用crontab的运行,这就是为什么我需要的当前日期。
find
是这种任务的常用工具:
find ./my_dir -mtime +10 -type f -delete
说明
./my_dir
目录(换成你自己的) -mtime +10
早于10天 -type f
仅文件 -delete
并不令人意外。 删除它来测试你的find
执行整个命令之前过滤器 和照顾./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 -mmin +14400 -delete