SSH на 22-м порту - это первая цель для ботов и сканеров. Даже если вы используете сложный пароль или ключи, сервер всё равно получает тысячи попыток входа. Но есть способ исчезнуть, не ставя VPN и не играясь с Fail2Ban, это Port Knocking.
Это техника, при которой порт SSH по умолчанию закрыт, а открывается только после правильной последовательности простуков - попыток подключения к заранее выбранным портам.
Все внешние порты закрыты.
Админ отправляет секретную последовательность: например, попытки подключения к портам 7001 → 5022 → 2345.
Firewall фиксирует эту последовательность и открывает доступ к порту 22 только для вашего IP.
После таймаута порт снова закрывается.
Для сканера сервер выглядит мертвым: никакого SSH, никакого 22 порта, ноль шансов на брутфорс.
apt install knockd
Конфиг /etc/knockd.conf:
[openSSH]
sequence = 7001,5022,2345
seq_timeout = 10
command = firewall-cmd --add-rich-rule='rule family="ipv4" source address="%IP%" port protocol="tcp" port="22" accept'
tcpflags = syn
[closeSSH]
sequence = 2345,5022,7001
seq_timeout = 10
command = firewall-cmd --remove-rich-rule='rule family="ipv4" source address="%IP%" port protocol="tcp" port="22" accept'
tcpflags = syn
Включаем сервис:
systemctl enable --now knockd
Открыть SSH:
knock server.ip 7001 5022 2345
Закрыть обратно:
knock server.ip 2345 5022 7001
Теперь можно заходить:
ssh user@server.ip
#linux #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29❤12
🔧 Для системных администраторов и IT-специалистов!
Ищете надежный источник знаний и поддержки? Тогда вам к нам!
📚 Что у нас есть:
- Книги по Cisco Systems, Mikrotik, VoIP, Linux и Windows Server
- Руководства по сетевым технологиям
- 📽 Видеоуроки на актуальные темы
- 🤝 Поддержка от сообщества
Присоединяйтесь к нашему сообществу профессионалов: @sysadmin1
Ищете надежный источник знаний и поддержки? Тогда вам к нам!
📚 Что у нас есть:
- Книги по Cisco Systems, Mikrotik, VoIP, Linux и Windows Server
- Руководства по сетевым технологиям
- 📽 Видеоуроки на актуальные темы
- 🤝 Поддержка от сообщества
Присоединяйтесь к нашему сообществу профессионалов: @sysadmin1
👍4
Есть одна старая, но очень полезная фишка терминала, про которую многие либо не знают, либо вспоминают слишком поздно.
Ситуация знакомая: в bash запущен процесс, который постоянно пишет в stdout. Экран бесконечно обновляется, строки летят вниз, а вам нужно прочитать сообщение об ошибке, которое уже убежало вверх. Пытаетесь прокрутить терминал и каждый раз его тут же возвращает в самый низ. Раздражает.
tail -f /var/log/nginx/access.log
С tail это не критично, его можно просто остановить. Но есть куда более неприятные сценарии. Например, вы запустили Docker-контейнер не в -d, он активно пишет логи, где-то мелькнула ошибка, а остановить процесс нельзя - контейнер завершится. То же самое при сборке Dockerfile, запуске большого docker-compose или долгом скрипте с подробным выводом.
Ctrl + S - ставит вывод терминала на паузу. Новые строки перестают появляться, и вы спокойно можете прокрутить экран вверх и прочитать нужное место.Ctrl + Q - возвращает терминал в обычный режим, вывод продолжается.Это не фича bash, а управление потоком вывода (XON/XOFF), которое работает почти в любом терминале.
Маленькая комбинация клавиш, которая закрывает реально раздражающую проблему и заметно упрощает жизнь в консоли.
#linux #terminal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15⚡4❤2🔥2😱1
В современных дистрибутивах пингвина все системные логи по умолчанию собирает
systemd-journald. Вместо десятков файлов в /var/log вы получаете единый журнал, с которым удобно работать через journalctl. Если сервер ведет себя странно, это первое место, куда стоит смотреть.
journalctl
Покажет весь журнал, начиная с самых старых записей. Для удобства почти всегда используют пейджер с прокруткой.
journalctl -b
Полезно после падения или перезагрузки сервера.
journalctl -b -1
Позволяет понять, что пошло не так до ребута.
journalctl -u nginx
journalctl -u ssh
Можно сразу увидеть ошибки запуска, рестарты и падения.
journalctl --since "2026-01-22 10:00" --until "2026-01-22 10:30"
journalctl -u docker -f
journalctl -p err
journalctl -p warning
Можно комбинировать с
-b и -u.
journalctl _PID=1234
journalctl _COMM=sshd
mkdir -p /var/log/journal
systemctl restart systemd-journald
#systemd #journalctl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤7
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23
Когда в сети появляется больше одного маршрутизатора, статические маршруты быстро превращаются в боль. Даже в небольших инфраструктурах нужен динамический роутинг. Здесь выручает FRRouting (FRR) - open-source стек маршрутизации для линукс.
FRRouting - это набор демонов маршрутизации, который превращает обычный линукс-сервер в полноценный маршрутизатор. Используется не только энтузиастами, но и в продакшене у провайдеров и дата-центров.
Поддерживаемые протоколы:
OSPFv2 / OSPFv3
BGP
IS-IS
RIP
static routing
VRF
Для небольших сетей чаще всего интересны именно OSPF и BGP.
работает на обычном линукс без спецжелеза;
конфигурация похожа на cisco (vtysh);
можно автоматизировать через ansible;
легко интегрируется с iptables/nftables и policy routing;
отлично подходит для виртуалок и VPN-туннелей.
apt install frr
vtysh
Минимальная настройка:
configure terminal
router ospf
network 10.0.0.0/24 area 0
exit
write
После этого маршрутизаторы начнут автоматически обмениваться маршрутами внутри зоны.
для мультихоминга;
в VPN.
Пример:
router bgp 65001
neighbor 10.0.0.2 remote-as 65002
network 192.168.100.0/24
exit
небольшие офисы и филиалы;
VPN на WireGuard/IPsec;
тестовые стенды;
self-hosted инфраструктура без дорогих маршрутизаторов.
FRR хороший способ понять и использовать динамическую маршрутизацию без cisco, juniper и железных коробок. Для малых и средних сетей его возможностей более чем достаточно.
#networking #frr
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4
В Linux есть простой и почти забытый механизм ограничения сетевого доступа к сервисам - TCP Wrappers. Сегодня его используют редко, потому что он сильно уступает по гибкости
iptables и nftables, но инструмент до сих пор работает и иногда может быть полезен. Основан он на библиотеке libwrap и действует на уровне приложений, которые ее поддерживают.Суть проста: доступ контролируется через два файла:
/etc/hosts.allow и /etc/hosts.deny.Для этого в /
etc/hosts.allow добавляем:
sshd : 10.10.0.0/24
sshd : 172.16.50.0/24
А в
/etc/hosts.deny:
sshd : ALL
После этого подключение по SSH будет возможно только из указанных сетей. Никакие службы перезапускать не нужно, правила применяются сразу. Если кто-то попытается подключиться извне, в логах SSH появится запись:
journalctl -u ssh -n 10
sshd[814]: refused connect from 172.31.8.45 (172.31.8.45)
Можно дополнительно логировать все заблокированные подключения:
sshd : ALL \
: spawn /usr/bin/echo "$(/bin/date +"%%d-%%m-%%y %%T") SSH access blocked from %h" >> /var/log/libwrap
В итоге в
/var/log/libwrap появится понятная запись:
21-01-26 10:03:05 SSH access blocked from 172.31.8.45
Важно: сервис обязан поддерживать libwrap. Проверить это можно так:
ldd /usr/sbin/sshd | grep libwrap
Очевидно, что полноценный файрвол будет более надежным решением. Но TCP Wrappers могут быть полезны в простых сценариях, как дополнительный уровень защиты или страховка на случай ошибки в правилах файрвола. Полезно хотя бы знать, что такой механизм существует и как он работает.
#linux #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3🔥3⚡1
Раньше в linux было несколько классических способов перезагрузки системы:
shutdown -r, reboot, halt. Сейчас вся эта разница по сути исчезла: в современных дистрибутивах всем управляет systemd.Если посмотреть внимательнее, окажется, что привычные команды - это всего лишь обертки:
whereis reboot
ls -la /usr/sbin/reboot
и аналогично для shutdown. В итоге обе команды являются символьными ссылками на
/bin/systemctl. То есть не важно, что именно вы набрали - reboot, shutdown -r или systemctl reboot - запрос все равно уйдет в systemd.Иногда можно встретить рекомендации перезагружать сервер именно так:
systemctl reboot
Но на практике обычный ребут делает ровно то же самое, просто быстрее набирается.
Возникает логичный вопрос: как systemctl понимает, что от него хотят - перезагрузку или выключение, если бинарник один и тот же? Все просто: при запуске программа знает имя, под которым ее вызвали. Это стандартный механизм execve. Например, в shell имя команды доступно через
$0. Внутри systemctl есть проверка, которая определяет, был ли вызов через reboot, shutdown или напрямую.Кроме привычных команд, перезагрузку можно инициировать и через цели systemd:
systemctl start reboot.target
systemctl start ctrl-alt-del.target
По сути, эффект будет тем же самым, просто разными путями.
И важный момент напоследок. Все эти способы все равно требуют запуска бинарника с диска. Если файловая система повреждена и systemctl не может выполниться, система может зависнуть и не перезагрузиться. В таком случае остаётся крайний вариант - обратиться напрямую к ядру:
echo b > /proc/sysrq-trigger
Это эквивалент жесткого нажатия кнопки reset: без graceful shutdown, но зато работает даже в самых тяжелых ситуациях.
#systemd #reboot
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5
SMB/CIFS - это один из самых популярных протоколов для файловых шар в локальных сетях. По умолчанию он далеко не всегда работает быстро. Часто жалобы на медленную работу сетевых папок связаны не с дисками или сетью, а с настройками.
Первое, на что стоит обратить внимание: версия протокола. SMB1 давно устарел и медленный, к тому же небезопасный. В современных системах стоит использовать SMB2 или SMB3. На samba это явно задается параметрами
server min protocol = SMB2 и server max protocol = SMB3.Второй момент: размеры буферов и асинхронный ввод-вывод. В samba полезно включать:
aio read size и aio write sizesocket options = TCP_NODELAY SO_RCVBUF=... SO_SNDBUF=...Это снижает задержки и повышает пропускную способность, особенно при работе с большими файлами.
Для локальной сети важно отключать лишнее. Например, SMB signing нужен для недоверенных сетей, но в домашней или офисной локалке он дает заметный оверхед. Если безопасность позволяет - его можно выключить.
Также стоит учитывать тип нагрузки. Много мелких файлов - одно поведение, большие архивы - другое. Иногда помогает включение
sendfile или, наоборот, его отключение в зависимости от файловой системы.Со стороны клиента тоже есть нюансы. В linux можно монтировать шары с опциями
vers=3.1.1, cache=loose, rsize и wsize. В windows проверить, не включен ли старый SMB1 ради совместимости.И напоследок банальное, но важное: гигабитная сеть, нормальный MTU и исправный DNS влияют на SMB не меньше, чем конфиги. Прежде чем тюнить samba, убедитесь, что сама сеть не узкое место.
Правильно настроенный SMB в локалке легко выдает скорости, близкие к дисковым, без экзотики и лишних костылей.
#smb #networking
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤2
Nmap - это не только сканер портов. У него есть еще одна часть - NSE (Nmap Scripting Engine), которая позволяет выполнять сотни готовых скриптов для поиска уязвимостей, ошибок конфигурации и опасных сервисов.
Все NSE-скрипты разбиты по категориям: vuln, safe, auth, default, discovery и другие. Для быстрого старта обычно используют стандартный набор:
nmap -sC -sV target
Эта команда запускает default-скрипты и определяет версии сервисов. Уже на этом этапе можно найти слабые места: анонимный FTP, открытые админки, устаревшие демоны.
Для целенаправленного поиска уязвимостей применяется категория vuln:
nmap --script vuln target
Такой запуск проверяет сервисы на известные CVE: уязвимости в SMB, SSL, HTTP, базах данных и сетевых службах. Например, скрипты могут выявить MS17-010 (EternalBlue), слабые TLS-настройки или небезопасные HTTP-методы.
Полезный прием - запуск скриптов для конкретного сервиса:
nmap -p 443 --script ssl-* target
Это помогает быстро оценить состояние TLS: версии протоколов, шифры, сертификаты.
Важно понимать ограничения NSE. Это не полноценный vulnerability scanner, а инструмент первичной проверки. Он не эксплуатирует уязвимости и не гарантирует 100% точность, но отлично подходит для быстрого аудита и поиска очевидных проблем.
#nmap #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3
Если нужно регулярно сохранять конфигурации MikroTik, есть аккуратный и удобный инструмент - Pupirka. Это небольшая утилита от Кирилла Васильева, которая делает ровно то, что нужно: подключается к устройству по SSH, выполняет экспорт конфигурации и складывает результат в структурированный каталог. Без самописных скриптов и хаоса.
Работает все максимально просто. Скачиваете один бинарник под свою ОС, делаете его исполняемым и запускаете. При первом старте Pupirka сама создает рабочую структуру: каталоги для бэкапов, описаний устройств, логов, SSH-ключей и базовый JSON-конфиг.
Для добавления MikroTik достаточно положить в каталог device JSON-файл с параметрами подключения: адрес, логин и пароль (или ключ). После этого один запуск и конфигурация устройства автоматически экспортируется. Бэкап сохраняется в отдельную папку устройства, а лог операции пишется рядом. По строке Backup complete легко понять, что все прошло успешно.
Из приятного - поддержка хуков. Например, после каждого бэкапа можно автоматически отправлять конфиги в git-репозиторий. Это удобно для версионирования и аудита изменений.
Хотя Pupirka чаще всего используют именно для MikroTik, она не ограничена только ими. В конфиге можно указать команду, вывод которой нужно сохранять. Фактически, инструмент можно применять и для сбора информации с серверов или сетевых устройств по SSH.
Простой, понятный и практичный инструмент, именно то, что нужно для регулярных бэкапов сетевой инфраструктуры.
Ссылка на GitHub
#mikrotik #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Иногда возникает задача быстро перекинуть файлы между двумя серверами, между которыми нет прямого SSH-доступа. Аутентификация не настроена, ключей нет, но при этом вы спокойно заходите по SSH на каждый из них со своей машины.
Самые очевидные варианты обычно такие:
Скачать данные с первого сервера локально, а потом залить их на второй. Работает всегда, но если у вас медленный канал или большой объем данных - вариант так себе. Иногда вместо себя используют промежуточный сервер с хорошим интернетом, но это тоже костыль.
Создать ключи, раскидать их, включить парольную аутентификацию и т.д. Иногда это избыточно, иногда просто запрещено политиками безопасности.
eval $(ssh-agent)
Проверяем, что агент работает:
env | grep SSH_
ssh-add
Проверить, какие ключи добавлены:
ssh-add -l
Host 1.2.3.4
ForwardAgent yes
Host srv-01
ForwardAgent yes
Важно: включайте ForwardAgent только для конкретных хостов, а не глобально.
ssh root@1.2.3.4
Если проброс работает, на сервере появится сокет агента:
ls /tmp | grep ssh-
rsync -av /var/www/ root@5.6.7.8:/var/www/
Файлы копируются напрямую с сервера на сервер, без скачивания к вам и без настройки SSH-доступа между ними.
Когда вы заходите на сервер с включенным пробросом агента, пользователь root этого сервера получает доступ к вашему ssh-agent и может использовать его для подключений.
Поэтому:
не используйте agent forwarding на чужих или сомнительных серверах;
не включайте его глобально;
отключайте, когда он не нужен.
#ssh #rsync
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
systemctl edit getty@tty1
Добавляем:
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin user --noclear %I $TERM
Перезагружаем:
systemctl restart getty@tty1
systemctl enable nginx
Проверить состояние:
systemctl is-enabled nginx
systemctl status nginx
Отключить автозапуск:
systemctl disable nginx
Фактически enable создает симлинк юнита в нужный *
.target./lib/systemd/system - плохая идея. Обновления их перезапишут. Вместо этого используют override-файлы. Для этого создаем override:systemctl edit nginx
Пример: увеличим лимит открытых файлов:
[Service]
LimitNOFILE=65536
Применяем изменения:
systemctl daemon-reexec
systemctl restart nginx
Посмотреть итоговую конфигурацию:
systemctl cat nginx
Systemd покажет базовый unit + все override.
#systemd #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Когда речь заходит о мониторинге сети на уровне провайдера или датацентра, обычных SNMP-графиков недостаточно. Нужно понимать кто, куда и сколько трафика гоняет. Для этого используют NetFlow и sFlow - технологии экспорта сетевых потоков. Статья больше ознакомительная, чем практичная. Для понимания как все устроено.
Что такое NetFlow
NetFlow - технология Cisco, которая собирает статистику по каждому сетевому потоку:
IP-адреса, порты, протокол, объём трафика, время жизни сессии.
Особенности:
высокая детализация;
хорош для биллинга, расследований, анализа атак;
поддерживается большинством маршрутизаторов (NetFlow v5/v9, IPFIX);
Что такое sFlow
sFlow работает по другому принципу - семплирование. Устройство отправляет не все потоки, а только выборку пакетов + счётчики интерфейсов.
Особенности:
минимальная нагрузка на свитчи;
отлично масштабируется;
идеально для высоконагруженных сетей и DC;
На практике у провайдеров часто используются оба подхода.
Flow-данные отправляются на коллекторы:
nfdump / nfsen;
pmacct;
ElastiFlow (Elastic + NetFlow/sFlow);
Zabbix / Grafana (через плагины).
Типовые задачи:
поиск топ-N потребителей трафика;
обнаружение DDoS;
анализ межсегментного трафика;
контроль договорных лимитов.
#networking #netflow
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14
Сканеров сети хватает, но на практике почти всегда в итоге используется Nmap. Проблема одна - запомнить все ключи и режимы нереально.
nmap 192.168.1.1
nmap 192.168.1.1 192.168.2.1
nmap 192.168.1.1-254
nmap 192.168.1.0/24
nmap 192.168.1.1 -p-
Ключ
-p задает диапазон портов:-p 22, -p 21-100, -p http,https.Полный диапазон заметно увеличивает время проверки.
nmap 192.168.1.1 -Pn
nmap 192.168.1.1 -sS # TCP SYN (по умолчанию)
nmap 192.168.1.1 -sT # TCP connect
nmap 192.168.1.1 -sU # UDP
Полный TCP + UDP (очень долго):
nmap 192.168.1.1 -sS -sU -p-
nmap 192.168.1.0/24 -sn
Часто использую для быстрого списка хостов в сети.
Просто вывести список IP:
nmap 192.168.1.1-15 -sL
nmap 192.168.1.0/24 -PR
В локальных сетях работает быстрее пинга. Используется автоматически, даже если указан другой метод.
nmap 192.168.1.1 -sV
Комплексная проверка (ОС, сервисы, скрипты, traceroute):
nmap 192.168.1.1 -A
Полезный прием:
1) сначала найти открытые порты
2) потом запускать -A только по ним
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d/ -f1 | tr '\n' ',' | sed 's/,$//')
nmap -p$ports -A $1
Запуск:
./nmap.sh 192.168.1.1
-T0 paranoid
-T1 sneaky
-T2 polite
-T3 normal (по умолчанию)
-T4 aggressive
-T5 insane
В локалке обычно используют -T4. Чем ниже режим - тем медленнее и менее заметен скан.
#nmap #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1
Cloud-Init в Proxmox: автоматическое создание виртуальных машин
Если вы часто вручную создаете виртуальные машины в Proxmox, эту рутину легко автоматизировать с помощью Cloud-Init, который поддерживается в Proxmox из коробки.
Cloud-Init позволяет при создании ВМ автоматически задать:
▪️ пользователей, пароли и SSH-ключи
▪️ hostname
▪️ сетевые настройки и DNS
▪️ первичное обновление пакетов
Без Cloud-Init все это пришлось бы настраивать вручную в каждой новой виртуалке.
▪️ Как это работает
1️⃣ Подготавливаем базовую ВМ. Устанавливаем ОС и нужные пакеты, обязательно ставим cloud-init:
Можно использовать готовые cloud-образы:
Debian - cloud.debian.org
Ubuntu - cloud-images.ubuntu.com
Astra Linux - dl.astralinux.ru
Proxmox отлично поддерживает образы, подготовленные под OpenStack.
2️⃣ Делаем шаблон. Готовую ВМ переводим в шаблон через Convert to template.
3️⃣ Создаем новую ВМ из шаблона. Добавляем к ней диск CloudInit Drive.
4️⃣ Настраиваем Cloud-Init. В параметрах ВМ появляется раздел Cloud-Init, где можно индивидуально указать пользователя, ключи, сеть и DNS. При первом запуске настройки применяются автоматически.
Инструкция в Wiki Proxmox:
🔗 Cloud-Init Support
🔗 Cloud-Init FAQ
#proxmox #cloudinit
🧑💻 NetworkAdmin
Если вы часто вручную создаете виртуальные машины в Proxmox, эту рутину легко автоматизировать с помощью Cloud-Init, который поддерживается в Proxmox из коробки.
Cloud-Init позволяет при создании ВМ автоматически задать:
Без Cloud-Init все это пришлось бы настраивать вручную в каждой новой виртуалке.
apt install cloud-init
Можно использовать готовые cloud-образы:
Debian - cloud.debian.org
Ubuntu - cloud-images.ubuntu.com
Astra Linux - dl.astralinux.ru
Proxmox отлично поддерживает образы, подготовленные под OpenStack.
Инструкция в Wiki Proxmox:
#proxmox #cloudinit
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
В Windows есть встроенный механизм программного хранения данных - Storage Spaces. По сути, это аналог Linux LVM + software RAID, который позволяет объединять диски в пул и создавать на их основе отказоустойчивые тома без стороннего ПО и RAID-контроллеров.
1. Physical disks - физические диски (HDD/SSD, SATA/NVMe, USB тоже поддерживаются).
2. Storage Pool - пул хранения, в который объединяются диски.
3. Virtual Disk (Space) - логический диск с заданным уровнем отказоустойчивости.
На уровне Virtual Disk выбирается тип защиты данных.
Simple - без отказоустойчивости (аналог RAID0). Максимальная скорость и объем.
Two-way mirror - зеркалирование данных на два диска (аналог RAID1).
Three-way mirror - зеркалирование на три диска (для критичных данных).
Parity - распределенная четность (аналог RAID5/6, зависит от конфигурации).
встроено в Windows (Server и Pro-версии);
не требует перезагрузки при добавлении дисков;
поддерживает hot-swap;
можно расширять пул на ходу;
работает поверх обычных дисков без контроллера.
- Зеркала отлично подходят для VM, файловых серверов и рабочих станций.
- Parity экономит место, но хуже по записи, особенно на мелких I/O.
- Для системных дисков чаще используют зеркало, а не parity.
- Управлять можно через GUI или PowerShell (Get-StoragePool, New-VirtualDisk).
небольшой сервер или NAS на Windows;
тестовые и офисные инфраструктуры;
когда нет аппаратного RAID, но нужна отказоустойчивость.
#storage #raid
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
asciinema записывает не видео, а последовательность команд и вывода терминала с таймингами. В результате получается легкий файл, который можно:воспроизводить в браузере;
встраивать в документацию;
использовать в обучающих материалах;
пересматривать прямо в терминале.
apt install asciinema
asciinema rec
Ctrl+D или exit. По умолчанию создается файл формата .cast, в котором хранится вся запись.
asciinema play demo.cast
Либо загрузить на сайт asciinema:
asciinema upload demo.cast
После загрузки вы получите ссылку и HTML-код для встраивания записи в сайт или wiki.
минимальный размер файлов;
идеальная читаемость текста;
можно копировать команды прямо из записи;
легко автоматизировать;
отлично подходит для документации.
#linux #terminal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
В ext4 есть полезная особенность: при создании файловой системы резервируется 5% пространства. Обычно это место доступно только root и нужно, чтобы система не умерла, когда диск заполнен под завязку. В критических ситуациях этот резерв реально спасает, без него многие сервисы просто перестают работать (привет ZFS и lvm-thin).
tune2fs -m 3 /dev/mapper/root
# или
tune2fs -m 3 /dev/sda3
Вместо 5% оставляем 3%, а разница становится доступной системе. На больших разделах это могут быть десятки гигабайт. Теоретически можно поставить и 0%:
tune2fs -m 0 /dev/sda3
Но так делать не советую. Минимум 1% лучше оставить, а оптимальный компромисс те же 3%.
Создаем swap-файл на 1 ГБ:
dd if=/dev/zero of=/swap bs=1024 count=1000000
mkswap /swap
chmod 0600 /swap
swapon /swap
Отключить и удалить его так же просто:
swapoff -a
rm /swap
fallocate -l 10G /big_file
В экстренной ситуации его можно удалить и мгновенно получить несколько гигабайт свободного места, чтобы система ожила.
#linux #ext4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18