Восстановление или сброс пароля пользователя root базы данных MySQL

Бывает, вы просто забыли/потеряли пароль для суперпользователя БД MySQL, но доступ суперпользователем на сервер у вас есть.

Тогда чтобы восстановить пароль делаем следующее.
1. Останавливаем демона mysqld:
/etc/init.d/mysqld stop
2. Запускаем mysql в безопасном режиме:

mysqld_safe –skip-grant-tables &

3. Заходим в мускуль под рутом в этом режиме без пароля:
mysql -u root -p
4. Меняем пароль пользователя root на новый:

mysql> use mysql;
mysql> update user set password=PASSWORD(“NEW-ROOT-PASSWORD”) where User=’root’;
mysql> flush privileges;
mysql> quit

5. Возвращаем всё на круги своя (т. е. перезапускаем мускуль в нормальном режиме) и тестируем:
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
mysql -u root -p
http://geckich.blogspot.com/

Просмотр подробной информации о сетевой карточке в Linux

Недавно нужно было узнать параметры карточки на удаленном сервере (под управлением Linux). А точнее, её модель. Команды

ethtool -i eth0
miitool -vv eth0

показывают версию или драйвера или чипа. Но нашел способ узнать побольше о карточке, как оказалось достаточно очевидный:

lspci -vv | egrep -i –color ‘network|ethernet’

Здесь мы получим информацию наподобии такой:

07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

Цифры вначале – адрес устройства на шине PCI. Берем его и пихаем аргументом в команду:

lspci -vv -s 07:00.0

Вот теперь мы можем посмотреть максимум о карточке.

http://geckich.blogspot.com/

Ошибка в RHEL: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Ошибка в RHEL6 x64 вида:

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

возникает, когда вы хотите запустить 32-битное приложение на 64-битной системе без glibc версии х86.Вместе с системой ставится только 64-битная версия этой библиотеки. Решаем:

yum install glibc.i686

На некоторых системах:

yum install glibc.i386

http://geckich.blogspot.com/

Настройка abrt (automatic bug reporting tool) в RHEL6

abrtd – демон, который следит за крэшами программулин и в случае крэша делает core dump и сохраняет всякий другой полезный в отладке stuff. И – самое полезное – от может уведомлять нас сразу же о проблеме и даже аплоадить дебаг инфу на багзиллу или нужный ftp/scp сервер.

Постановка задачи – настроить в abrt отправку писем при обнаружении крэша кастомного софта на сервере.

Для начала установим необходимые пакеты.

yum install abrt-addon-ccpp abrt-addon-python abrt-cli abrt-plugin-logger abrt-plugin-mailx abrt-tui abrt

Если это для вас важно, то следует заметить, что установка abrt меняет kernel core_pattern:

cat /proc/sys/kernel/core_pattern

/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

Добавим в автозагрузку демона abrtd:

chkconfig abrtd on
chkconfig abrt-ccpp on
chkconfig abrt-oops on

Конфигурационные файлы abrt находятся в директориях:

  • /etc/libreport/ – хранит конфиги связанные с репортами
  • /etc/libreport/events.d/ – здесь лежат описания ивентов и реакции на них
  • /etc/libreport/events/ – описание т. н. репортеров
  • /etc/libreport/plugins/
  • /etc/abrt/ – конфиги самого демона abrtd
  • /etc/abrt/plugins/ – конфиги плугинов abrt.

Нас все конфиги не интересуют, потому перечислю, что нужно поменять:


/etc/abrt/abrt-action-save-package-data.conf – меняем значения:

OpenGPGCheck = no         # говорим обрабатывать краши и не подписанных файлов
ProcessUnpackaged = yes   # обрабатывать файлы, не принадлежащие пакетам rpm

/etc/libreport/events.d/abrt_event.conf здесь добавляем обработчики ивентов в конец файла:

EVENT=notify            reporter-mailx

EVENT=notify_dup        reporter-mailx

/etc/libreport/plugins/mailx.conf – здесь лежат настройки для отправки писем.
 Subject=”[ABRT] crash in Example server detected”
 EmailFrom=monitoring@example.com
 EmailTo=admin@example.com,progger@example.com

В принципе, для работы этого достаточно. Но можно настроить на ивенты и заливку крэш-данных на свой фтп-сервер и на багзиллу.

Посмотреть отчет о произошедших проблемах можно командой:

abrt-cli list -f

А сами проблемы лежат в подпапках /var/spool/abrt/ccpp-*
Кстати, проблемы от одних и тех же источников abrt считает дубликатами и удаляет.

http://geckich.blogspot.com/

Как подписаться на мультикаст, Linux

