Вышел Rust 1.91.0!
В обновлении участвовали 235 разработчиков, а ключевые улучшения направлены на производительность, удобство и расширение поддержки платформ.
Главное в релизе:
⏺ Windows на ARM (aarch64-pc-windows-msvc) получила статус Tier-1 — теперь есть официальные бинарники и полный саппорт.
⏺ Новые lint-проверки: защита от висячих указателей и преобразования чисел в указатели через transmute.
⏺ В Cargo стабилизирована опция build.build-dir — можно указать каталог для временных артефактов сборки.
⏺ Поддержка inline-ассемблера для LoongArch32 и обновление компилятора до LLVM 21.
⏺ Добавлены десятки стабильных API — от PathBuf::add_extension до Ipv6Addr::from_segments.
30 октября 2025 года состоялся релиз новой версии языка Rust — одной из самых стабильных и безопасных экосистем в мире.
В обновлении участвовали 235 разработчиков, а ключевые улучшения направлены на производительность, удобство и расширение поддержки платформ.
Главное в релизе:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Без seq_file разработчикам приходилось вручную управлять буферами, обрезками строк и позиционированием, что повышало риск ошибок.
seq_file решает эти проблемы, обеспечивая:
• последовательную генерацию данных в чанках,
• автоматическую поддержку seek/read,
• потокобезопасный доступ к данным ядра,
• экономию памяти за счёт ленивой генерации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
Как безопасно удалить старые логи и кэши, не трогая нужное
Со временем на сервере накапливаются гигабайты старых логов и временных файлов.
Рука не поднимается чистить /var/log — страшно что-то удалить лишнее.
Но всё можно сделать аккуратно, одной командой find с правильными фильтрами.
Удалим файлы старше 30 дней
-mtime +30 — старше 30 дней
-type f — только файлы
-delete — удалить (осторожно, без подтверждения)
Добавим исключения:
Так мы не тронем systemd-журналы и конфиги лог-демонов.
Чистим кэш без вреда
Можно ограничить размер:
и удалить вручную то, что реально разрослось (например, apt или pip кэши).
Тест перед удалением:
Покажет, что будет удалено. Меняем -delete на -print, если нужно просто посмотреть.
Автоматизация:
Добавляем в cron:
и строку:
Каждое воскресенье в 3:00 — чистка логов.
Со временем на сервере накапливаются гигабайты старых логов и временных файлов.
Рука не поднимается чистить /var/log — страшно что-то удалить лишнее.
Но всё можно сделать аккуратно, одной командой find с правильными фильтрами.
Удалим файлы старше 30 дней
sudo find /var/log -type f -mtime +30 -delete
-mtime +30 — старше 30 дней
-type f — только файлы
-delete — удалить (осторожно, без подтверждения)
Добавим исключения:
sudo find /var/log -type f -mtime +30 \
! -name "*.conf" \
! -path "/var/log/journal/*" \
-delete
Так мы не тронем systemd-журналы и конфиги лог-демонов.
Чистим кэш без вреда
sudo find /var/cache -type f -mtime +15 -delete
Можно ограничить размер:
sudo du -sh /var/cache/*
и удалить вручную то, что реально разрослось (например, apt или pip кэши).
Тест перед удалением:
sudo find /var/log -type f -mtime +30 -print
Покажет, что будет удалено. Меняем -delete на -print, если нужно просто посмотреть.
Автоматизация:
Добавляем в cron:
sudo crontab -e
и строку:
0 3 * * 0 find /var/log -type f -mtime +30 -delete
Каждое воскресенье в 3:00 — чистка логов.
❤10🔥8👍4
Что произойдет, если удалить запись /etc/fstab для корневого раздела и перезагрузить систему?
Anonymous Quiz
2%
Система загрузится нормально
26%
Kernel автоматически пересоздаст fstab
67%
Система не сможет смонтировать корневой раздел и не загрузится
5%
Будет использован swap вместо корня
❤4😁3
Отслеживаем, кто открывает соединения на сервере
На продакшн-сервере важно знать, какие процессы слушают порты и кто к ним подключается.
Даже если firewall настроен, иногда нужно понять активность внутри системы.
Посмотреть текущие соединения и процессы
• -t — TCP
• -u — UDP
• -l — слушающие порты
• -p — показать процесс
• -n — без резолва имен
Пример вывода:
Альтернативы
• Показывает все открытые сетевые сокеты с процессами.
• Старый, но привычный вариант для мониторинга.
Автоматическая запись в лог для аудита
• Каждую минуту логируются текущие соединения.
• Можно добавить logger для syslog:
На продакшн-сервере важно знать, какие процессы слушают порты и кто к ним подключается.
Даже если firewall настроен, иногда нужно понять активность внутри системы.
Посмотреть текущие соединения и процессы
ss -tulpn
• -t — TCP
• -u — UDP
• -l — слушающие порты
• -p — показать процесс
• -n — без резолва имен
Пример вывода:
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))Альтернативы
lsof -i -P -n
• Показывает все открытые сетевые сокеты с процессами.
netstat -tulnp
• Старый, но привычный вариант для мониторинга.
Автоматическая запись в лог для аудита
watch -n 60 'ss -tupn >> /var/log/active_connections.log'
• Каждую минуту логируются текущие соединения.
• Можно добавить logger для syslog:
ss -tupn | logger -t net-audit
👍12❤8
Как защитить важные файлы от случайного удаления
На сервере есть критичные файлы: конфиги, скрипты, сертификаты.
Случайное удаление или модификация могут сломать сервис.
Linux даёт несколько инструментов для защиты: chattr, ACL и правильный sudoers.
Файлы “только для чтения” с chattr
• +i — ставит immutable, файл нельзя удалить, переименовать или изменить, даже root.
• Чтобы снять защиту:
Разграничение прав через ACL
⏺ Пользователь deploy получает только чтение.
⏺ Список прав:
Правильная настройка sudoers
⏺ Не даём всем полный ALL доступ.
⏺ Пример: разрешить перезагрузку nginx без права удалять файлы:
На сервере есть критичные файлы: конфиги, скрипты, сертификаты.
Случайное удаление или модификация могут сломать сервис.
Linux даёт несколько инструментов для защиты: chattr, ACL и правильный sudoers.
Файлы “только для чтения” с chattr
sudo chattr +i /etc/nginx/nginx.conf
• +i — ставит immutable, файл нельзя удалить, переименовать или изменить, даже root.
• Чтобы снять защиту:
sudo chattr -i /etc/nginx/nginx.conf
Разграничение прав через ACL
sudo setfacl -m u:deploy:r /etc/nginx/nginx.conf
getfacl /etc/nginx/nginx.conf
Правильная настройка sudoers
deploy ALL=(root) NOPASSWD: /bin/systemctl restart nginx
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤7
Microsoft готовит Windows 11 26H1 - апдейт без новых фишек ❌
Microsoft подтвердила скорый выход версии 26H1 - первой весенней сборки новой Windows.
26H1 не добавит пользовательских функций - только платформенные изменения под новое железо, предположительно Snapdragon X2 для ПК Copilot+ следующего поколения.
⏺ Основные обновления по-прежнему будут выходить в рамках 25H2, которая уже развёртывается массово и продлевает поддержку Windows 11 до 2028 года.
Microsoft подтвердила скорый выход версии 26H1 - первой весенней сборки новой Windows.
Она уже доступна инсайдерам, начиная со сборки 28000.
26H1 не добавит пользовательских функций - только платформенные изменения под новое железо, предположительно Snapdragon X2 для ПК Copilot+ следующего поколения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2❤1👎1
Изолируем сетевые интерфейсы для тестов
Надо попробовать что-то с сетью, но боишься сломать основную? Linux умеет создавать отдельные сетевые пространства через ip netns.
Внутри них можно поднимать интерфейсы, запускать сервисы и даже NAT - всё, что угодно, не трогая основной сервер.
Делаем быстро
Назначаем адреса и поднимаем интерфейсы
И вот сейчас внутри testns можно запускать свои тесты, пинговать veth0 и проверять всё, что угодно, не трогая остальную сеть.
Проверим:
Надо попробовать что-то с сетью, но боишься сломать основную? Linux умеет создавать отдельные сетевые пространства через ip netns.
Внутри них можно поднимать интерфейсы, запускать сервисы и даже NAT - всё, что угодно, не трогая основной сервер.
Делаем быстро
# Создаём namespace
sudo ip netns add testns
# Делаем пару виртуальных интерфейсов
sudo ip link add veth0 type veth peer name veth1
# Перемещаем один интерфейс внутрь namespace
sudo ip link set veth1 netns testns
Назначаем адреса и поднимаем интерфейсы
# На основной сети
sudo ip addr add 192.168.100.1/24 dev veth0
sudo ip link set veth0 up
# В namespace
sudo ip netns exec testns ip addr add 192.168.100.2/24 dev veth1
sudo ip netns exec testns ip link set veth1 up
sudo ip netns exec testns ip link set lo up
И вот сейчас внутри testns можно запускать свои тесты, пинговать veth0 и проверять всё, что угодно, не трогая остальную сеть.
Проверим:
sudo ip netns exec testns ping 192.168.100.1
❤9👍7
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.• Каждый кэширующий объект (например, inode cache, dentry cache, buffer head) имеет свой shrinker, который знает, какие элементы можно безопасно удалить.
• Процесс может быть запущен как фоновым демоном kswapd, так и напрямую при page reclaim.
• Shrinker сообщает ядру, сколько объектов он может освободить, и постепенно очищает кэш, не разрушая актив
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4
Как проверять DNS и маршруты на продакшн-сервере
Когда что-то “не пингуется”, виноват не всегда фаервол.
Иногда DNS не резолвит, а иногда маршрут просто уходит не туда.
Проверять это на проде нужно аккуратно — без лишних правок и даунтайма.
Проверка DNS
Быстрее всего — dig.
Он показывает, какой сервер отвечает и какой IP вернулся.
Если у сервера systemd, можно проверить текущую конфигурацию DNS так:
или точечно:
Это покажет, какой DNS-сервер реально используется и как долго кэшируются записи.
Логирование результатов
Иногда удобно писать результаты проверок в лог, особенно при отладке периодических проблем с сетью:
Когда что-то “не пингуется”, виноват не всегда фаервол.
Иногда DNS не резолвит, а иногда маршрут просто уходит не туда.
Проверять это на проде нужно аккуратно — без лишних правок и даунтайма.
Проверка DNS
Быстрее всего — dig.
Он показывает, какой сервер отвечает и какой IP вернулся.
dig example.com
dig @8.8.8.8 example.com +short
Если у сервера systemd, можно проверить текущую конфигурацию DNS так:
resolvectl status
или точечно:
resolvectl query example.com
Это покажет, какой DNS-сервер реально используется и как долго кэшируются записи.
Логирование результатов
Иногда удобно писать результаты проверок в лог, особенно при отладке периодических проблем с сетью:
{
date
dig +short example.com
ip route get 8.8.8.8
} >> /var/log/netcheck.log 2>&1👍10❤3
Что произойдёт, если в Linux PID 1 (init/systemd) аварийно завершится?
Anonymous Quiz
21%
Процесс автоматически перезапустится
21%
Ядро создаст новый init
54%
Система упадёт с kernel panic
5%
Сервисы продолжат работать
❤2
Как отследить утечки памяти у демонов?
Иногда сервисы начинают «распухать» по памяти, особенно те, что работают месяцами без рестартов.
В Linux это можно заметить и даже ограничить — без внешних мониторингов.
🔍 Проверяем использование памяти
Посмотреть, кто сколько ест:
или подробнее по процессу:
Если сервис запущен через systemd — можно сразу смотреть в разрезе cgroup:
или точечно:
⚙️ Автоматическое ограничение памяти
В unit-файле можно задать предел, после которого systemd перезапустит сервис:
После изменения — не забыть:
Иногда сервисы начинают «распухать» по памяти, особенно те, что работают месяцами без рестартов.
В Linux это можно заметить и даже ограничить — без внешних мониторингов.
Посмотреть, кто сколько ест:
smem -p | sort -k 4 -h
или подробнее по процессу:
pmap -x <PID>
Если сервис запущен через systemd — можно сразу смотреть в разрезе cgroup:
systemd-cgtop
или точечно:
systemctl status myservice
В unit-файле можно задать предел, после которого systemd перезапустит сервис:
[Service]
MemoryMax=500M
Restart=on-failure
После изменения — не забыть:
sudo systemctl daemon-reload
sudo systemctl restart myservice
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5❤1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.PSI не измеряет загрузку напрямую — он измеряет «stall time» — сколько процессов одновременно не могли продолжить работу из-за нехватки ресурса. Это дает более реалистичную картину деградации системы.
Проверка PSI осуществляется через:
cat /proc/pressure/cpu
cat /proc/pressure/memory
cat /proc/pressure/io
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4
Как сделать аварийный SSH-вход при падении сети
Бывает, обновил firewall или NetworkManager — и основной SSH отвалился.
Чтобы не остаться без доступа, можно поднять резервный sshd — на другом порту и интерфейсе.
⚙️ Создаём копию конфигурации
В файле sshd_config_alt укажи, например:
(адрес — интерфейс, который не трогают твои основные правила).
🚀 Запускаем второй sshd вручную
или через systemd:
(в некоторых дистрибутивах можно создать отдельный unit-файл).
🧭 Проверяем доступ
С другой машины:
Если всё работает — можно спать спокойнее: при сбое сети или блокировке основного порта резервный SSH всё ещё жив.
Бывает, обновил firewall или NetworkManager — и основной SSH отвалился.
Чтобы не остаться без доступа, можно поднять резервный sshd — на другом порту и интерфейсе.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_alt
В файле sshd_config_alt укажи, например:
Port 2222
ListenAddress 192.168.100.10
PidFile /run/sshd-alt.pid
(адрес — интерфейс, который не трогают твои основные правила).
sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_alt
или через systemd:
sudo systemctl start sshd@alt.service
(в некоторых дистрибутивах можно создать отдельный unit-файл).
С другой машины:
ssh -p 2222 user@192.168.100.10
Если всё работает — можно спать спокойнее: при сбое сети или блокировке основного порта резервный SSH всё ещё жив.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4👎1🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣20😁10❤3
Почему может зависнуть SSH-сессия, если в .bashrc есть команда stty?
Anonymous Quiz
9%
Неправильные права доступа
62%
Терминал не инициализирован при non-interactive входе
14%
Конфликт портов
15%
Ошибка PAM-модуля
❤6👍3
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.exec() — это семейство функций (execl, execp, execve и др.), которое заменяет текущий процесс на новый, загружая в его адресное пространство другую программу. После вызова exec() оригинальный код процесса больше не выполняется — он полностью замещается. Это удобно, если вы после fork() хотите в дочернем процессе запустить другую программу (что и делает большинство шеллов при запуске команд).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥1
Как замерить время DNS, TCP и TLS при подключении?
Порой сайт вроде открывается, но медленно, и непонятно, где затык: DNS, сеть или сервер.
curl умеет показать время на каждом этапе.
🤚 Что показывает:
⏺ DNS — сколько ушло на резолв домена
⏺ TCP — время установки соединения
⏺ TLS — рукопожатие HTTPS
⏺ StartTransfer — когда сервер начал отдавать ответ
⏺ Total — общее время запроса
Если DNS кеш мешает, можно сбросить его:
или указать IP напрямую:
Порой сайт вроде открывается, но медленно, и непонятно, где затык: DNS, сеть или сервер.
curl умеет показать время на каждом этапе.
curl -o /dev/null -s -w \
"DNS: %{time_namelookup}s\nTCP: %{time_connect}s\nTLS: %{time_appconnect}s\nStartTransfer: %{time_starttransfer}s\nTotal: %{time_total}s\n" \
https://example.com
Если DNS кеш мешает, можно сбросить его:
systemd-resolve --flush-caches
или указать IP напрямую:
curl --resolve example.com:443:1.2.3.4 https://example.com
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥8👍7
Microsoft заблокировала KMS38 в Windows 11
В последних обновлениях Windows 11 (Patch Tuesday, ноябрь 2025) удалили функционал, позволяющий продлевать активацию ОС до 2038 года через KMS38 и скрипты MAS.
Разработчики MASSGRAVE советуют использовать другие способы активации, например HWID или TSforge.
⏺ Интересно, что Microsoft официально почти не против подобных обходов: ключи для KMS и проекты GitHub остаются доступными, пока они не мешают обновлениям и телеметрии.
В последних обновлениях Windows 11 (Patch Tuesday, ноябрь 2025) удалили функционал, позволяющий продлевать активацию ОС до 2038 года через KMS38 и скрипты MAS.
Метод работал через обход GatherOSstate, теперь он полностью отключён.
Разработчики MASSGRAVE советуют использовать другие способы активации, например HWID или TSforge.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥5