Debian 9 прописать статический IP

Дата: 12.06.2018Метки:

Недавно меня спросили про то, как прописать статический ip-адрес в Debian 9. По сути ничего не изменилось, кроме того, что после установки Debian 9 с DHCP файл interfaces отсутствует.

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

nano /etc/network/interfaces

Добавляем в содержимое файла:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eno1
iface eno1 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      gateway 192.168.1.1

Если необходимо прописать дополнительный адрес, добавляем в конец файла следующие строки:

auto eno1:0
iface eno1:0 inet static
      address 192.168.2.2
      netmask 255.255.255.255

Применяем сетевые настройки:

service networking restart

Прогресс выполнения команды dd

Дата: 09.06.2018Метки: ,

Запустил бэкап диска с передачей данных на другой сервер:

dd if=/dev/sda | gzip -3 - | ssh root@1.1.1.1 dd of=/storage/image.gz

Главная проблема данного метода состоит в том, что отсутствует информация о прогрессе выполнения команды dd. Посмотреть на каком этапе находится процесс создания бэкапа можно следующим образом.

Открываем еще одну консоль и в ней выполняем команду:

pkill -USR1 dd

Возвращаемся в консоль, где запущен команда dd и видим примерно следующий результат:

46581824+0 records in
46581823+0 records out
23849893376 bytes (24 GB) copied, 650.728 s, 36.7 MB/s
52076416+0 records in
52076415+0 records out
26663124480 bytes (27 GB) copied, 736.246 s, 36.2 MB/s
232366273+0 records in
232366272+0 records out
118971531264 bytes (119 GB) copied, 1193.34 s, 99.7 MB/s
234441648+0 records in
234441648+0 records out
120034123776 bytes (120 GB) copied, 1198.1 s, 100 MB/s

Что бы каждый раз не вбивать команду в консоли, можно сделать так:

watch -n 10 pkill -USR1 dd

Обновить лицензию ISPmanager 5

Закончился срок действия лицензии ISPmanager 5, но после продления лицензия не обновлялась через web-интерфейс панели.

Для принудительного обновления лицензии в ISPmanager 5 через консоль:

rm /usr/local/mgr5/etc/ispmgr.lic
/usr/local/mgr5/sbin/licctl fetch ispmgr

Монтируем WebDav в Ubuntu

Понадобилось монтировать скриптом WebDav для синхронизации двух хранилищ. Связи с чем не буду рассматривать варианты автоматического монтирования и авторизации.
Устанавливаем клиент WebDav:

apt-get install davfs2

Далее создаем каталог и запускаем команду для монтирования WebDav:

mkdir /dav
mount -t davfs -o noexec https://nextcloud.example.com/remote.php/webdav/ /dav/

Реальный ip при двойном проксировании Nginx

Дата: 30.04.2018Метки:

Недавние блокировки от РКН заставили извратится. Там где раньше работало проксирование Nginx, мне пришлось дополнительно настроить дополнительное двойное проксирование. При это важно было передавать правильный ip адрес посетителя.

Конфигурация первого Nginx в цепочке:

location / {
     proxy_pass http://IP:80; #IP-адрес:порт где стоит второй nginx
     proxy_set_header Host $http_host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header realip $remote_addr;
}

Конфигурация второго Nginx в цепочке:

location / {
     proxy_pass http://127.0.0.1:81; #IP-адрес:порт с apache
     proxy_set_header Host $http_host;
     proxy_set_header X-Real-IP $http_realip;
     proxy_set_header X-Forwarded-For $http_realip;
     proxy_set_header realip '';
}

Linux disk write timeout

Дата: 30.04.2018Метки:

При интенсивных операциях записи в Debian 9 поймал disk write timeout. К сожалению, точное содержание ошибки не записал, но в общем суть понятна. Система выдавала таймаут при записи на диск. Сначала пытался увеличить следующее значение:

echo 180 > /sys/block/sda/device/timeout

Но конкретно данная манипуляция не дала никакого результата. В итоге удалось решить проблему указав значения параметров кэширования в Linux dirty_background_ratio и dirty_ratio:

echo 5 > /proc/sys/vm/dirty_background_ratio
echo 10 > /proc/sys/vm/dirty_ratio

dirty_background_ratio — основной инструмент настройки, обычно уменьшают этот параметр. Если ваша цель снизить количество данных, хранимое в кэше, так что данные будут писаться на диск постепенно, а не все сразу, то уменьшение этого параметра наиболее эффективный путь. Более приемлемо значение по умолчанию для систем имеющих много оперативной памяти и медленные диски.

dirty_ratio — второй по значимости параметр для настройки. При значительном снижении этого параметра приложения, которые должны писать на диск, будут блокироваться все вместе.

Удалить диск из Software RAID в Linux

Дата: 27.02.2018Метки: ,

Краткая заметка на тему как удалить один диск из программного RAID в Linux. Есть сервер, на котором используется RAID1 из 3 дисков. Что бы удалить один из дисков для начала необходимо удалить его из массива, для этого предварительно помечаем его как сбойный:

mdadm /dev/md1 --fail /dev/sdc1
mdadm /dev/md1 --remove /dev/sdc1

Удаляем метаданные:

wipefs -a /dev/sdc1

Уменьшаем количество дисков в массиве до 2:

mdadm --grow /dev/md1 --raid-devices=2

Далее распоряжаемся диском по своему усмотрению, форматируем или создаем новые разделы.

Правила iptables для FTP ProFTPD

Дата: 07.11.2017Метки:

После того как закрыл все порты в iptables мне понадобилось разрешить подключение к серверу по протоколу ftp. Первым делом открыл порт 21, но этого оказалось недостаточно. Клиент подключался к серверу, но не мог получить содержимое каталога сервера.

Для правильной работы ProFTPD необходимо применить указанные ниже правила:

iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

rc.local в Debian 9

Дата: 06.11.2017Метки:

Установил у себя новую Debian 9 и вот по старинке решил добавить в rc.local пару команд в автозагрузку. Оказалось, что после установки Debian 9 по умолчанию нет файла rc.local. При желании мы можем вернуть автозапуск команд из rc.local, для этого необходимо настроить работу сервиса в systemd.

Что бы включить rc.local в Debian 9 необходимо выполнить следующие команды:

vi /etc/rc.local

Добавляем в содержимое файла:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
 
exit 0

Даем право на запуск:

chmod +x /etc/rc.local

Создаем сервис:

vi /etc/systemd/system/rc-local.service

Добавляем в файл:

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local
 
[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99
 
[Install]
 WantedBy=multi-user.target

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

systemctl enable rc-local
systemctl start rc-local

Перемонтировать раздел в Linux

Дата: 06.11.2017Метки:

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

Чтобы применить необходимы настройки необходимо использовать следующую команду:

mount -o remount,.. /dev/mapper/storage-vm /vm

В моем случае /dev/mapper/storage-vm LVM раздел, а /vm каталог монтирования. После remount, вместо трех точек указываем необходимые параметры монтирования, которые мы указали ранее в fstab.