Если вам нужно слушать в сети мультикаст, то скорее всего, вам нужно на него подписаться – на то он и мульти, а не броад 🙂 Делается это командой:

ip maddr add 224.0.0.1 dev eth0

где 224.0.0.1 – адрес мультикастовой группы, а eth0 – интерфейс, на который этот мультикаст будем получать.
Отписаться от получения мультикаста так же просто:
ip maddr del 224.0.0.1 dev eth0

Посмотреть список подписок:

ip maddr show
Или в несколько другом виде:

netstat -g

http://geckich.blogspot.com/

Настройка Interface Teaming (bonding) и привязка к VLAN тегам в RHEL6 (Oracle Linux 6)

Для начала создадим конфигурационный файл для modprobe, в котором расскажем какой интерфейс будет обрабатываться модулем bonding:

 

nano /etc/modprobe.d/bond.conf

alias bond0 bonding
alias ipv6 “disable=1”

Заодно отключим IPv6 (если вы его не используете).

Далее переходим в директорию /etc/sysconfig/network-scripts/ где хранятся конфиги всех сетевых интерфейсов в формате ifcfg-<interface>

Создаем здесь конфиг для нашего нового bond интерфейса:

ifcfg-bond0

DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
#IPADDR=192.168.1.2
BONDING_OPTS=”mode=4 miimon=1000″
VLAN=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no

Здесь можете не указывать адрес, если хотите получать трафик только по VLAN тегам.
По опциям:

  • mode – определяет режим, который выбирается из соображений, чего вы хотите от бонда и вашей сетевой инфраструктуры. Описание режимов здесь.
  • miimon – нужен для failover’а – в мс как часто модуль mii будет мониторить карточки на их доступность. Если феиловер не нужен, то можно ставить побольше, если нужен, то 10, 20

Правим конфиги для физических адаптеров в бонде (например, eth0, eth1 etc.), добавляя к каждому параметры Master и Slave (<> – ваши данные)


ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
HWADDR=<>
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID=<>
IPV6INIT=no
USERCTL=no
MASTER=bond0
SLAVE=yes

Теперь для интерфейсов VLAN’ов (интерфейс в этом случае называется в формате bond0.тег):

ifcfg-bond0.300

DEVICE=bond0.300
BOOTPROTO=static
ONBOOT=yes
IPADDR=<>
NETMASK=255.255.255.0
GATEWAY=<>
VLAN=yes
TYPE=Ethernet
IPV6INIT=no

Рестартуем сеть и проверяем.

Для просмотра статуса бонда импользуем команду:

cat /proc/net/bonding/bond0

UPDATE:
 
Для нормальной работы бонда в RHEL7 нужно отключить Network Manager, для этого добавляем в конфиги интерфейсов:
 
NM_CONTROLLED=no

И отключаем службу:

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

Nagios, ошибка при долгой перезагрузке сервера: CHECK_NRPE: Socket timeout after 10 seconds

По умолчанию nrpe-плагин для системы мониторинга Nagios ждет 10 сек. ответа от клиента, а если время перезагрузки сервера, который мы мониторим, больше заданного значения, то письма с такими фейковыми проблемами могут напрягать…

Редактируем файл (путь при установки из исходников) /usr/local/nagios/etc/objects/commands.cfg и находим определение команды чека nrpe. Будет что-то на подобии:

define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

дописываем в команду параметр -t и значение ожидания в сек, например:
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 60
Всё, этого типа фейковых ошибок уже не будет (если сервер успеет перезагрузиться за заданное время).
http://geckich.blogspot.com/

Установка Oracle Linux 6.4 с помощью USB flash drive

Устанавливать операционную систему с помощью USB-drive имеет смысл, если нет физичнского привода CD/DVD в ПК или сервере.

Последовательность действий такова.

1. Качаем образ отсюда (нужно пройти бесплатную регистрацию/залогиниться – whOracle совсем просто так ничего не даёт 🙂 )

https://edelivery.oracle.com/EPD/Download/get_form?egroup_aru_number=15213241

Качаем образ (последний на момент написания этих строк): Oracle Linux Release 6 Update 4 for x86_64 (64 Bit). Остальные нам в общем-то и не нужны.

2. Устанавливаем на свою рабочую станцию под управлением линукс утилиту Unetbootin

aptitude install unetbootin

3. Затем вставляем флешку в порт, форматируем, если надо, в FAT или EXT4 (например, с помощью Disk Utility).

4.Запускаем Unetbootin, выбираем скачанный образ и флеш-диск, жмем Ок и ждем.


После этого заходим на флешку, удаляем папку с .rpm файлами – Packages. Копируем в корень флешки .iso который скачивали. Без него, будете во время установки получать ошибку: oracle linux missing  iso 9660 image .

