Admin Guides | Сисадмин
11.4K subscribers
1.22K photos
19 videos
34 files
555 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Secure Copy больших файлов: rsync vs scp

При работе с десятками гигабайт через SSH обычный scp начинает тормозить.

Почему?

Потому что он копирует файл целиком, без возможности возобновления, и каждый раз создаёт новое TCP-соединение.

Rsync через SSH решает это:
Передача только изменений (--partial и --inplace)
Можно включить сжатие (-z)
Поддерживает батчевую передачу и возобновление

Примеры:

Копирование одного большого файла с rsync:

rsync -avz --progress /local/largefile user@remote:/backup/


Если соединение обрывается, можно повторно выполнить команду — rsync продолжит с места прерывания.

Копирование каталога с контрольным мультиплексированием SSH:

Host remote
HostName 203.0.113.10
User admin
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h:%p
ControlPersist 10m


А затем:

rsync -avz /local/dir remote:/backup/dir


Все повторные подключения будут идти через уже открытое TCP-соединение, экономя время.

scp с мультиплексом и сжатием:

scp -o ControlMaster=auto -o ControlPath=~/.ssh/cm-%r@%h:%p -C /local/largefile remote:/backup/


Но для больших директорий rsync остаётся более гибким и надёжным, особенно если нужно резервное копирование или синхронизация.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍83
🥴20👍14😐72😁1
Sysctl для серверов с большим числом подключений

Когда сервер обслуживает сотни тысяч TCP-сессий, стандартные настройки ядра Linux могут стать узким местом.

TIME_WAIT, переполнение очередей сокетов и медленный отклик — типичные признаки. Тут на помощь приходят параметры sysctl.

Основные настройки

net.ipv4.ip_local_port_range — диапазон локальных портов для исходящих соединений. Увеличение диапазона помогает избежать исчерпания портов при массовых подключениях.
net.ipv4.tcp_tw_reuse — разрешает повторное использование сокетов в состоянии TIME_WAIT для новых исходящих соединений.
net.ipv4.tcp_tw_recycle — ускоряет очистку TIME_WAIT (не рекомендуется для NAT).
net.core.netdev_max_backlog — размер очереди пакетов в драйвере сети. Увеличение помогает при пиках входящего трафика.

Измеряем эффект

До изменений:

ss -s | grep TIME-WAIT
cat /proc/sys/net/core/netdev_max_backlog


Применяем sysctl:

sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
sudo sysctl -w net.core.netdev_max_backlog=5000


После изменений: повторяем измерения TPS (запросов в секунду) и TIME_WAIT.

Вывод: больше соединений проходит без ошибок, очередь пакетов меньше переполняется, нагрузка на сервер равномернее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Bcachefs теперь «внешне поддерживаемая»

28 августа 2025 года Линус Торвальдс перевёл файловую систему Bcachefs в режим Externally maintained. 


Это значит, что ядро больше не принимает её изменения, а дальнейшая разработка ведётся вне основной кодовой базы.

Причина — конфликты с автором проекта Кентом Оверстритом: он присылает крупные изменения в неподходящее время, нарушая процесс ядра.

Торвальдс считает, что поздние релизы должны лишь исправлять ошибки, а Оверстрит настаивает на срочном исправлении багов для сохранности данных. Bcachefs остаётся экспериментальной ФС.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🤔1
Logrotate для нестандартных приложений

Стандартные сервисы вроде Nginx или syslog ротируются автоматически, а вот для нестандартных daemon или собственных приложений нужно использовать postrotate, sharedscripts и правильно обрабатывать сигнал HUP.

postrotate — команды после ротации (например, сигнал процессу перечитать лог).
sharedscripts — если несколько файлов ротируются, скрипт выполняется один раз.
HUP — заставляет daemon перечитать файл без перезапуска.

Пример для PostgreSQL:

/var/log/postgresql/*.log {
daily
rotate 7
compress
delaycompress
notifempty
missingok
sharedscripts
postrotate
systemctl reload postgresql > /dev/null 2>/dev/null || true
endscript
}


Здесь логи сжимаются и хранятся неделю, пустые файлы не ротируются, а PostgreSQL после ротации продолжает писать в новый файл.

Пример для Nginx:

/var/log/nginx/*.log {
daily
rotate 14
missingok
notifempty
sharedscripts
postrotate
[ -f /run/nginx.pid ] && kill -HUP `cat /run/nginx.pid`
endscript
}


Можно добавить уведомление админа через mail или Slack.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83