Использование переменных, хранящихся на удаленном сервере

У меня, как мне кажется, сложная задача.

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

Итак, вот мой рабочий процесс, в моей голове.

Host1 загружается и просматривает содержимое host1.cfg, расположенного на сервере. host1.cfg выглядит следующим образом:

NAME=John
ADDRESS='10 The High Street'
AGE=25

Host1 работает:

echo server:$HOSTNAME.cfg:$NAME & $ADDRESS & $AGE

Или может иметь центральный файл HOST.CFG с:

[HOST1]
NAME=John
ADDRESS='10 The High Street'
AGE=25

[HOST2]
NAME=Mike
ADDRESS='30 The Avenue'
AGE=80

имеет смысл?

1
задан 9 December 2017 в 15:02

1 ответ

Я бы пошёл с файлом для каждого хоста, содержащим переменные, назовем его host1.cfg, скопирую его в начале скрипта и source:

rsync user@server:/path/to/host1.cfg .
source host1.cfg

Это перезапишет любой существующий host1.cfg на хосте, поэтому обновления файла сервера будут применены при следующем запуске. Имейте в виду , что source выполнит все команды host1.cfg без пощады. Убедитесь, что он не может быть изменен кем-либо, особенно , если вы запускаете скрипт на хосте от имени пользователя root. Для альтернативных и, возможно, более безопасных подходов (в зависимости от вашей настройки) см .: Как мне прочитать переменную из файла?

Мне нравится rsync, но вы также можете использовать scp, wget или curl для задания. Если вам не нужна локальная копия, вы можете использовать (благодаря glenn jackman ):

source <(ssh user@server "cat /path/to/host1.cfg")
1
ответ дан 9 December 2017 в 15:02
  • 1
    я вижу, хорошо хорошо там другой тип вещи, которая совпадает с aircrack-ng для новой версии (12.04)? – Chris 25 May 2012 в 13:42
  • 2
    я вижу, хорошо хорошо там другой тип вещи, которая совпадает с aircrack-ng для новой версии (12.04)? – Chris 25 May 2012 в 13:42
  • 3
    я вижу, хорошо хорошо там другой тип вещи, которая совпадает с aircrack-ng для новой версии (12.04)? – Chris 25 May 2012 в 13:42
  • 4
    я вижу, хорошо хорошо там другой тип вещи, которая совпадает с aircrack-ng для новой версии (12.04)? – Chris 25 May 2012 в 13:42
  • 5
    я вижу, хорошо хорошо там другой тип вещи, которая совпадает с aircrack-ng для новой версии (12.04)? – Chris 25 May 2012 в 13:42
  • 6
    я вижу, хорошо хорошо там другой тип вещи, которая совпадает с aircrack-ng для новой версии (12.04)? – Chris 25 May 2012 в 13:42

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

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