Я хочу использовать rsync для резервного копирования некоторых файлов через ssh, которые мне удалось получить с помощью:

rsync --delete -avze ssh /home/malachi/www/site/ malachi@remote-host:~/backups/daily/sites/site/

Как мне создать каталог sites/site/ на удаленном хосте, если он еще не существует?

Было бы лучше поставить ниже перед запуском вышеупомянутой команды?

ssh -l malachi remote-host mkdir -p ~/backups/daily/sites/site/

Или есть лучшее решение?

2 ответа2

3

Если это только один уровень выше, rsync создаст каталог. Сработает ли ваша команда, если вы rsync удаляете папку site а не ее содержимое? То есть:

rsync --delete -avze ssh /home/malachi/www/site \ 
malachi@remote-host:~/backups/daily/sites

Таким образом, rsync должен создать папку sites на удаленном хосте, так как она находится на один уровень выше от папки site которую вы хотите скопировать. Обратите внимание, что для этого требуется ключ --recursive , который неявно указан с -a в вашей команде. Смотрите этот пост так для деталей.

Есть удивительно сложные способы сделать это, если вам нужно создать несколько уровней родительских каталогов.

1

Я закончил тем, что пошел с командой mkdir и создал скрипт для обработки процесса резервного копирования

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