Авторская информация о системном администрировании.
Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed
Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Ресурс включён в перечень Роскомнадзора
Post #4593
12K
SE @srv_admin
Showing posts older than #4594 · Back to latest

# apt install iptables ipset rsyslog# iptables -L -v -n# telnet 85.143.173.182 23# ipset -L BANPORT# ab -c 50 -n 30000 "http://85.143.173.182/"ipset_portscan.log и ipset_ddos.log. При этом если ничего из описанного выше не делать, а просто ходить на веб сайт, доступ открыт, всё работает нормально.


int fsync(int fd) {
return 0;
}# apt install eatmydatadpkg, а не apt. Dpkg для надёжности выполняет все действия с подтверждением записи. Так что если запустить её через eatmydata, она отработает гораздо быстрее. # time apt upgrade -yFetched 249 MB in 30s (8,183 kB/s)real 1m 43.690s# time eatmydata apt upgrade -yFetched 249 MB in 33s (7,671 kB/s)real 1m 36.984s# dd if=/dev/zero of=/mnt/tempfile bs=1M count=512 oflag=dsync536870912 bytes (537 MB, 512 MiB) copied, 1.95211 s, 275 MB/s# eatmydata dd if=/dev/zero of=/mnt/tempfile bs=1M count=512 oflag=dsync536870912 bytes (537 MB, 512 MiB) copied, 0.343773 s, 1.6 GB/s/etc/environment:LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libeatmydata.so


apctest, выполнил тут же в консоли несколько действий:


# dnf install wget# wget https://repo.bitrix.info/dnf/bitrix-env-9.sh# chmod +x bitrix-env-9.sh# ./bitrix-env-9.sh/home/bitrix/www скрипт bitrixsetup.php для установки новой версии продукта, либо восстановить его из бэкапа. 



if. Хотелось сделать без него, но у меня не получилось. Долго мучал chatgpt. Он бодро предлагал неработающие решения, потом так же бодро сообщал, что действительно тут ошибка и так не работает. Надо делать вот так и тогда получится. В итоге простого красивого и удобного решения именно с файлом-флагом, без правки конфигурации и reload веб сервера сделать не получилось. Реализовал наиболее простой вариант с помощью пары if. /etc/angie/allowed_ips.conf следующего содержания:map $remote_addr $bypass_maintenance {
default 0;
187.192.238.175 1;
192.168.0.0/24 1;
} location = /maintenance.html {
try_files $uri =503;
}
location / {
set $in_maintenance 0;
if (-f $document_root/maintenance.flag) {
set $in_maintenance 1;
}
set $maintenance_check "${in_maintenance}_${bypass_maintenance}";
if ($maintenance_check = "1_0") {
return 302 /maintenance.html;
}
try_files $uri $uri/ /index.php?$args;
}maintenance.flag, то всем пользователям, кого нет в списке allowed_ips.conf будет отображаться содержимое файла maintenance.html, который надо добавить.location /maintenance.html location = /maintenance.html {
if (!-f $document_root/maintenance.flag) {
return 302 /;
}
try_files $uri =503;
}
# pvs> SET GLOBAL innodb_max_dirty_pages_pct = 0;> FLUSH TABLES WITH READ LOCK;> SHOW ENGINE INNODB STATUS\G;Modified db pages. Оно должно стать 0. После этого можно делать снэпшот:# lvcreate --size 5G --snapshot --name mysql_snapshot /dev/vgroup/root> SET GLOBAL innodb_max_dirty_pages_pct = 90;> UNLOCK TABLES;# mkdir /mnt/mysql_backup# mount /dev/vgroup/mysql_snapshot /mnt/mysql_backup# rsync -avz --delete /mnt/mysql_backup/var/lib/mysql/ user@10.20.1.5:/mnt/backup/mysql/# umount /mnt/mysql_backup# lvremove -f /dev/vgroup/mysql_snapshot/var/lib/mysql и восстановил из бэкапа. Потом запустил СУБД. Запустилось без проблем, никаких ошибок. Бэкап получается консистентный.FLUSH TABLES WITH READ LOCK живёт, пока открыто соединение. Надо в рамках него делать всё необходимое. Запустил lvcreate через SYSTEM.