rsync 沒有按預期工作

rsync 沒有按預期工作

我有一個腳本,可以下載並壓縮遠端伺服器的資料夾(例如:/home)。

我正在嘗試製作“恢復”腳本,但我有一個奇怪的行為。

恢復.sh:

($1是IP位址,$2是完整路徑)

if [ $# -lt 2 ]
then
    echo "Error"
    exit 1
else
    D=$(mktemp -d)
    echo "From $D/$2"
    echo "To user@$1:/$2"
    tar xfz /backup/$1.tar.gz -C $D
    rsync -ncavzPe ssh --partial --delete $D/$2 user@$1:/$2
    rm -r $D
    exit 0
fi

假設遠端伺服器是127.0.0.12,我想恢復/home。

$ssh 127.0.0.12
$password:
$ls /home/user
a b c x y z
$logout
$sh restore.sh 127.0.0.12 /home
From /tmp/tmp.R8iAewFEIR//home
To [email protected]://home
[email protected]'s password:
sending incremental file list
home/
home/user/
home/user/1
home/user/2
home/user/.cache/
home/user/.cache/motd.legal-displayed

sent 351 bytes  received 40 bytes  46.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
$

不是應該刪除a、b、c、x、y、z嗎?僅僅是因為空跑嗎?是否發送到另一個資料夾?我嘗試類似的事情破壞了伺服器昨天,我太害怕在沒有 -n 的情況下嘗試它。

答案1

if [ $# -lt 2 ]
then
    echo "Error"
    exit 1
else
    D=$(mktemp -d)
    echo "From $D/$2"
    echo "To user@$1:/$2"
    tar xfz /backup/$1.tar.gz -C $D
    rsync -cavzPe ssh --partial --delete $D/$2/* user@$1:/$2/
    rm -r $D
    exit 0
fi

我忘記輸入 rsync 來源中的資料夾。

相關內容