У меня есть скрипт, который загружает и сжимает папку удаленного сервера (пример: /home).

Я пытаюсь сделать скрипт восстановления, но у меня странное поведение.

restore.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 user@127.0.0.12://home
user@127.0.0.12'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 ответ1

0
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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .