检测文件是否使用今天的日期创建,然后删除旧文件

时间:2016-08-30 10:33:47

标签: linux bash shell

我有一个脚本可以删除特定目录中超过+2天的文件。 我想在删除旧文件之前检查是否有创建今天日期的文件。 这就是我所拥有的:

#!/bin/bash

find /var/backups/server1 -type f -mtime +2 -exec rm {} \;
find /var/backups/server2 -type f -mtime +2 -exec rm {} \;
find /var/backups/server3 -type f -mtime +2 -exec rm {} \;
find /var/backups/server4 -type f -mtime +2 -exec rm {} \;
find /var/backups/server5 -type f -mtime +2 -exec rm {} \;

所以基本上: 1.使用今天的日期检查目录。 2.如果肯定发现/ var / backups / serverX -type f -mtime +2 -exec rm {} \; 3.如果没有"执行scriptX" (可能是邮件通知)

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以做这样的事情

find /var/backups/ -maxdepth 1 -type d  -print0 | while read -rd '' dirname 
do
arry=( $(find "${dirname}" -type f -atime 0) )
#Checks if there is a file that is updated today.
[ "${#arry[@]}" -ge 1 ] && find "${dirname}" -type f -mtime +2 -exec rm {} \;
done