Linux

刪除舊文件並複制剩余文件的腳本

  • April 27, 2016

我們有一個執行內部使用的應用程序的伺服器。該應用程序有一個實用程序,它每 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 {} \;

任何幫助將非常感激。

很簡單:

#!/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----

引用自:https://serverfault.com/questions/773380