Как работает readonly в Bash
Разбираем readonly-переменные в Bash: как защитить значение от перезаписи, почему unset не помогает и как увидеть ошибку readonly variable. Отдельно показываем рискованный трюк с GDB и его ограничения.
Фото: Markus Spiske / Pexels
← Все темы
Статьи о Linux: настройка серверов, оптимизация систем, администрирование и лучшие практики для DevOps инженеров.
Разбираем readonly-переменные в Bash: как защитить значение от перезаписи, почему unset не помогает и как увидеть ошибку readonly variable. Отдельно показываем рискованный трюк с GDB и его ограничения.
Переносим каталог /tmp с корневого раздела или tmpfs на отдельный диск через systemd mount unit. Правильно именуем tmp.mount, указываем UUID файловой системы, сохраняем sticky bit 1777 и проверяем новое монтирование.
Когда нет интернета и подсказок ИИ, готовые примеры Bash уже лежат в системных скриптах Linux. Одной командой находим реальные случаи использования getopts и других конструкций в /usr/bin, /usr/sbin, /bin и /sbin.
Разбираемся, чем физический терминал и его современный эмулятор отличаются от консоли Linux. Сравниваем устройства /dev/pts и /dev/tty и отправляем текст из консоли в открытую терминальную сессию.
Проверяем целостность архивов tar.gz без распаковки командами tar и gzip, намеренно повреждаем файл через truncate и разбираем коды возврата. В конце — готовый Bash-скрипт для автоматической проверки резервных копий.
Пошагово подключаем физический USB-диск с ext4 к Windows 11 через WSL без сторонних драйверов. Находим устройство через WMIC, монтируем его с ключом --bare и открываем раздел внутри Ubuntu.
Защищаем долгий Bash-скрипт от параллельных запусков из cron с помощью flock и lock-файла. Готовый обработчик блокирует повторную копию процесса и освобождает блокировку после завершения работы.
Практический разбор домашнего сервера на Raspberry Pi с Ubuntu, Dockge и внешними дисками. В материале — контейнеры Seafile, Jellyfin, Uptime Kuma, Syncthing, мониторинг и резервное копирование через rclone в S3 Selectel.
Экспериментируем с GNU-утилитами и функцией set_program_name, которая особым образом обрабатывает запуск из каталога .libs. Сравниваем сообщения об ошибках и справку, чтобы увидеть влияние libtool на имя программы.
Разбираем тест -newerXY утилиты find и временные метки файлов. Ищем изменения относительно заданной даты или файла-образца, создаём контрольную метку через touch и выводим время найденных объектов.
Собрали консольные сервисы для определения внешнего IP-адреса и геолокации через curl, dig и whois. Показываем короткие команды и объясняем, как сделать проверку отказоустойчивой в Bash-скриптах.
Настраиваем разные правила sshd для пользователей и адресов через блок Match. Рассматриваем парольную аутентификацию последнего шанса, шаблоны условий и проверку итоговой конфигурации командой sshd -T -C.
Linux — основная категория BashDays, посвященная системному администрированию, DevOps и эксплуатации серверов.
В разделе публикуются материалы по:
Здесь собраны практические статьи с примерами команд, конфигураций и разбором реальных кейсов из эксплуатации Linux-серверов.