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