Имя узла с точкой в приглашении в Debian
Содержание
Введение
Иногда в сети существуют серверы с одинаковыми именами узлов, но в разных доменах. Например, это могут быть серверы postgresql.lo.example.net
и postgresql.core.example.net
.
По умолчанию в приглашении командной строки отображается не полное имя узла, а лишь имя узла до первой точки. Для приведённого выше примера в командной строке по умолчаиню будет отображаться одинаковое имя узла - postgresql
. При администрировании таких серверов через консоль может возникнуть путаница.
Для исправления ситуации можно прописать в файл /etc/hostname
полное имя узла (или отличительную часть имени) и настроить приглашения так, чтобы в них отображалось полное содержимое этого файла. Для приведённого выше примера под отличительной частью имени имеются в виду имена postgresql.lo
и postgresql.core
.
/etc/hostname
Итак, первым делом прописываем в файл отличительную часть имени или полное имя:
postgresql.core
/etc/hosts
Далее нужно прописать в файл /etc/hosts
запись, соответствующую имени, указанному в /etc/hostname
:
192.168.192.168 postgresql.core.example.net postgresql.core
/etc/bash.bashrc
Это файл глобальных настроек интерпретатора командной строки bash
. В нём нужно заменить в настройках переменной PS1
последовательность \h
на последовательность \H
:
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\u@\H:\w\$ '
fi
/etc/skel/.bashrc
В этом файле находится пример файла настроек интерпретатора командной строки bash
. В нём нужно заменить в настройках переменной PS1
последовательность \h
на последовательность \H
:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\H\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\H:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\H: \w\a\]$PS1"
;;
*)
;;
esac
/home/*/.bashrc
В домашних каталогах пользователей есть файлы с настройками интерпретаторов командной строки bash
. При создании нового пользователя в его домашний каталог копируется файл /etc/skel/.bashrc
. В этот файл стоит внести те же правки, которые были внесены в файл /etc/skel/.bashrc
, а именно - стоит заменить последовательность h
на последовательность \H
во всех переменных PS1
.
Известные проблемы
Мне не известен способ поменять тему писем, рассылаемых планировщиком задач crontab
. По умолчанию в теме письма используется имя узла до первой точки, а сама тема имеет следующий вид:
Cron <root@postgresql> /usr/local/bin/dbbackup.sh
Для изменения темы письма можно прибегнуть к перенаправлению вывода скрипта на вход утилиты mail
, которая предоставляется, например, пакетом bsd-mailx
. Для этого нужно поменять задачу в планировщике cron
, например, следующим образом:
5 0 * * * /usr/local/bin/backup.sh | mail -s 'Cron <root@postgresql.core> /usr/local/bin/dbbackup.sh' root
Другой способ изменения темы письма описан в статье Смена темы письма в Postfix. Им можно воспользоваться лишь в том случае, если в качестве локального SMTP-ретранслятора используется Postfix. Настройка Postfix в качестве локального SMTP-ретранслятора описана в статье Postfix как локальный SMTP-ретранслятор.