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

Для тех, у кого есть проблема при удалении zsh. Попробуйте выполнить следующие шаги.

Войдите в систему с правами root в режиме восстановления. Вы можете посмотреть, как это сделать при этом ответе. https://askubuntu.com/a/92558/104228 После входа в систему с правами администратора. Откройте /etc/passwd. Найдите свою запись пользователя и измените ее с /usr/bin/zsh на /bin/sh. Сохраните файл и перезагрузите его как обычный шаг. Вы должны войти в систему в обычном режиме. После перезагрузки вашего ubuntu. Вы обнаружите, что ваша оболочка выглядит так плохо. Запустите эту команду chsh -s /bin/bash. Введите свой пароль и введите его. Теперь вы будете хорошо выглядеть. Введите sudo apt-get purge --auto-remove zsh, чтобы очистить другие пакеты зависимостей zsh.

Надеюсь, этот шаг поможет другому, у кого такая же проблема, как и я.

PS. Мой английский не является основным языком. Надеюсь, вы меня поймете.

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

2 ответа

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

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

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

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

source <(ssh user@server "cat /path/to/host1.cfg")
2
ответ дан 18 July 2018 в 01:32

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

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

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

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

source <(ssh user@server "cat /path/to/host1.cfg")
2
ответ дан 24 July 2018 в 17:24
  • 1
    Или, если вам не нужна локальная копия файла: source <(ssh user@host1 "cat host1.cfg") – glenn jackman 9 December 2017 в 18:11

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

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