我们有一台服务器,运行一个内部使用的应用程序。该应用程序有一个实用程序,每 24 小时创建一次自己的备份。
备份存储在:/var/application/application-data/exports
我们在 /mnt/AppDataBkp 下有一个 NFS 挂载
我想设置一个 bash 脚本来执行以下操作:
按照计划(cron,每 24 小时),它将查找 var/application/application-data/exports 中超过 7 天的任何 .zip 文件并将其删除。
然后,它会将该目录中剩余的内容复制到 /mnt/AppDataBkp
或者,如果它还可以从 /mnt/AppDataBkp 中删除超过 7 天的任何文件/备份,那就太好了。
到目前为止,我想出了这个方法,它可以查找超过 7 天的文件并将其删除:
#!/bin/bash
find var/application/application-data/exports -name "*.zip" -type f -mtime +7 -exec rm {} \;
rsync -rlptgoD /var/application/application-data/exports /mnt/AppDataBkp &&
find /mnt/AppDataBkp -name "*.zip" -type f -mtime +7 -exec rm {} \;
任何帮助将非常感激。
答案1
简单来说:
#!/bin/bash
echo ----Starting Backup----
echo Start Time: $(date +%m-%d-%Y) $(date +%H-%M)
echo ------------------------
echo Deleting if older than 7 days
echo ------------------------
find /var/application/application-data/exports/*.zip -mtime +7 -exec rm {} \;
echo ------------------------
echo Sending to AppDataBkp
echo ------------------------
rsync -rlptgoD /var/application/application-data/exports /mnt/AppDataBkp
echo ------------------------
echo Deleting if older than 7 days in AppDataBkp
echo ------------------------
find /mnt/AppDataBkp/*.zip -mtime +7 -exec rm {} \;
echo ------------------------
echo ----Backup Complete----
答案2
我的帮助是使用-delete
而不是exec rm ...