[英]Loop through directories and rsync contents
我希望僅將特定的文件和目錄從cpanel備份rsync同步到遠程服務器。
基本結構是:
/backup/cpbackup/daily/USERNAME
從我要備份的USERNAME目錄中
../USERNAME/mysql/USERNAME.sql
還有一個文件夾(包含文件和子文件夾)
../USERNAME/homedir/siteassets
所以我最終在遠程服務器上使用:
/USERNAME/mysql/USERNAME.sql
/USERNAME/homedir/siteassets
我可以使用通配符
rsync /backup/cpbackup/daily/*/mysql/*.sql user@remote.ip.address:servername/
但這不會遠程給我USERNAME文件夾,這意味着所有文件最終都會合並。 我認為這可以通過使用bash或類似的東西遍歷文件夾來實現,但這並不是我的強項
我自己回答:
#!/bin/bash
src="/backup/cpbackup/daily"
for dir in `ls "$src/"`
do
if [ -d "$src/$dir" ]; then
# look for mysql directory
mypath="$src/$dir/mysql"
if [ -d $mypath ]; then
mysqlfile=$mypath/$dir".sql"
rsync -vau --progress --stats --rsh=ssh $mysqlfile user@remote.ip.address.net:servername/$dir
fi
# look for images directory
impath="$src/$dir/homedir/siteassets"
if [ -d $impath ]; then
rsync -vau --progress --stats --rsh=ssh $impath user@remote.ip.address.net:servername/$dir
fi
fi
done
rsync具有'--include-from'和'--exclude-from'參數。 這使您可以在單獨的文件中定義白名單和黑名單。 也許這可以使解決方案更簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.