Rsync
Rsync 僅包含名稱中具有特定字元串的文件
我想用來
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 個文件