簡體   English   中英

遍歷目錄和rsync內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM