|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (31)
просмотр истории страницыПри запуске и остановке служб на сервере вызывается скрипт /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 |
|
if [ "$1" = 'Имя_службы' ]; then : |
#Ваши изменения здесь |
|
fi |
... |
{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" = 'Имя_службы' -a "$2" = 'Параметр' ]; then : #Ваши изменения здесь fi |
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. Свои правила в iptables. h3. Пример. Проброс порта telnet |
h3. Распределение прерываний сетевых карт лесенкой (если количество ядер равно числу очередей) |
{code} #!/bin/bash if [ "$1" = "/etc/init.d/firewall" ]; 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 |
rss-ladder eth0 rss-ladder eth1 |
fi |
{code} |
|
h3. Пример. Распределение прерываний сетевок лесенкой(если количество ядер равно числу очередей) {code} #!/bin/bash |
|
nic_irq_ladder() { local nic=${1}-TxRx- local cpucount=$(grep -c 'model name' /proc/cpuinfo) grep $nic /proc/interrupts | while read irq $(eval echo cpu{1..$cpucount}) t queue t; do irq=${irq//:} echo $irq $queue echo "# really" proc_entry=/proc/irq/$irq/smp_affinity_list cat $proc_entry echo "# eval" evaled="${queue##*TxRx-}" echo $evaled echo $evaled > $proc_entry done } if [ "$1" = "/etc/init.d/firewall" ]; then nic_irq_ladder eth0 nic_irq_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. Автоматизированное использование |
... |