скрипт оболочки rsync с вводом

скрипт оболочки rsync с вводом

Мне бы хотелось иметь скрипт оболочки 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 передаются ему в качестве исходных каталогов/файлов и отправляются на сервер.

Связанный контент