OpenVZ: как настроить bridge с контейнером

Установка ПО на физическом сервере:

yum install bridge-utils

Создаем vmbr0 интерфейс:

brctl addbr vmbr0

Удаляем IP адрес с физического интерфейса eth1:

ifconfig eth1 0

Добавляем eth1 к мосту:

brctl addif vmbr0 eth1

Конфигурируем IP адрес на интерфейсе vmbr0:

ifconfig vmbr0 192.168.1.1

OpenSwan IPSec VPN Linux Cisco с контейнера OpenVZ

Данную статью пишу больше для себя, чтобы не забыть, ибо времени затрачено довольно много на решение этого вопроса. Для начала хочу отметить, что IPSec VPN не будет работать из контейнера OpenVZ, но будет работать с физического сервера, чего вполне достаточно, чтобы сеть за VPN была видна из Вашего контейнера OpenVZ.
Начнем с установки пакета OpenSwan, я рекомендую ставить отсюда: https://download.openswan.org/openswan/binaries/rhel/6/

rpm -Uhv https://download.openswan.org/openswan/binaries/rhel/6/openswan-2.6.38dr2-9.el6.x86_64.rpm

Желательно сразу иметь представление о схеме сети, понимать что именно Вам нужно. В текущем случае, мы объединяем в IPSec VPN внешний IP OpenVZ контейнера и подсеть за маршрутизатором Cisco.

Linux: защита скриптов от двойного запуска

У всех в повседневной работе присутствуют скрипты, которые выполняются довольно долго и запускаются по крону. Всегда есть риск, что запущенный по крону скрипт будет работать так долго, что придет время запуска его по крону и тогда скрипт запускается вновь, что создает серьезную нагрузку на сервер и вызывает различные проблемы.
На примере скрипта синхронизации контента я покажу как релизовать защиту от двойного запуска программ в linux системах.

Так выглядит сам скрипт:

#!/bin/sh

dt=`date +%c`

  echo $dt
  echo "Sync /srv/photo/ with web02"
  /usr/bin/rsync --numeric-ids -av --delete /srv/photo/ root@web02:/srv/photo/

Так выгляди защита от двойного запуска (добавляем в начало скрипта):

PATH="/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin"                                                                                             

if pidof -x $(basename $0) > /dev/null; then
   for p in $(pidof -x $(basename $0)); do
   if [ $p -ne $$ ]; then
   echo "Script $0 is already running: exiting"
    exit
   fi
   done
fi

service X does not support chkconfig

Чтобы исправить данную ошибку, нужно сделать следующее (имя скрипта myscript):

cp /etc/init.d/myscript /tmp/
chmod +x /etc/init.d/myscript

Добавьте следующие записи в заголовок скрипта /etc/init.d/myscript:

#!/bin/sh
#
# chkconfig: 2345 95 20
# description: Some description
# What your script does (not sure if this is necessary though)
# processname: myscript

Включаем скрипт myscript в автозагрузку:

chkconfig myscript on

Профит!

What Is Kjournald and Why It’s Using 100% of I/O?

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

Очень часто проблема кроется в 100% утилизации дисковой подсистемы, тут либо мы упираемся в лимит производительности (см. IOPS), либо какой-то процесс стал активно использовать систему ввода/вывода. приступим к поиску проблемы.

Установим необходимое ПО:

yum install iotop sysstat -y

Поиск файлов измененных за последнее время

Если нам нужно найти все файлы в каталоге ‘/var’, созданные или изменённые в течении 1 дня:

find /var -type f -mtime -1

Найти файлы в каталоге ‘/var’, время последнего обращения к которым более 10 дней:

find /var -type f -atime +10

Найти файлы и директории с именем file_name. Поиск начать с корня (/)

find / -name file_name

Adaptec аппаратный RAID-контроллер

Один из самых распространенных и надежных аппаратных RAID-контроллеров Adaptec. В данной статье я опишу утилиту arcconf которая служит для управления контроллером из командной строки.
ASM (Adaptec Storage Manager) — графическая утилита.

Установка:

yum install -y compat-libstdc++-33
wget http://download.adaptec.com/raid/storage_manager/asm_linux_x64_v7_00_18781.tgz

Распаковываем, берем arconf и копируем ее в /usr/bin
Разрешаем запуск: chmod +x /usr/bin/arcconf

Включение смарт:

smartctl --smart=on --offlineauto=on --saveauto=on /dev/sg1

Состояние RAID можно получить следующей командой:

arcconf getconfig 1 ld

Полезные команды PostgreSQL

В наше время все чаще встречаются БД PostgreSQL, поэтому возможно кому-то будет полезно знать самые часто используемые команды для работы с этой БД.

Сделать дамп БД postgresql:

pg_dump -U postgres -c -O database > database.sql

Залить дамп БД postgresql (обязательно заливать БД под тем пользователем, под которым она доступна, иначе поломаются права):

psql -U dbusername database < database.sql

Просмотреть список всех БД в postgresql:

postgres=# \l

Nginx: просмотр директорий сайта

Иногда необходимо разрешить просмотр каталогов вашего сайта, в nginx для этого существует директива autoindex, по-умолчанию, она установлена в off, поэтому нам потребуется ее включить:

location / {
   root /www/mysite/htdocs;
   autoindex on;
}

Для веб сервера apache запрещает просмотр содержимого каталогов директива (вы можете ее добавить в файл .htaccess, либо в настройки виртуального хоста):

Options -Indexes

Установка приоритетов для процессов в linux: nice

Команду nice можно также использовать для запуска процесса с другим приоритетом. Опция -n (или –adjustment) с положительным значением повышает приоритет, а эта же опция с отрицательным значением – понижает его. Помните, что процесс с наименьшим приоритетом имеет максимальное значение параметра niceness, поэтому увеличение этого значения означает, что процесс становится более дружелюбным по отношению к другим процессам. Заметьте, что, как правило, понижать значение приоритетов процессов может только суперпользователь (root). Другими словами, обычные пользователи могут делать процессы лишь более дружелюбными.

nice -n -5 top                     # Повысить приоритет процесса (/bin/nice)
nice -n 5 top                      # Понизить приоритет процесса (/bin/nice)
nice +5 top                        # Понизить приоритет процесса