Назад | Перейти на главную страницу

сценарий оболочки rsync с вводом

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