Для переноса почты из одного ящика в другой будем использовать утилиту imapsync. Утилита есть в репозитории RepoForge (бывший rpmforge).
Утилиту не обязательно ставить на тот же сервер, где работает почта — программа обращается к почтовым ящикам удалённо, как почтовый клиент.
Весь перенос сводится к одной команде:
imapsync --host1 domain1.tld --user1 info@domain1.tld --password1 123123123 --host2 domain2.tld --user2 info@domain2.tld --password2 456456456 --noauthmd5
Записи помеченные ‘CentOS’
Перенос содержимого почтового ящика
MySQL не может сделать open_files_limit более 1024
CentOS 7, MariaDB 10. Было необходимо увеличить open_files_limit до 15000.
В /etc/my.cnf :
open_files_limit = 15000
но после перезагрузки сервиса значение осталось на уровне 1024. В логах обнаружилась запись:
[Warning] Could not increase number of max_open_files to more than 1024
Решение:
Необходимо увеличить директиву LimitNOFILE демона systemd для сервиса mariadb.service. Для этого достаточно прописать в файле /usr/lib/systemd/system/mariadb.service внутри секции [service] строку:
LimitNOFILE=15000
Но, так делать не рекомендуется, поскольку изменения могут быть затёрты при обновлении пакетов. Как этого избежать, описано в этом же файле. Поэтому мы так и поступим. Создаём директорию /etc/systemd/system/mariadb.service.d , а внутри неё файл limits.conf , в который впишем 2 строки:
[Service]
LimitNOFILE=15000
перезагружаем сервисы:
systemctl daemon-reload
systemctl restart mariadb.service
проверяем:
mysql -e 'show variables like "open_files%"'
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| open_files_limit | 15000 |
+------------------+--------+
Сброс IPMI с помощью ipmitool
Завис веб-интерфейс IPMI на одном из серверов Supermicro.
К счастью, сохранился доступ к операционной системе, установленной на сервере (CentOS 6).
Проблему решаем с помощью ipmitool.
Установим:
yum install OpenIPMI OpenIPMI-libs ipmitool
Запускаем сброс IMPI:
ipmitool mc reset cold
Если получаем ошибку вида
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file
то включаем модули ядра:
modprobe ipmi_devintf modprobe ipmi_si
Если после сброса IMPI обнаруживаем неубиваемый процесс kipmi0, жрущий 100% ядра, ограничиваем его прожорливость:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
Иногда ipmitool, запущенный с той же машины, где работает IPMI, не может отработать и зависает. В таком случае поможет ipmitool, установленный на другом сервере. Обращаемся с другого сервера по сети командой:
ipmitool -I lan -H xxx.xxx.xxx.xxx -U ADMIN -P PASSWORD -v mc reset cold
Добавление раздела внутри виртуальной машины
После расширения диска в виртуальной машине KVM необходимо создать новый раздел.
Например, у нас был диск размером 43 ГБ, добавили 10:
# fdisk -l Disk /dev/vda: 53.7 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0004fd07 Device Boot Start End Blocks Id System /dev/vda1 * 1 5091 40892224 83 Linux /dev/vda2 5091 5222 1048576 82 Linux swap / Solaris
Создадим раздел на неиспользуемом пространстве.
# fdisk /dev/vda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (5222-6527, default 5222): Using default value 5222 Last cylinder, +cylinders or +size{K,M,G} (5222-6527, default 6527): Using default value 6527 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
Здесь мы вошли в утилиту fdisk, ввели команду n (создать раздел), затем ввели p (primary-раздел), затем номер раздела 3. Завершили работу записью изменений, нажав w.
Перезагружаемся, чтобы перечитать таблицу разделов.
Теперь у нас есть новый раздел vda3.
Создадим файловую систему
mkfs.ext4 /dev/vda3 -j
Монтируем
mount /dev/vda3 /mnt
Правим файл /etc/fstab
/dev/vda3 /mnt ext4 defaults 1 1
Замена MySQL и установка MariaDB в CentOS 6
MariaDB — это СУБД, бинарно совместимая с MySQL, имеющая ряд улучшений и оптимизаций в коде, которые влияют на производительность баз данных в целом.
Рассмотрим замену MySQL на MariaDB в ОС CentOS 6.
Итак, после того, как сделан полный бэкап всех баз данных, удаляем MySQL и сопутствующие пакеты.
Самое время для дисклеймера: все описанные действия вы будете делать на свой страх и риск, и я не несу ответственности за порчу или утерю данных, связанную с данной статьёй.
# yum remove mysql*
Перед установкой MariaDB нам понадобится пакет совместимости из репозитория Remi.
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Устанавливаем:
# yum --enablerepo=remi-test --disablerepo=remi install compat-mysql55
Если этого не сделать, то вы скорее всего получите ошибку при запуске php-fpm. В таком случае вам следует удалить все пакеты mysql:
# yum remove mysql-server mysql-libs mysql-devel mysql*
и установить пакет совместимости из репозитория remi.
Для установки MariaDB создадим файл /etc/yum.repos.d/MariaDB.repo со следующим содержимым:
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Замените centos6-amd64 на centos6-x86 в случае, если вы используете 32-разрядную версию ОС.
Наконец, устанавливаем клиент и сервер СУБД:
# yum install MariaDB-server MariaDB-client
Стартуем сервис:
# service mysql start
Добавляем его в автозагрузку:
# chkconfig mysql on
Так же как и после установки MySQL, делаем первоначальную установку root-пароля, удаление тестовой базы, анонимных пользователей, и удалённого доступа root:
# mysql_secure_installation
Все базы данных и пользователи, которые были в MySQL, должны сохраниться.
Перезагружаем сервис:
# service mysql restart
и убеждаемся, что всё в порядке, зайдя в консоль:
# mysql -uroot -p
после ввода пароля root видим следующее:
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 131 Server version: 5.5.30-MariaDB-log MariaDB Server Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Вот и всё: ваш сервер теперь работает на MariaDB.
Установка устаревшего ядра CentOS
В официальных зеркалах CentOS расположены пакеты только для последних версий, устаревшие удаляются.
Однако, их можно найти здесь.
Чтобы установить старое ядро, например 2.6.32-220 от версии CentOS 6.2, выполняем команду:
rpm -ivh --oldpackage http://vault.centos.org/6.2/os/x86_64/Packages/kernel-2.6.32-220.el6.x86_64.rpm
Удалить ещё проще:
rpm -e kernel-2.6.32-220.el6.x86_64
Установка графической оболочки Gnome в CentOS 6
Понадобилось вдруг установить графический интерфейс пользователя на Minimal Install CentOS 6. Выяснилось, что способ установки отличается от предыдущих версий CentOS, и старые способы больше не работают (по крайней мере, не заводятся с пол-оборота).
Поэтому, для установки графического интерфейса Gnome в CentOS 6 можно использовать следующую команду:
yum groupinstall x11 basic-desktop desktop-platform fonts
или её «длинный» эквивалент, подсказку к которому можно подсмотреть командой yum grouplist
(в зависимости от установленного языка команды в кавычках будут различаться):
yum groupinstall "X Window System" "Desktop" "Desktop Platform" "Fonts"