Запустить Bash Script в клиенте с локального сервера?

Я написал bash-скрипт для своего использования, и он работает. Я хочу, чтобы этот сценарий был размещен на каком-либо сервере в моей сети, и вызываю этот сценарий на ноутбуках / настольных компьютерах в моей сети для выполнения. В любом случае, я нашел способ для этого, как показано ниже.

Шаги:

  1. Установите веб-сервер Apache на локальный сервер.
  2. Поместите скрипт в веб-сервер.
  3. Сделать скрипт исполняемым chmod a+x.
  4. Откройте терминал на клиентском компьютере и установите пакет curl
  5. Теперь с самого клиентского терминала выполните команду как:

    sudo curl -kL http://serverip/script.sh | bash
    

Работает нормально, но единственная проблема в том, что в моем скрипте я использовал команды ввода пользователя, такие как «переменная чтения», которые не работают в этом сценарии. Так как это сделать, это моя проблема. Есть ли способ для меня?

1
задан 31 March 2014 в 13:03

3 ответа

Можно использовать:

bash -c "$(curl -kL http://serverip/script.sh)"

Это выполнит сценарий на локальной машине. См. также man bash для понимания, почему я использовал -c опция. Также двойные кавычки очень важны в этом случае.

кроме того, поскольку @terdon сказал в , его комментарий , sudo curl бессмыслен. Если, Если для сценария нужно локальный sudo полномочия, необходимо использовать sudo перед bash команда.

0
ответ дан 31 March 2014 в 13:03

Я думаю , что Вы хотите,

wget http://server.com/scriptname.sh && bash scriptname.sh

, Который просто загрузит сценарий локально и выполнит его.

0
ответ дан 31 March 2014 в 13:03

Как предложено в комментарии Radu, почему не использование ssh для запуска сценария с локального сервера?

Первая установка openssh-server в Вашей клиентской системе:

sudo apt-get install openssh-server

Тогда от Вашего локального сервера:

ssh -t client_login@client_ip '/path_to_your_script/script.sh'

-t опция в ssh -t сила команды pseudo-tty выделение.

0
ответ дан 31 March 2014 в 13:03

Другие вопросы по тегам:

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