Интерактив #1: chmod — права доступа своими руками

Под постом — настоящий терминал. Не картинка, не gif: можно печатать команды и видеть результат сразу. Песочница — каталог ~/project: deploy.sh config.yml secrets/api.key logs/ Доступны ls -l [путь], chmod [-R] <режим> <путь> (восьмеричный или символьный — 750 и u+x,g-w,o= оба работают), stat <путь>, clear, help. Четыре задания по порядку — каждое выполненное подсвечивается зелёным: Сделай deploy.sh исполняемым для владельца, но не для остальных Запри secrets/api.key — права только у владельца Дай группе право на чтение config.yml, но не на запись Закрой саму папку secrets — посторонним вход воспрещён После четырёх — свободная игра, песочница остаётся открытой. ...

17 июня 2026 г. · llexa

Модули ядра: lsmod, modprobe, blacklist

Модули — расширения ядра, загружаемые без перезагрузки: lsmod # список загруженных модулей modinfo drm # параметры, зависимости, описание modprobe br_netfilter # загрузить модуль (+ зависимости) modprobe -r pcspkr # выгрузить rmmod pcspkr # выгрузить без учёта зависимостей Автозагрузка при старте системы: # /etc/modules-load.d/mymodules.conf br_netfilter nf_conntrack # передать параметры при загрузке: # /etc/modprobe.d/iwlwifi.conf options iwlwifi 11n_disable=1 Чёрный список (запрет загрузки): # /etc/modprobe.d/blacklist.conf blacklist pcspkr blacklist nouveau После изменения /etc/modprobe.d/ нужно update-initramfs -u, чтобы initrd подхватил правила. ...

17 июня 2026 г. · llexa

Современные ФС #1: btrfs — основы

btrfs — файловая система с CoW (Copy-on-Write), встроена в ядро с 2.6.29: mkfs.btrfs /dev/sdb # создать ФС mount /dev/sdb /mnt/data # смонтировать btrfs filesystem show /mnt/data # UUID, размер, устройства btrfs filesystem df /mnt/data # занятое/свободное по типу данных Прозрачное сжатие — включается при монтировании: # /etc/fstab UUID=... /mnt/data btrfs compress=zstd:3,noatime 0 0 # или на лету (только новые записи) mount -o remount,compress=zstd /mnt/data Уровни zstd от 1 (быстро) до 15 (максимум). :3 — хороший баланс скорость/степень. ...

17 июня 2026 г. · llexa

at и batch: отложенный запуск команд

at запускает команду один раз в нужное время: echo "/usr/bin/backup.sh > /tmp/bak.log 2>&1" | at now + 1 hour echo "reboot" | at 03:00 tomorrow echo "cleanup.sh" | at 14:30 Jun 20 atq # посмотреть очередь atrm 3 # удалить задание №3 batch — то же, но задача стартует только когда load average опускается ниже 0.8: echo "heavy-job.sh > /tmp/out.log 2>&1" | batch Вывод заданий идёт в почту локального пользователя — либо редиректь вывод прямо в команде. #linux #bash #sysadmin

16 июня 2026 г. · llexa

bash: массивы — индексированные и ассоциативные

Индексированный массив: arr=("alpha" "beta" "gamma") echo "${arr[0]}" # alpha echo "${arr[@]}" # все элементы echo "${#arr[@]}" # количество: 3 arr+=("delta") # добавить for item in "${arr[@]}"; do echo "$item"; done Ассоциативный массив (словарь): declare -A hosts hosts[web]="192.168.1.10" hosts[db]="192.168.1.20" echo "${hosts[web]}" for key in "${!hosts[@]}"; do echo "$key → ${hosts[$key]}" done "${arr[@]}" — всегда в кавычках, иначе пробелы в значениях сломают цикл. #bash #linux #sysadmin

16 июня 2026 г. · llexa

sysctl: параметры ядра без перезагрузки

sysctl управляет параметрами ядра через /proc/sys/ на лету: # посмотреть значение sysctl vm.swappiness # изменить — действует до перезагрузки sysctl -w vm.swappiness=10 sysctl -w net.ipv4.ip_forward=1 sysctl -w net.core.somaxconn=4096 # все параметры sysctl -a | grep swappiness Чтобы сохранить навсегда — добавить в /etc/sysctl.conf или файл в /etc/sysctl.d/: echo "vm.swappiness=10" >> /etc/sysctl.d/99-custom.conf sysctl -p /etc/sysctl.d/99-custom.conf Типичные настройки: net.ipv4.ip_forward=1 для роутинга, vm.swappiness=10 на серверах. #linux #sysadmin #network

16 июня 2026 г. · llexa

nftables: замена iptables

nftables — современная замена iptables: одна утилита nft вместо iptables/ip6tables/arptables, атомарная загрузка правил, читаемый синтаксис. # просмотр всех правил nft list ruleset # создать таблицу и базовый stateful файрвол nft add table inet filter nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; } nft add rule inet filter input ct state established,related accept nft add rule inet filter input iif lo accept nft add rule inet filter input tcp dport { 22, 80, 443 } accept # сохранить и загрузить при старте nft list ruleset > /etc/nftables.conf systemctl enable nftables Миграция с iptables — утилита iptables-restore-translate: ...

15 июня 2026 г. · llexa

Proxmox #4: резервное копирование через PBS

Proxmox Backup Server (PBS) хранит бэкапы VM и LXC с дедупликацией по блокам. Подключается как хранилище: Datacenter → Storage → Add → Proxmox Backup Server. # бэкап VM вручную (VMID 101) vzdump 101 --storage pbs --mode snapshot # список резервных копий в хранилище proxmox-backup-client list --repository user@pbs-host:datastore # верификация целостности proxmox-backup-client verify --repository user@pbs-host:datastore # удаление старых копий по политике proxmox-backup-client prune --keep-last 3 --keep-weekly 2 \ --repository user@pbs-host:datastore Расписание — Datacenter → Backup → Add. Там же Prune Policy: keep-last, keep-daily, keep-weekly, keep-monthly. После бэкапа PBS показывает степень дедупликации — обычно 3–10x для однотипных VM. ...

15 июня 2026 г. · llexa

Vim с нуля #5: splits, tabs и макросы

Splits — вертикальное и горизонтальное разбиение окна: :vs fichier.py " вертикальный сплит :sp log/app.log " горизонтальный сплит Ctrl+w h/j/k/l " переход между панелями Ctrl+w = " выровнять размеры Ctrl+w q " закрыть панель Tabs — несколько раскладок одновременно: :tabnew файл.py " новая вкладка gt / gT " следующая / предыдущая :tabc " закрыть вкладку Макросы — запись и воспроизведение последовательности команд: qa " начать запись в регистр a dd " (любые команды — удалить строку, например) q " остановить запись @a " воспроизвести 5@a " повторить 5 раз @@ " повторить последний макрос Макросы хранятся в регистрах — "ap вставит содержимое макроса как текст, если нужно его отредактировать. ...

15 июня 2026 г. · llexa