Русский в консоли Ubuntu Server
В Ubuntu в очередной раз поломали отображение национальных шрифтов в консоли (именно в консоли, а не в эмуляторе терминала). Я, помнится, около 2008 года уже помог починить, но «технологии шагнули далеко вперед» 🙂
Что случилось и как починить — читайте в статье: http://help.ubuntu.ru/wiki/russian_font_in_console.
Приводить полностью не буду, если кратко, то надо добавить FRAMEBUFFER=Y в /etc/initramfs-tools/initramfs.conf и после перенастройки консоль будет оставаться правильно настроенной при перезагрузке.
Это реклама Русскоязычной пользовательской документации Ubuntu, в составлении которой можно и нужно поучаствовать, если вы владеете информацией и хотите поделиться с людьми.
Репликация MySQL на одном сервере
Привет, администраторы!
Попалась любопытная задача, сделать репликацию одной базы в другую на том же самом сервере. Решение нашлось. Забавное. Привожу дополнено и по-русски:
Дано:
MySQL сервер (у меня он на Ubuntu, но тут, пожалуй не важно) — одна штука, база данных base1.
Надо:
Сделать репликацию базы на том же самом сервере, не запуская дополнительных процессов, в базу base2.
Решение:
Копируем base1 в base2, каким угодно способом, это ваше начальное состояние, после этого base1 не должна меняться.
Настраиваем [mysqld] секцию в /etc/mysql/my.cnf, добавив:
... server-id=1 report-host=master-is-slave-host log-bin=myserver-binlog relay-log=myserver-relaylog replicate-same-server-id=1 binlog-do-db=base1 replicate-rewrite-db=base1->base2 replicate-do-db=base2 ...
После этого следует перезапустить сервер и можно увидеть, что binlog начал писаться:
# service mysql restart ... # ls /var/lib/mysql/myserver* myserver-binlog.000001
Выдыхаем, запускаем работу вашего приложения с base1, теперь можно.
Осталось запустить репликацию, выполняем админом в базе:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'localhost' IDENTIFIED BY 'CoolPassW0rd'; FLUSH PRIVILEGES; CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='repl', MASTER_PASSWORD='CoolPassW0rd', MASTER_LOG_FILE='myserver-binlog.000001'; START SLAVE;
И для контроля, что всё ок, посмотрите, что выдают:
SHOW MASTER STATUS; SHOW SLAVE STATUS;
Типа всё. Согласен получить комментарии по теме!
Админская сага
Пальчики летали.
От админского захода
Пассворд подбирали.
Да админ малой не промах:
Что пароль — аршин по сорок.
А в портах-то красота,
Не торчат абы куда!
И в системе чёткий план
Всем сервайсам по правам.
На просторах Эки Кеев
Пальчики устали.
Шифт с пробелом поломали,
Доступ не достали…
Исправить «too many open files» в nginx
У вас настолько выросла посещаемость сайта, что nginx отписывает ошибки «too many open files» с ужасающей скоростью?
Причина в лимитах. По умолчанию на процесс выдается возможность открыть 1024 файла (по крайней мере в Debian и Ubuntu). Как узнать действующие лимиты? Просто. Выполняем от суперпользователя:
for pid in `pidof nginx`; do echo "$(< /proc/$pid/cmdline)"; egrep 'files|Limit' /proc/$pid/limits; echo "Currently open files: $(ls -1 /proc/$pid/fd | wc -l)"; echo; done
Получаем отчётик:
nginx: worker process Limit Soft Limit Hard Limit Units Max open files 1024 1048576 files Currently open files: 945 nginx: master process /usr/sbin/nginx Limit Soft Limit Hard Limit Units Max open files 1024 1048576 files Currently open files: 24
Ситуация ясна, процесс nginx на грани фола: ещё чуть-чуть и злополучная ошибка «разорвёт» все логи…
Решение проблемы пришлось искать недолго. Во многих блогах и обсуждениях в форумах и списках рассылки предлагается способ с применением утилиты ulimit
и редактированием /etc/sysctl.conf
и /etc/security/limits.conf
.
Пробуем. Не работает. Ищем тщательнее…
Правильный ответ для запускаемого от суперпользователя головного процесса nginx таков: надо отредактировать nginx.conf
, добавив в начало директиву (число выбирайте по вкусу):
worker_rlimit_nofile 16384;
После этого пошлите «master process»-у сигнал HUP (пере-конфигурация) и, вуаля:
nginx: worker process Limit Soft Limit Hard Limit Units Max open files 16384 16384 files Currently open files: 1058 nginx: master process /usr/sbin/nginx Limit Soft Limit Hard Limit Units Max open files 1024 1048576 files Currently open files: 24
Ну, а теперь поздравляю, высокая посещаемость при пустых логах ошибок — что может быть более приятно админу?