Linux
刪除舊文件並複制剩余文件的腳本
我們有一個執行內部使用的應用程序的伺服器。該應用程序有一個實用程序,它每 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 {} \;
任何幫助將非常感激。
很簡單:
#!/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----