Наследование сценария Bash? Вызов функции из другого скрипта?

Когда дело доходит до rsync, подумайте о client и server как о ролях, которые один и тот же двоичный файл rsync может выполнить. Когда он работает как демон, вы создаете файл rsyncd.conf и запускаете rsync с аргументом - daemon .

Один двоичный файл rsync может подключаться к другому (удаленному) двоичному файлу rsync либо напрямую - если rsync работает как демон, прослушивающий собственные соединения на удаленном хосте, либо через выполнение удаленной оболочки - где rsync использует ssh для подключения к удаленному host и выполнить двоичный файл rsync на этом хосте, при этом оба процесса rsync будут передавать данные друг другу.

Надеюсь, ответим на ваши вопросы:

  1. При передаче файлов между локальным и удаленным путем доступа через демон rsync, требуется ли удаленный хост для запуска rsync в качестве демона?

    • Да. Если вы собираетесь получить доступ к демону rsync, этот демон должен быть запущен.
  2. Должен ли удаленный хост запускать rsync при передаче файлов между локальным и удаленным путем доступа через удаленную оболочку ? Если да, то удаленный хост запускает rsync как сервер, но не как демон, или просто как локальный хост запускает rsync как клиент?

    • Да. Когда rsync должен быть доступен на обоих хостах, либо в $ PATH по умолчанию, либо с полным путем к двоичному файлу, указанному в параметрах команды.
  3. Нужно ли при передаче файлов на локальном хосте на локальном хосте запускать клиент rsync и сервер rsync?

    • Нет. Двоичный файл клиента rsync может одновременно выполнять обе роли, если оба пути SRC и DEST доступны локально.
  4. При перечислении исходных файлов вместо копирования, если источником является на удаленном хосте, должен ли удаленный хост запускать rsync в качестве сервера или демона?

    • Нет, запуск демона rsync не требуется, удаленный клиент может быть запущен, если вы используете rsync -e ssh для доступа к rsync (клиент) на удаленном хосте. (Rsync, порожденный удаленной оболочкой в ​​Q6.)
  5. Какие варианты использования делают «Обратите внимание, что rsync должен быть установлен как на исходном, так и на целевом компьютерах», применяется к {{ 1}} соответственно?

    • На обеих машинах должен быть установлен двоичный файл rsync . В случае, если SRC и DEST - это одна и та же машина, отдельный двоичный файл rsync по существу будет выполнять обе роли.
  6. В ОБЩЕЙ части «сервер может быть либо демоном, либо процессом, порожденным удаленной оболочкой».Означает ли удаленный хост, на котором запущен rsync в качестве сервера как "порожденный удаленной оболочкой процесс", что удаленный хост запускает rsync так же, как локальный хост запускает rsync?

    • Да . Фактически так. Единственное, что следует отметить, это то, что удаленно созданный сеанс rsync выполняет роль сервера.
1
07.09.2017, 00:00
1 ответ

Было бы достаточно создать файл сценария, содержащий такие функции вашего фреймворка, как этот:

/tmp/framework.sh

# Define a serie of functions of your framework...
function framework_function_1() {
    echo "function 1 executed"
}

function framework_function_2() {
    echo "function 2 executed"  
}

# And put here anything you want to be executed right away (like the trap)
echo "framework.sh was executed"

Затем включите его в остальные скрипты, как здесь:

/tmp/b.sh

# Include the framework:
.  /tmp/framework.sh

echo "Script b.sh was executed"
# Calling a framework's function
framework_function_2

При этом выполнение b.sh (и любого другого скрипта, включая framework.sh ), будет похоже на:

$ /tmp/b.sh 
framework.sh was executed
Script b.sh was executed
function 2 executed

Обратите внимание, что . /tmp/framework.shсовпадает с source /tmp/framework.sh.

4
27.01.2020, 23:24

Теги

Похожие вопросы