Дополнительные настройки. hooks. Хуки

Версия 1 Шевнин Игнат
на авг 27, 2014 17:30.

по сравнению с
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (19)

просмотр истории страницы
При запуске и остановке служб на сервере вызывается скрипт /app/xge/cfg/hooks с параметрами, сообщающими о том, какая служба была запущена или остановлена. Первый параметр - служба, второй 'start' или 'stop' ({color:#ff0000}кроме службы firewall.sh{color}), третий параметр - код возврата от службы.
{note}Собственные правила *iptables* можно писать только с помощью *hooks* файла. При использовании иных стандартных средств CentOS, они могут быть затёрты после перезагрузки или обновления.{note}

При помощи файла /app/xge/cfg/hooks можно делать нестандартные настройки сервера.
При запуске и остановке служб на сервере вызывается скрипт */app/xge/cfg/hooks* с параметрами, сообщающими о том, какая служба была запущена или остановлена. Первый параметр - служба, второй 'start' или 'stop', третий параметр - код возврата от службы.

h2. В этом разделе приводятся примеры таких скриптов.
При помощи файла */app/xge/cfg/hooks* можно делать нестандартные настройки сервера. В статье описано как корректно отредактировать файл.

Изменения вносятся в середину скрипта, первую и последнюю строки оставьте неизменными. В общем виде скрипт должен выглядеть следующим образом:

Отредактировать файл можно следуя инструкциям из этой статьи.
{code}
#!/bin/bash

Изменения вносятся в середину скрипта, первую и последнюю строки оставьте неизменными. В общем виде скрипт должен выглядеть так.
if [ "$1" = 'Имя_службы' -a "$2" = 'Параметр' ]; then

#Ваши изменения здесь

fi

exit 0
{code}

Список служб можно получить зайдя в контейнер XGE и получив листинг директории */etc/init.d*:
{code}chroot /app/xge/
ls -1 /etc/init.d/*{code}
Файлы */etc/init.d/functions* и */etc/init.d/functions_carbon* являются вспомогательными для работы остальных служб.

h2. Примеры

h3. Проброс порта telnet
{code}
#!/bin/bash

if [ "$1" = "/etc/init.d/firewall" -a "$2" = start ]; then

if [ "$1" = 'Имя_службы' ]; then
:
#Ваши изменения здесь
iptables -t nat -I xge_pre -d 192.168.245.1 -p tcp --dport 23 -j DNAT --to-destination 192.168.1.3:23

fi
exit 0
{code}

h3. Распределение прерываний сетевых карт лесенкой (если количество ядер равно числу очередей)
{code}
#!/bin/bash

if [ "$1" = "/etc/init.d/firewall" ]; then
rss-ladder eth0
rss-ladder eth1
fi


exit 0
{code}

h3. Увеличение хеша для кеша маршрутов
{code}
if [ "$1" = "/etc/init.d/firewall" -a "$2" = start ]; then

echo 8 >/proc/sys/net/ipv4/route/gc_elasticity

fi

exit 0
{code}

h2. Автоматизированное использование