删除旧文件并复制剩余文件的脚本

删除旧文件并复制剩余文件的脚本

我们有一台服务器,运行一个内部使用的应用程序。该应用程序有一个实用程序,每 24 小时创建一次自己的备份。

备份存储在:/var/application/application-data/exports

我们在 /mnt/AppDataBkp 下有一个 NFS 挂载

我想设置一个 bash 脚本来执行以下操作:

  1. 按照计划(cron,每 24 小时),它将查找 var/application/application-data/exports 中超过 7 天的任何 .zip 文件并将其删除。

  2. 然后,它会将该目录中剩余的内容复制到 /mnt/AppDataBkp

  3. 或者,如果它还可以从 /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 ...

相关内容