Для rsync это имеет a --no-motd
можно использовать, чтобы подавить motd для сценария и только видеть вывод того, что передает rsync. Похоже, что это было добавлено в rsync 3.x, так как я не вижу той опции в 2.x.
Страница справочника перечисляет протест о не использовании его при попытке получить список модулей, Вы можете rsync:
- нет
Эта опция влияет на информацию, которая производится клиентом в начале передачи демона. Это подавляет текст message-of-the-day (MOTD), но он также влияет на список модулей, которые демон отправляет в ответ на "rsync хост::" запрос (из-за ограничения в rsync протоколе), поэтому опустите эту опцию, если Вы хотите запросить список модулей от демона.
Для scp, пробуя касание файла ~/.hushlogin
. Когда я scp файлы, я не вижу motd, хотя, но Ваш набор могло бы отличаться. Страница справочника для login
имеет больше информации:
Если файл .hushlogin существует, то "тихий" вход в систему выполняется (это отключает проверку почты и печать прошлого раза входа в систему и сообщение дня). Иначе, если/var/log/lastlog существует, прошлый раз входа в систему печатается (и текущий вход в систему зарегистрирован).
В то время как Вы не можете изменить имя хоста для единственного процесса (хорошо, это могло бы быть возможно с пространствами имен), можно измениться HOSTNAME
переменная среды.
Что касается передачи environmnet переменные от клиента к серверу, посмотрите AcceptEnv
и PermitUserEnvironment
optins для sshd
и SendEnv
для ssh
(см. страницы справочника sshd_config(5)
и ssh_config(5)
для деталей).
Имя хоста системы не что-то, что можно программно установить как просто регулярное использование, и при этом нет переменной среды, которая эффективно изменит это.
Можно видеть переменную такой как $HOSTNAME
но это часто только для пользы удобства и не изменяет Ваше системное имя хоста никаким значимым способом.
Я думаю на вашем месте, что я выбрал бы переменную среды своего собственного выбора и установил бы его во время входа в систему как часть среды пользователя, возможно, и затем использовал бы ту переменную в нисходящем направлении в рамках сценариев, вместо того, чтобы пытаться держать взаперти фактическое имя хоста системы.
Можно изменить имя системы в свободном типе пути путем выдачи команды:
$ sudo hostname <somename>
Однако этот подход может быть хитрым, учитывая, что имя хоста часто хранится во множестве местоположений, некоторые из которых только читаются однажды во время начальной загрузки и никогда снова.
Учитывая это я нашел бы это трудным путем для потери работоспособности, и это будет вызвано с большим взламыванием и разрезанием для переопределения имени хоста системы в простом способе.
Я оставлю Вас этим руководством, которое показывает некоторые вещи, которые, вероятно, собьют Вас с толку при попытке сделать это. Это названо: Как Изменить Имя хоста Системы Linux.
hostname
, можно добиться цели приемов ПУТИ и пользовательского hostname
в основанном на пользователе bin
каталог. Объединение, что с переменными среды на ключ, и он мог осуществить его.
– kurtm
17.10.2013, 07:52
SSH обычно настраивается для передачи некоторых переменных среды, которые считают безопасными и системно-независимыми, а именно, связанные с локалью переменные среды: LC_*
. Таким образом на многих установках, можно передать данные через среду путем установки переменной как LC_DESIRED_HOSTNAME
. Каким переменным среды сервер позволяет, Вы передать определяетесь AcceptEnv
начинание sshd_config
, и который переменные среды, которые клиент пытается передать, определяются SendEnv
начинание ~/.ssh/config
.
Можно установить имя хоста для всех процессов до следующей перезагрузки путем вызова hostname
команда с аргументом как корень.
На Linux, если Вы работаете unshare -u someprogram
, затем someprogram
и его подпроцессы будут работать в отдельном пространстве имен, которое имеет его собственное имя хоста. Имя хоста в пространстве имен начинается идентичный остальной части системы, но это может быть изменено независимо. Это должно быть сделано как корень, если Ваша версия ядра не 3.8 или выше.
unshare -u -- sh -c 'hostname "$LC_HOSTNAME"; service hadoop start'
LD_PRELOAD
но это становится более твердым.) – Gilles 'SO- stop being evil' 18.10.2013, 00:31