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