Архив метки: linux

Падает memcached?

Обновляйте. Похоже, другого рецепта нет.

У меня были проблемы с 1.4.15 на CentOS 5, с которыми пытался разобраться — бессмысленно. В логи ничего не попадало ни при какой степени детализации, memcached держался несколько часов и вырубался.

Однако вот у 1.4.20 аптайм уже почти две недели.

Отмена перехода на зимнее время в Linux

Даже сегодня с утра BBC и Lenta.ru, в частности, утверждали, что можно поспать еще час. Пользуясь случаем, поздравляю с внеочередным праздником лени всех администраторов, принявших в нем участие.

Для поддерживаемых Linux-систем вышли обновленные пакеты tzdata. Если в вашем хозяйстве имеются старые неподдерживаемые системы, их можно обновить вручную. Читать далее 

Linux — Порядок запуска служб

Иногда может потребоваться изменить порядок запуска служб в Linux, если некоторые из них оказываются зависимыми от других. Например, в моем случае одна из машин на RHEL 5 была членом домена, и в то же время на ней нужно было использовать VNC-сервер. После выполнения команды chkconfig vncserver onдля его постановки в автозагрузку выяснилось, что по умолчанию VNC-сервер запускается до Samba; таким образом, он не видит пользователей и завершается с ошибкой. Если же запустить его позже вручную, все нормально.

Итак, нужно изменить порядок запуска этих сервисов.

Посмотрим сначала /etc/rc.d/. Здесь есть подкаталоги для разных уровней запуска. Для тех уровней, в которых запускается служба (посмотреть можно через chkconfig --list), в подкаталогах есть символическая ссылка на скрипт запуска/останова. Например, в  /etc/rc.d/rc5.d/в моем случае имеется файл @S91vncserver(то, что начинается с S, относится к запуску, а с K — к останову). Цифра как раз задает порядок запуска.

Идем туда, куда указывает символическая ссылка — в /etc/rc.d/init.d/, искомый файл — vncserver.

#!/bin/bash
#
# chkconfig: - 91 35
# description: Starts and stops vncserver. \
#              used to provide remote X administration services.
...

Нужно отредактировать этот файл. Я заменил 91 на 93 (92 оставим про запас), чтобы служба запускалась позже:

# chkconfig: - 93 35

Теперь такая команда:

chkconfig vncserver on

Посмотрим в подкаталогах, расположенных в /etc/rc.d/@S91vncserverпревратилось в @S93vncserver. Теперь служба запустится после Самбы, что и подтверждает перезагрузка.

Linux — Настройка VNC Server

Рассмотрим основные моменты на примере Red Hat Linux. Для доступа к машине по VNC следует отредактировать /etc/sysconfig/vncservers, добавив в него строку вида:

VNCSERVERS="1:root 2:user"

Можно также установить дополнительные опции (например, разрешение) строкой VNCSERVERARGS=...

Затем нужно залогиниться пользователем, который будет работать с VNC, и задать пароль командой vncpasswd.

Запуск VNC-сервера:

service vncserver start

Автоматический запуск при загрузке:

chkconfig vncserver on

Сессия по умолчанию будет выглядеть весьма аскетично (используется twm window manager). Чтобы сессия выглядела как обычный десктоп, следует отредактировать /home/user/.vnc/xstartup, раскомментировав две строчки сразу после «Uncomment the following two lines for normal desktop»:

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

После этого возможен доступ по VNC на порт 590x, где x — цифра, соответствующая пользователю из строки VNCSERVERS. Если включен межсетевой экран, нужно открыть нужный порт. Например, для iptables:

iptables -A INPUT -i eth0 -p tcp --dport 5900:5904 -j ACCEPT

Что касается клиентской части, можно воспользоваться бесплатным VNC Viewer Free Edition.

См. также: http://www.redhat.com/magazine/006apr05/features/vnc/.

Linux — Виртуальные интерфейсы (дополнительные IP-адреса)

Здесь рассматривается добавление вторичного IP-адреса на физический интерфейс, система в данном случае — Red Hat Linux. Пример добавления интерфейса eth1:0, ассоциированного с физическим интерфейсом eth1:

ifconfig eth1:0 192.168.5.55 netmask 255.255.255.0 up

Чтобы интерфейс присутствовал после перезапуска, в /etc/sysconfig/network-scripts нужно создать соответствующий файл, в данном случае ifcfg-eth1:0 (последующие интерфейсы можно нумеровать последовательно, ifcfg-eth1:1, ifcfg-eth1:2 и так далее). Примерное его содержимое:

# 3Com Corporation 3c595 100BaseTX [Vortex]
DEVICE=eth1:0
BOOTPROTO=none
NETMASK=255.255.255.248
IPADDR=192.168.5.55
GATEWAY=192.168.5.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes

Примечание: если нужно, чтобы при запуске интерфейс поднимался или, наоборот, не поднимался, следует воспользоваться параметром ONPARENT:

ONPARENT=yes|no

Он определяет, будет ли подниматься виртуальный интерфейс при поднятии родительского устройства (физического интерфейса).

GNOME Terminal: кодировка по умолчанию

В GNOME Terminal нет штатных средств, чтобы установить какую-либо кодировку по умолчанию. Можно только поменять текущую кодировку через меню (Терминал → Установить кодировку символов).

Заметим, что при запуске терминала устанавливается кодировка текущей локали. Таким образом, задачу можно решить, поменяв локаль перед запуском терминала.

Допустим, нас интересует кодировка CP866 (IBM866). Нужно, чтобы существовала соответствующая локаль. Система в данном случае — RHEL 5.5. Посмотрим, какие у нас есть локали:

locale -a

Если локали с кодировкой IBM866 нет, создадим ее.

localedef --no-archive -c -i ru_RU -f IBM866 ru_RU.IBM866

Теперь можно запускать терминал, примерно так:

export LANG=ru_RU.IBM866; gnome-terminal --disable-factory

Кстати, можно сразу задать скрипт, который следует выполнить при запуске:

export LANG=ru_RU.IBM866; gnome-terminal --disable-factory --execute /scripts/script.sh

Впрочем, вопросы автоматизации терминала — это уже тема следующей заметки. Здесь же отмечу еще, что на случай, если потребуется использовать особый шрифт или еще какие-нибудь настройки, отличающиеся от стандартных, в GNOME Terminal есть возможность создать несколько профилей (Правка → Профили) и выбирать из них нужный при запуске из скрипта, например:

export LANG=ru_RU.IBM866; gnome-terminal --disable-factory --window-with-profile=MyCustomProfile

VMware, Linux: уменьшение размера диска с логическими томами

Нет ничего более постоянного, чем временное. Когда я делал тестовую машинку, чтобы настроить на ней почтовый обменник, в дальнейших планах было установить чистую Linux (RHEL) на виртуалку и перенести на нее готовую конфигурацию. Однако после того, как мы с помощью VMware Converter успешно сконвертировали в виртуалку машину с сайтом (по сути, потом пришлось только восстановить загрузчик), мы решили продолжить эту практику и поступили так же с почтовым обменником.

Проблема была в том, что в свое время меня не волновало, какого размера будет дисковый раздел на тестовой машине, и он занимал предложенные по умолчанию 80 Гб. Разумеется, столько же получилось и на виртуальном диске. Перед запуском в промышленную эксплуатацию надо было его уменьшить.

Читать далее