Теперь загружаемся с флешки, выбираем в менюшке что-нибудь (default обычно работает хорошо) и на одном из начальных экранов указываем в качестве инсталляционного диска флешку – /dev/sda – или как она определилась системой. И обязательно (!) указываем в поле директории образа / – т. е. корень диска. Иначе “кина не будет”.

Дальнейшая инсталляция такая же как в случае с dvd, но только при разметке диска и установке загрузчика не трогайте флешку (/dev/sda обычно). Загрузчик необходимо ставить в MBR жесткого диска (по-умолчанию инсталлятор его поставит или на флешку или в 1й раздел диска – будьте бдительны!)

http://geckich.blogspot.com/

Настройка сетевого интерфейса в RHEL6 (RedHat, CentOS, Oracle Linux)

Решил вот сделать заметку о настройке сетевых интерфейсов RHEL (RedHat, CentOS, Oracle Linux, Fedora).

Вначале редактируем файлик настройки интерфейса, например eth1 (<> – означает специфические значения):

nano /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=”eth1″

TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.2
PREFIX=24
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System eth1″
UUID=<>
ONBOOT=yes
HWADDR=<>
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
VLAN=yes
MASTERr=bond0
SLAVE=yes
Строки говорят сами за себя. HWADDR и UUID проще не указывать, чтобы система сама их розчехлила, а если и указывать, то точно для вашего адаптера.

  • BOOTPROTO=none – при задании статического адреса. Для получения динамического адреса, здесь необходимо указать =dhcp
  • VLAN=yes – если мы настраиваем интерфейс для работы с тегами VLAN.
  • MASTERr=bond0 – если мы настраиваем интерфейс как часть бонда
  • SLAVE=yes – если мы настраиваем интерфейс как часть бонда
  • NETMASK=255.255.255.0 – указываем только ОДИН из параеметров – или NETMASK или PREFIX
Далее редактируем:

nano /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=host.example.com

GATEWAY=192.168.1.1
GATEWAYDEV=eth1
NOZEROCONF=yes

  • GATEWAY и GATEWAYDEV – определяют адрес и сетевой интерфейс шлюза по-умолчанию (можно не указывать, если не нужно). 
  • NOZEROCONF=yes – убрать zeroconf маршрут (169.254.0.0)

Теперь стоит подредактировать файлик серверов доменных имен:

nano /etc/resolv.conf

nameserver 192.168.1.1
nameserver 8.8.8.8
search example.com

search – указываются домены, которые будут автоматически добавляться к коротким именам. Например, в этом случае по host будет искатся host.example.com.

Про добавление статического маршрута (роута) написано здесь

http://geckich.blogspot.com/

Сеть 1Gb (1000BaseT) на контроллерах RTL8111/8168B встроенных в материнскую плату

Недавно столкнулся с тем, что драйвер для  интегрированного в материнскую плату сетевого адаптера RealTek RTL8111/8168B/8169, идущий вместе с ОС Debian / Oracle Linux 6 ни в какую не хочет работать в режиме 1Gb.
Проблема эта решается установкой свежей версии драйвера.
В Debian 7 я эту проблему решил установкой драйвера из исходников:

1.  Переходим на сайт разработчика Realtek и качаем нужную нам версию (LINUX driver for kernel 3.x and 2.6.x and 2.4.x) с миррора поближе к нам. Ссылки там сделаны в виде жабаскриптов, потому из консоли мне скачать не удалось, да и не беда это. Скачиваем, затем по scp или ещё как копируем на сервер файлик r8168-8.034.00.tar.bz.

2. Распаковываем и переходим в директорию:

tar -xjvf r8168-8.034.00.tar.bz
cd r8168-8.034.00

3. Устанавливаем необходимые пакеты, если их еще нет:

aptitude install build-essential linux-headers-$(uname -r)

4. Запускаем скрипт инсталлятора – он всё сделает сам и в конце перезагружаем машину.
./autorun.sh
shutdown -r now

После ребута, если ваше сетевое оборудование поддерживает стандарт 1000baseT, то драйвер поднимет линк на этой скорости автоматически. Если нет, то выполняем команды:

ethtool -s eth0 speed 1000 duplex full
mii-tool -vv eth0

Для RedHEL-ов в этом случае попроще – ставим необходимую rpm-ку и ребутимся:

rpm -Uhv ftp://ftp.pbone.net/mirror/elrepo.org/elrepo/el6/x86_64/RPMS/kmod-r8169-6.017.00-1.el6.elrepo.x86_64.rpm
shutdown -r now

http://geckich.blogspot.com/