我有一个脚本可以删除特定目录中超过+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" (可能是邮件通知)
谢谢!
答案 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