Я хотел бы иметь сценарий оболочки rsync, в котором пользователь будет вводить папку или файл для синхронизации с другим сервером.
т.е. - ./deploy /html/
или ./deploy /html/kuky.txt
сценарий будет ждать ввода, а затем выполнит сценарий rsync, пожалуйста, помогите.
Ну вот:
echo "Enter file or folder path"
read target
if [ ! -e "$target" ]
then
echo $target does not exist
else
echo Transferring $target
rsync -avzr $target user@example.com:/home/user/target_directory
fi
поместите это в файл с именем sender.sh. Затем вызовите bash sender.sh из командной строки.
Предлагаю вам поискать параметры команды rsync. Они могут сильно изменить поведение.
Для ответа Can требуется, чтобы пользователь запустил сценарий, а затем вручную ввел путь, следующее позволит вам использовать синтаксис, указанный в OP:
#!/bin/bash
echo -n "Transferring ${*} to server... "
rsync -az ${*} <user>@<server>:/path/to/target/ 1> /dev/null
echo "Done!"
Этот скрипт займет все Аргументы CLI передаются ему как исходные каталоги / файлы и отправляются на сервер.