Почему mv удаляет файлы при переименовании
Разбираем Bash-скрипт, который при массовом переименовании незаметно теряет половину файлов. На тестовом наборе показываем поведение mv при совпадении имён и используем опцию -b для резервных копий.
BashDays / инженерное медиа
Статьи об администрировании Linux, инфраструктуре, информационной безопасности, автоматизации и разработке — с реальными примерами и без пересказа документации.
Главная статья
Разбираем Bash-скрипт, который при массовом переименовании незаметно теряет половину файлов. На тестовом наборе показываем поведение mv при совпадении имён и используем опцию -b для резервных копий.
Форум Bashdays
Читают сейчас
Разбираем Bash-скрипт, который при массовом переименовании незаметно теряет половину файлов. На тестовом наборе показываем поведение mv при совпадении …
Разбираем странные права 01411 после вызова chmod в PHP и доказываем источник ошибки через strace. На примерах показываем разницу между десятичным …
Собираем минимальный конфиг-агент на Bash, который синхронизирует эталонные настройки Nginx из Git. Скрипт с cron, rsync и systemctl автоматически …
Личная практика для снижения стресса, когда задач и обязательств становится слишком много. Автор описывает упражнение с точкой на бумаге, фиксацией …
Практический разбор отладки неизвестного бинарника через strace и инъекцию ошибки EACCES. Показываем, как остановить unlink, сохранить временный файл …
Эксперимент с передачей текстовых сообщений между Bash-процессами через сигналы SIGRTMIN. Сервер и клиент кодируют символы по битам, обрабатывают …
Практическая схема размещения GitLab Runner на отдельных серверах без лишней нагрузки на продакшен. Разбираем общие теги, балансировку заданий, …
Объясняем, почему исполняемый файл из текущего каталога запускают через ./ и как оболочка использует PATH. Разбираем безопасность такого поведения, …
Три практических механизма systemd для задач по расписанию, наблюдения за файлами и запуска сервисов по подключению. Примеры юнитов timer, path и …
Знакомимся с doas из OpenBSD как более простой альтернативой sudo. Разбираем установку, правила permit и nopass, доступ для пользователей и групп, а …
Личный опыт показывает, как непредсказуемые годовые премии влияют на мотивацию и атмосферу в команде. Разбираем, почему прозрачные правила …
История о том, как готовая хостинг-панель сломала отлаженный процесс деплоя и заставила разобраться в Linux глубже. Объясняем, почему консольная …
Показываем три способа установить свежую Ubuntu в WSL: импортировать rootfs из Docker, выполнить dist-upgrade или поставить Ubuntu Preview. Внутри — …
Разбираем жёсткий способ проверить DevOps- или SRE-инженера в условиях контролируемой аварии. Фейковый продакшен, мониторинг, документация и разбор …
Экспериментируем с отключением системных журналов Linux, journald, rsyslog и истории Bash. Материал показывает, где остаются логи, какие побочные …
Авторский разбор собеседований в DevOps: финансовая подушка, подготовка по требованиям вакансии, честные ответы и вопросы работодателю. Отдельно …
Практический взгляд на страх переговоров, выступлений и обычного общения после перехода на удалённую работу. Разбираем, почему одних книг недостаточно …
Разбираем несколько способов отделить имя файла от расширения в Bash без громоздких регулярных выражений. Используем подстановку параметров, basename, …
Объясняем разницу между жёстким путём к интерпретатору и конструкцией /usr/bin/env в shebang. На примерах с Bash, Python, PATH и виртуальным …
Авторский взгляд на бас-фактор, внедрение новых инфраструктурных процессов и передачу знаний внутри DevOps-команды. История показывает, как экспертиза …
Разбираемся, почему пользователи и инженеры сопротивляются изменениям даже тогда, когда новое решение объективно эффективнее. На примерах технологий, …
Собираем намеренно сломанный образ Nginx и последовательно отлаживаем Docker-контейнер, который сразу завершается. Используем docker ps, logs, …
История внедрения Kubernetes ради моды на примере корпоративного WordPress: быстрый старт, нестабильная база, инциденты и неизбежная переделка. …
Пошагово настраиваем вход на Linux-сервер по SSH-ключу: генерируем пару RSA, восстанавливаем публичную часть, копируем её через ssh-copy-id и …
Семь практических сценариев восстановления доступа к серверу после потери приватного SSH-ключа. Рассматриваем парольный вход, KVM и IPMI, резервную …
Настраиваем встроенный ACME-клиент Angie для автоматического получения и продления SSL-сертификатов Let’s Encrypt. Устанавливаем веб-сервер, добавляем …
Знакомимся с консольным таск-трекером Taskwarrior и собираем минимальную систему личных задач без тяжёлого интерфейса. Добавляем и закрываем задачи, …
Настраиваем собственный центр сертификации SSH, чтобы управлять доступом к сотням серверов без ручного обновления authorized_keys. Разбираем доверие к …
Настраиваем SSH-вызов от системного пользователя без домашнего каталога и убираем бесконечный запрос подтверждения fingerprint. Выносим known_hosts в …
Сравниваем locate и find, разбираемся с базой updatedb и ускоряем простой поиск файлов в Linux. На примере strace показываем, как globbing в Bash …
Работающее легаси годами приносит бизнесу деньги, пока амбициозный рефакторинг рискует сам превратиться в новый техдолг. Почему безопаснее развивать …
Три способа посчитать сумму чисел из стандартного ввода или файла в Linux: GNU datamash, awk и dc. Сравниваем команды и помним о проверке входных …
Автор COLODEBUG предлагает использовать встроенную команду Bash : вместо обычного символа комментария #. Такой приём делает пояснения заметными в …
Разбираем порядок аргументов su и ошибку, при которой опция -c воспринимается как имя пользователя. Показываем правильную команду для выполнения ls от …
Символическая ссылка не может заменить уже существующий файл, а bind mount справляется с такой подменой. Проверяем поведение ln -s и mount --bind на …
GitLab может потребовать проверку учётной записи перед запуском пайплайнов на общих раннерах. Отключаем instance runners в настройках проекта, …
Комбинация ls -t и head выводит полный путь к последнему изменённому файлу или каталогу. Короткий способ подходит для резервных копий и автоматизации …
Проект Vim Clutch превращает ножную педаль в переключатель между режимом вставки и обычным режимом Vim. Смотрим на необычный способ освободить руки и …
Консольный интерфейс tig помогает просматривать историю Git, состояние репозитория, изменения отдельных блоков и результаты поиска. Утилита …
Утилита Spacer добавляет заметные разделители между всплесками активности в выводе tail -f. Подключаем её к логам Nginx одной командой и упрощаем …
Пятиминутка стабильности
Из логов айтишной жизни
Новость: Sony хочет прерывать игры рекламой. Sony предлагает предупреждать геймера о том, что сейчас будет показан ролик, после чего игра ставится на паузу и пользователь смотрит рекламный материал. Комментарии 1. Уж лучше пусть когда руководитель SONY пойдёт в туалет, у него появится табличка "потерпите немного", а потом появится "если вы не удержали в себе, можете поменять бельё". 2. Плюс еще ввести ему абонентскую плату за пользование сортиром (типа синглплеерные игры с абонентской платой). Пускать в сортир только по удостоверению личности (обязательная он-лайн регистрация, ага). Не пускать в чужие и общественные туалеты ни под каким предлогом (DRM). И туалетную бумагу выдавать только ма-аленькими частями, и за доп. плату (DLC).
Разбираем Bash-скрипт, который при массовом переименовании незаметно теряет половину файлов. На тестовом наборе показываем поведение mv при совпадении имён и используем опцию -b для резервных копий.
Разбираем странные права 01411 после вызова chmod в PHP и доказываем источник ошибки через strace. На примерах показываем разницу между десятичным 777, строкой и корректным восьмеричным значением 0777.
Собираем минимальный конфиг-агент на Bash, который синхронизирует эталонные настройки Nginx из Git. Скрипт с cron, rsync и systemctl автоматически восстанавливает конфиги и перезагружает сервис только при изменениях.
Практический разбор отладки неизвестного бинарника через strace и инъекцию ошибки EACCES. Показываем, как остановить unlink, сохранить временный файл и найти гонку, из-за которой выгрузка становилась пустой.
Эксперимент с передачей текстовых сообщений между Bash-процессами через сигналы SIGRTMIN. Сервер и клиент кодируют символы по битам, обрабатывают границы сообщений и показывают, почему важны задержки.
Объясняем, почему исполняемый файл из текущего каталога запускают через ./ и как оболочка использует PATH. Разбираем безопасность такого поведения, опасность добавления точки в PATH и полные пути для cron.
Три практических механизма systemd для задач по расписанию, наблюдения за файлами и запуска сервисов по подключению. Примеры юнитов timer, path и socket помогают заменить cron, inotify-tools и постоянно работающие службы.
Знакомимся с doas из OpenBSD как более простой альтернативой sudo. Разбираем установку, правила permit и nopass, доступ для пользователей и групп, а также запуск root shell.
История о том, как готовая хостинг-панель сломала отлаженный процесс деплоя и заставила разобраться в Linux глубже. Объясняем, почему консольная настройка серверов даёт DevOps-инженеру понимание инфраструктуры, которого не дают …
Показываем три способа установить свежую Ubuntu в WSL: импортировать rootfs из Docker, выполнить dist-upgrade или поставить Ubuntu Preview. Внутри — команды экспорта контейнера, импорта tar-архива и проверки дистрибутивов.
Экспериментируем с отключением системных журналов Linux, journald, rsyslog и истории Bash. Материал показывает, где остаются логи, какие побочные эффекты возникают и почему эти приёмы допустимы только в учебной среде.
Разбираем несколько способов отделить имя файла от расширения в Bash без громоздких регулярных выражений. Используем подстановку параметров, basename, dirname и переменную IFS на понятных примерах.
Объясняем разницу между жёстким путём к интерпретатору и конструкцией /usr/bin/env в shebang. На примерах с Bash, Python, PATH и виртуальным окружением показываем преимущества и ограничения переносимого запуска скриптов.
Пошагово настраиваем вход на Linux-сервер по SSH-ключу: генерируем пару RSA, восстанавливаем публичную часть, копируем её через ssh-copy-id и выставляем права на authorized_keys. Также разбираем подключение под разными …
Семь практических сценариев восстановления доступа к серверу после потери приватного SSH-ключа. Рассматриваем парольный вход, KVM и IPMI, резервную рабочую машину, Rescue Mode и автоматизацию через Ansible или AWX.
Собираем минимальный конфиг-агент на Bash, который синхронизирует эталонные настройки Nginx из Git. Скрипт с cron, rsync и systemctl автоматически восстанавливает конфиги и перезагружает сервис только при изменениях.
Практическая схема размещения GitLab Runner на отдельных серверах без лишней нагрузки на продакшен. Разбираем общие теги, балансировку заданий, регистрацию нескольких раннеров и деплой по SSH.
Три практических механизма systemd для задач по расписанию, наблюдения за файлами и запуска сервисов по подключению. Примеры юнитов timer, path и socket помогают заменить cron, inotify-tools и постоянно работающие службы.
История о том, как готовая хостинг-панель сломала отлаженный процесс деплоя и заставила разобраться в Linux глубже. Объясняем, почему консольная настройка серверов даёт DevOps-инженеру понимание инфраструктуры, которого не дают …
Разбираем жёсткий способ проверить DevOps- или SRE-инженера в условиях контролируемой аварии. Фейковый продакшен, мониторинг, документация и разбор инцидента показывают, как кандидат действует под давлением.
Авторский разбор собеседований в DevOps: финансовая подушка, подготовка по требованиям вакансии, честные ответы и вопросы работодателю. Отдельно обсуждаем роль HR и причины, по которым сильные кандидаты не доходят до технической …
Авторский взгляд на бас-фактор, внедрение новых инфраструктурных процессов и передачу знаний внутри DevOps-команды. История показывает, как экспертиза даёт влияние и почему документация всё равно остаётся необходимой.
Разбираемся, почему пользователи и инженеры сопротивляются изменениям даже тогда, когда новое решение объективно эффективнее. На примерах технологий, продукта и A/B-тестов смотрим, когда статус-кво тормозит развитие, а когда …
Собираем намеренно сломанный образ Nginx и последовательно отлаживаем Docker-контейнер, который сразу завершается. Используем docker ps, logs, inspect, exec, cp и dive, чтобы найти ошибку в конфигурации, проверить слои и …
История внедрения Kubernetes ради моды на примере корпоративного WordPress: быстрый старт, нестабильная база, инциденты и неизбежная переделка. Разбираем, почему оркестратор нужен не каждому проекту и как практический эксперимент …
Настраиваем встроенный ACME-клиент Angie для автоматического получения и продления SSL-сертификатов Let’s Encrypt. Устанавливаем веб-сервер, добавляем домен, резервные сертификаты и проверяем конфигурацию без certbot и acme.sh.
Настраиваем собственный центр сертификации SSH, чтобы управлять доступом к сотням серверов без ручного обновления authorized_keys. Разбираем доверие к CA, подпись пользовательских ключей, сроки действия сертификатов и их отзыв.
GitLab может потребовать проверку учётной записи перед запуском пайплайнов на общих раннерах. Отключаем instance runners в настройках проекта, регистрируем локальный runner и продолжаем запускать CI/CD.
Puter запускает рабочий стол, приложения и урезанный терминал прямо в браузере, а сам проект можно развернуть в Docker. Смотрим, чем полезна открытая браузерная операционная система для маломощных устройств и удалённой работы.
goManageDocker добавляет текстовый интерфейс для управления образами, контейнерами и томами Docker без длинных команд. Инструмент устанавливается одной shell-командой и подходит для локальных пет-проектов.
Знакомимся с doas из OpenBSD как более простой альтернативой sudo. Разбираем установку, правила permit и nopass, доступ для пользователей и групп, а также запуск root shell.
Экспериментируем с отключением системных журналов Linux, journald, rsyslog и истории Bash. Материал показывает, где остаются логи, какие побочные эффекты возникают и почему эти приёмы допустимы только в учебной среде.
Пошагово настраиваем вход на Linux-сервер по SSH-ключу: генерируем пару RSA, восстанавливаем публичную часть, копируем её через ssh-copy-id и выставляем права на authorized_keys. Также разбираем подключение под разными …
Семь практических сценариев восстановления доступа к серверу после потери приватного SSH-ключа. Рассматриваем парольный вход, KVM и IPMI, резервную рабочую машину, Rescue Mode и автоматизацию через Ansible или AWX.
Настраиваем встроенный ACME-клиент Angie для автоматического получения и продления SSL-сертификатов Let’s Encrypt. Устанавливаем веб-сервер, добавляем домен, резервные сертификаты и проверяем конфигурацию без certbot и acme.sh.
Настраиваем собственный центр сертификации SSH, чтобы управлять доступом к сотням серверов без ручного обновления authorized_keys. Разбираем доверие к CA, подпись пользовательских ключей, сроки действия сертификатов и их отзыв.
Настраиваем SSH-вызов от системного пользователя без домашнего каталога и убираем бесконечный запрос подтверждения fingerprint. Выносим known_hosts в общий каталог, заполняем его через ssh-keyscan и подключаем с параметром …
Фраза This content is no longer available в обычном текстовом файле вызывает срабатывание Windows Defender на Trojan:Win32/Casdet!rfn.
Bash-скрипт whitepass генерирует пароль из пробелов и других невидимых символов. Экспериментальная идея и необычная проверка форм авторизации.
grep.app ищет строки кода сразу по миллионам публичных Git-репозиториев и заодно показывает последствия случайной публикации API-ключей и приватных данных. Инструмент полезен для аудита открытого кода и проверки собственных …
Suicide Linux запускается в Docker с корнем хоста и удаляет систему после первой ошибочной команды. Опасный эксперимент допустим только в одноразовой изолированной лаборатории.
Команда ssh-keygen помогает понять, тот ли приватный SSH-ключ использует GitLab Runner. Получаем MD5-отпечаток, сравниваем его с GitLab или GitHub и исправляем ошибку доступа к приватному репозиторию.
PDFLinux запускает Linux прямо внутри PDF в Chromium и Firefox благодаря JavaScript, PDFium и эмулятору RISC-V. Смотрим на необычный эксперимент, его ограничения, исходный код и версию Doom в PDF.
Подключение к чужому SSH-серверу может оставить в его логах не только IP, но и имя локального пользователя. Разбираем простой способ не раскрывать рабочий логин при проверке незнакомых SSH-ссылок.
Vim и Vi могут запустить интерактивную оболочку через команды -c и --cmd. Показываем, почему редактор в белом списке команд способен обойти ограниченную оболочку и открыть путь к повышению привилегий.
Разбираем странные права 01411 после вызова chmod в PHP и доказываем источник ошибки через strace. На примерах показываем разницу между десятичным 777, строкой и корректным восьмеричным значением 0777.
Практический разбор отладки неизвестного бинарника через strace и инъекцию ошибки EACCES. Показываем, как остановить unlink, сохранить временный файл и найти гонку, из-за которой выгрузка становилась пустой.
Показываем три способа установить свежую Ubuntu в WSL: импортировать rootfs из Docker, выполнить dist-upgrade или поставить Ubuntu Preview. Внутри — команды экспорта контейнера, импорта tar-архива и проверки дистрибутивов.
Собираем намеренно сломанный образ Nginx и последовательно отлаживаем Docker-контейнер, который сразу завершается. Используем docker ps, logs, inspect, exec, cp и dive, чтобы найти ошибку в конфигурации, проверить слои и …
Работающее легаси годами приносит бизнесу деньги, пока амбициозный рефакторинг рискует сам превратиться в новый техдолг. Почему безопаснее развивать новый продукт параллельно старому и не ломать действующую систему.
Автор COLODEBUG предлагает использовать встроенную команду Bash : вместо обычного символа комментария #. Такой приём делает пояснения заметными в трассировке скрипта и помогает при отладке.
Утилита Spacer добавляет заметные разделители между всплесками активности в выводе tail -f. Подключаем её к логам Nginx одной командой и упрощаем быстрый просмотр событий.
Bash Style Guide Дэйва Эдди — короткая выжимка о безопасных, предсказуемых и единообразных shell-скриптах. Руководство можно читать в браузере или прямо в терминале через curl, а основные темы разобраны и в видеороликах YSAP.
История аварии MySQL после ручного удаления файлов из var/mysql без остановки базы. Разбираемся, почему ibdata1 нельзя принимать за обычный лог и как подобные действия превращают пятничный вечер в восстановление продакшена.
Два инструмента показывают текущую раскладку рядом с текстовым или мышиным курсором. Cursor Layout Indicator работает в Obsidian, а niri-layout-cursor переносит индикатор на всю сессию Niri.
Dedockify анализирует историю Docker-образа и формирует приближённый Dockerfile, сокращая ручную работу при реверсе контейнеров. Показываем запуск через Docker и удобный alias для повторного использования.
inotify-tools позволяет в реальном времени увидеть, где приложение создаёт неизвестный файл. На практическом примере отслеживаем события каталога рекурсивно, находим выгрузку и разбираемся, когда пригодится incrond.
Одна команда strace показывает файлы, которые программа открывает в домашнем каталоге. Практический приём помогает отлаживать приложения, находить используемые конфиги и при необходимости отслеживать операции записи.
ncdu помогает быстро найти каталоги и файлы, занявшие дисковое пространство на Linux-сервере. Разбираем запуск утилиты, навигацию по дереву размеров, удаление ненужных данных и установку в популярных системах.
Тестовая админка после сохранения формы перенаправила авторизованного менеджера на основной домен. Разбираем, как незаметное переключение окружения привело к действиям на проде.
Личная практика для снижения стресса, когда задач и обязательств становится слишком много. Автор описывает упражнение с точкой на бумаге, фиксацией отвлекающих мыслей и последующим отсевом лишнего.
Личный опыт показывает, как непредсказуемые годовые премии влияют на мотивацию и атмосферу в команде. Разбираем, почему прозрачные правила вознаграждения важнее разовых выплат и неопределённых обещаний.
Разбираем жёсткий способ проверить DevOps- или SRE-инженера в условиях контролируемой аварии. Фейковый продакшен, мониторинг, документация и разбор инцидента показывают, как кандидат действует под давлением.
Авторский разбор собеседований в DevOps: финансовая подушка, подготовка по требованиям вакансии, честные ответы и вопросы работодателю. Отдельно обсуждаем роль HR и причины, по которым сильные кандидаты не доходят до технической …
Практический взгляд на страх переговоров, выступлений и обычного общения после перехода на удалённую работу. Разбираем, почему одних книг недостаточно и как регулярная практика помогает вернуть уверенность.
Авторский взгляд на бас-фактор, внедрение новых инфраструктурных процессов и передачу знаний внутри DevOps-команды. История показывает, как экспертиза даёт влияние и почему документация всё равно остаётся необходимой.
Разбираемся, почему пользователи и инженеры сопротивляются изменениям даже тогда, когда новое решение объективно эффективнее. На примерах технологий, продукта и A/B-тестов смотрим, когда статус-кво тормозит развитие, а когда …
История внедрения Kubernetes ради моды на примере корпоративного WordPress: быстрый старт, нестабильная база, инциденты и неизбежная переделка. Разбираем, почему оркестратор нужен не каждому проекту и как практический эксперимент …
Знакомимся с консольным таск-трекером Taskwarrior и собираем минимальную систему личных задач без тяжёлого интерфейса. Добавляем и закрываем задачи, делим их на домашний и рабочий проекты, создаём алиасы и намечаем синхронизацию …
Работающее легаси годами приносит бизнесу деньги, пока амбициозный рефакторинг рискует сам превратиться в новый техдолг. Почему безопаснее развивать новый продукт параллельно старому и не ломать действующую систему.
Консольный интерфейс tig помогает просматривать историю Git, состояние репозитория, изменения отдельных блоков и результаты поиска. Утилита устанавливается одной командой и дополняет нативные команды Git.
Антипродуктивная практика «Тюленинг» переворачивает метод Pomodoro: пять минут работы и тридцать минут отдыха. Личный эксперимент показывает, как скука иногда запускает короткий и очень интенсивный рабочий рывок.
Личный опыт перехода на сплит-клавиатуру Phenom после трёх дней работы без запасной мыши и привычной раскладки. Рассказываю про мышечную память, слои RuEn, кейкапы, трекбол и связку с оконным менеджером niri.
Личный опыт айтишника после МРТ, обнаружившего грыжу и протрузию поясничного отдела. Вопросы о ремиссии, ЛФК, укреплении мышц и поиске проверенной практики у людей с похожим опытом.
Жёсткий авторский взгляд на отпуск, нелюбимую работу и ожидание волшебной перезагрузки. Почему отдых не устраняет причины выгорания и какую роль играют творческий отпуск, финансовая подушка и нормальный сон.
Знакомимся с консольным таск-трекером Taskwarrior и собираем минимальную систему личных задач без тяжёлого интерфейса. Добавляем и закрываем задачи, делим их на домашний и рабочий проекты, создаём алиасы и намечаем синхронизацию …
Проект Vim Clutch превращает ножную педаль в переключатель между режимом вставки и обычным режимом Vim. Смотрим на необычный способ освободить руки и ускорить работу в редакторе.
Консольный интерфейс tig помогает просматривать историю Git, состояние репозитория, изменения отдельных блоков и результаты поиска. Утилита устанавливается одной командой и дополняет нативные команды Git.
Утилита Spacer добавляет заметные разделители между всплесками активности в выводе tail -f. Подключаем её к логам Nginx одной командой и упрощаем быстрый просмотр событий.
Комбинация Ctrl+X, Y и имени файла zzy запускает пасхалку в GNU nano. Вероятно, это отсылка к чит-коду xyzzy из Colossal Cave Adventure.
ZType превращает тренировку слепой печати в космическую игру. Есть оригинальная версия и модификация с поддержкой русского языка.
You Are the OS предлагает распределять процессы по процессорам, следить за памятью и отправлять задачи на диск. Браузерная игра на выживание ОС.
Bash-скрипт whitepass генерирует пароль из пробелов и других невидимых символов. Экспериментальная идея и необычная проверка форм авторизации.
ssh_commander выполняет команды по SSH сразу на нескольких серверах и умеет читать инструкции из файла. Подходит для быстрых манипуляций без циклов и Ansible.
Небольшой проект psh показывает исходники командной оболочки на Rust. В репозитории всего около десяти файлов, поэтому код удобно изучать.
Bash-скрипт QEMU-QuickBoot упрощает создание и загрузку виртуальных машин QEMU через графический интерфейс Zenity. Можно выбрать физическое устройство, ISO, VHD или другой образ и запустить установку с BIOS либо UEFI.
Puter запускает рабочий стол, приложения и урезанный терминал прямо в браузере, а сам проект можно развернуть в Docker. Смотрим, чем полезна открытая браузерная операционная система для маломощных устройств и удалённой работы.
Mechvibes воспроизводит звуки механических переключателей на обычной клавиатуре в Linux, Windows и macOS. Можно выбрать готовый набор кейкапов, настроить громкость или загрузить собственные звуки для отдельных клавиш.
grep.app ищет строки кода сразу по миллионам публичных Git-репозиториев и заодно показывает последствия случайной публикации API-ключей и приватных данных. Инструмент полезен для аудита открытого кода и проверки собственных …
goManageDocker добавляет текстовый интерфейс для управления образами, контейнерами и томами Docker без длинных команд. Инструмент устанавливается одной shell-командой и подходит для локальных пет-проектов.
Сравниваем вероятность неисправимых ошибок чтения у WD Blue, WD Gold, SAS Toshiba и SSD Micron. Объясняем, почему RAID не всегда защищает от повреждённых данных и как контрольные суммы ZFS помогают обнаруживать ошибки.
Практический опыт подготовки большого самоучителя по Bash сначала в Markdown и Pandoc, а затем в LibreOffice. Разбираем ограничения таблиц, кириллицы, UTF-символов и PDF-вёрстки, которые стали заметны после девятнадцати глав.
Личный опыт постепенного отказа от алкоголя без рекомендаций и универсальных рецептов. Автор рассказывает, какие последствия употребления заставили изменить привычки и почему одна рюмка со временем стала не нужна.
Настраиваем разные правила sshd для пользователей и адресов через блок Match. Рассматриваем парольную аутентификацию последнего шанса, шаблоны условий и проверку итоговой конфигурации командой sshd -T -C.
Показываем, как отфильтровать строки одного текстового файла по списку из другого с помощью конструкции NR == FNR и массива awk. Разбираем работу NR, FNR и next, выбор столбцов и ограничение по памяти без обязательной …
Личный опыт постепенного снижения веса со 130 до 85 килограммов без краткосрочной диеты. Автор рассказывает об изменении питания, размере порций, периодах стабилизации веса и безопасном темпе похудения.
Строим связку из SSH-бастиона и изолированной машины без выхода в интернет для удалённых пользователей. Настраиваем ключи, принудительную оболочку и автоматический переход на внутренний сервер.
Пишем Bash-watchdog, который проверяет доступность интернета и наращивает интервалы попыток восстановления связи. Для физической перезагрузки роутера подключаем недорогое USB-реле и управляем им через последовательный порт.
Сравниваем X11 Forwarding и RDP в Docker для удалённой работы с графическими приложениями на Linux-сервере. Разбираем подключение GPU NVIDIA и AMD, необходимые устройства контейнера и безопасный SSH-туннель.
Разбираем обработку стрелок, Home, End и F1–F12 в интерактивном Bash-скрипте. Функция GET_KEY переводит многобайтные управляющие последовательности терминала в hexadecimal-коды.
Личный опыт снижения веса со 130 до 85 килограммов и его дальнейшего контроля. Ежедневное взвешивание, режим питания и сна, физическая нагрузка и наблюдения о колебаниях веса.
Сценарий отката сетевой конфигурации удалённого Linux-сервера без IPMI и локального администратора. Резервная копия /etc, задание cron после перезагрузки и проверка успешного входа по SSH.
Личный опыт отказа от курения после нескольких неудачных попыток. Автор рассказывает о собственных ошибках, первых тяжёлых месяцах и приёмах, которые использовал в 1998 году.
Автор превращает безвентиляторный Celeron N2840 в домашний роутер и сравнивает pfSense, Debian и IPFire. В материале — проблемы Wi-Fi, реальные замеры iperf3, нагрев корпуса и итог эксперимента.
Знаешь это чувство, когда ждёшь регресс дольше, чем сам работаешь? У меня рантайм был 34 минуты, и две трети времени уходило на очистку QA-стенда. Решение пришло через Docker и Testcontainers — теперь тесты летят за 14 минут, а …
Навигация по знаниям
Скрипты, однострочники, awk, cron, mapfile и практическая автоматизация рутины.
→ DevOps и рабочие процессыCI/CD, инфраструктура, Ansible, пайплайны, рабочие практики и инженерная рутина.
→ Docker, Podman и контейнерыВсе про контейнеры: Docker, Podman, сборки, окружение, управление и смежные инструменты.
→ Linux и администрированиеСистемное администрирование Linux, диагностика, утилиты, права, systemd, файловые системы и сеть.
→
Загружаем свежие комментарии…