Как запускать команды параллельно в Bash
Запускаем фоновые команды в Bash через оператор &, управляем заданиями с помощью wait и jobs и получаем PID через $!. Собираем параллельный загрузчик файлов и сравниваем нативный подход с GNU Parallel.
Фото: Markus Spiske / Pexels
← Все темы
Статьи о Linux: настройка серверов, оптимизация систем, администрирование и лучшие практики для DevOps инженеров.
Запускаем фоновые команды в Bash через оператор &, управляем заданиями с помощью wait и jobs и получаем PID через $!. Собираем параллельный загрузчик файлов и сравниваем нативный подход с GNU Parallel.
Используем пакет PSSH для параллельного запуска команд и копирования файлов на группу Linux-серверов. Настраиваем SSH-ключи и файл инвентаря, работаем с parallel-ssh, parallel-scp, prsync, pnuke и pslurp.
Воспроизводим ситуацию, когда процесс продолжает писать в удалённый лог через открытый файловый дескриптор. Восстанавливаем содержимое через /proc, а затем с помощью GDB переключаем работающий процесс на новый файл без …
Монтируем удалённое хранилище через SSHFS и берём подключение под контроль systemd. Создаём mount-, timer- и service-юниты, которые ждут сеть, проверяют маркерный файл и автоматически перемонтируют шару после сбоя.
Разбираемся, почему Linux при нехватке памяти завершает не обязательно самый большой процесс. Смотрим oom_score и oom_adj, меняем вероятность завершения процесса и задаём OOMScoreAdjust в systemd-юните.
Строим простой индекс для большого отсортированного текстового файла с помощью ассоциативного массива Bash и sed. Ограничиваем поиск диапазоном строк по первой букве и ускоряем извлечение данных без тяжёлой СУБД.
Настраиваем условный запуск systemd-юнитов через ConditionPathExists и другие директивы Condition. Сравниваем пропуск юнита с ошибкой Assert и комбинируем проверки существования и монтирования ресурсов.
Почему df показывает 100% занятого места, а du и ncdu не находят крупные файлы. Разбираю Hidden Space Explorer (hsed) — TUI-утилиту для поиска удалённых, но открытых файлов в Linux, освобождения дискового пространства и …
Как блоки Match в sshd_config могут переопределить глобальные настройки SSH, даже если в 00-security.conf уже задан PermitRootLogin no. Разбираю приоритет параметров в Match, проверку итоговой конфигурации через sshd -T и -C, …
Почему SSH игнорирует настройки в sshd_config, хотя конфиг кажется правильным? Разбираю порядок обработки Include и файлов sshd_config.d, правило первого найденного значения параметра и распространённую ловушку с PermitRootLogin. …
Как быстро сделать полный бэкап WSL-дистрибутива в Windows и перенести рабочее окружение Linux без долгого копирования файлов. Показываю команды wsl --shutdown и wsl --export для создания tar-архива Ubuntu, объясняю, зачем …
Мне за 30, я видел много скриптов с дьявольскими отрицаниями, и каждый раз хотелось задушить автора. Поэтому я решил написать пост, в котором покажу как превратить кошмарную конструкцию в простой if-else без единого лишнего знака. …
Linux — основная категория BashDays, посвященная системному администрированию, DevOps и эксплуатации серверов.
В разделе публикуются материалы по:
Здесь собраны практические статьи с примерами команд, конфигураций и разбором реальных кейсов из эксплуатации Linux-серверов.