Rsync

Rsync 僅包含名稱中具有特定字元串的文件

  • June 30, 2021

我想用來rsync從我的網路伺服器備份數據庫。

我在網路伺服器上創建了一個 cronjob,它創建了一個mysqldump數據庫,並在每晚開始時用目前日期命名它。超過 30 天的文件將被刪除。

現在我只想通過 cronjob 將目前日期的數據庫文件備份到我的 NAS。

我怎樣才能只包含那個文件?反之亦然,我如何排除除該文件之外的所有內容?

我的程式碼rsync如下:

rsync -avz -h -c --include="*$(date +%Y-%m-%d)*" -e "ssh -p $PORT" $USER@$SERVER:$SQL_SOURCE $SQL_TARGET --delete

今天在網路伺服器上的文件名將是2021-06-30_databasename.sql

但所有其他文件也會2021-06-29_databasename.sql同步。

而不是同步路徑(然後定義文件名包含/排除模式)只需將 rsync 指向您要複製的單個文件名……

filename=$(date +%Y-%m-%d_databasename.sql)
rsync host:/path/to/file/$filename  /dest/

請注意,這不會對舊文件進行任何清理,/dest/一年後那裡將有 366 個文件

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