Skip to content

Latest commit

 

History

History
115 lines (88 loc) · 5.53 KB

File metadata and controls

115 lines (88 loc) · 5.53 KB

loopner - Поможеть оптимизировать рутину

Bash License: MIT Version

Russian English

loopner (короткое имя lpn) – это утилита командной строки для многократного выполнения любой команды с задержками, обработкой ошибок и красивой статистикой. Идеально подходит для нагрузочного тестирования, мониторинга, повторяющихся операций и обучения.

✨ Возможности

  • 🔁 Повторение команды заданное количество раз
  • ⏱️ Задержка между запусками (можно дробные секунды, например 0.5)
  • 🚦 Выбор поведения при ошибке: остановиться или продолжить (-k)
  • 🤫 Тихий режим (-q) – только вывод самой команды
  • 🗣️ Подробный режим (-v) – время выполнения каждого запуска
  • 📊 Итоговая статистика: успешные/неудачные попытки, общее время
  • 🧩 Поддержка любых команд и аргументов (включая свои опции через --)
  • 🩺 Проверка существования команды до первого запуска
  • 🛑 Корректная обработка Ctrl+C и SIGTERM
  • 🔗 Два имени в системе: loopner и короткое lpn

🚀 Использование

loopner [OPTIONS] [--] [args...] # вместо loopner возможно lpn

Опции

Опция Длинная версия Описание
-n N --count N Количество повторений (по умолчанию 1)
-d SEC --delay SEC Задержка между запусками (по умолчанию 0)
-k --keep-going Продолжать при ошибке (иначе останов)
-q --quiet Только вывод команды, без служебных сообщений
-v --verbose Детальный вывод (время, статус)
-h --help Показать справку
-- Разделитель: всё после – команда

📝 Примеры

# Выполнить ls -la 5 раз
loopner -n 5 ls -la

# Короткое имя lpn, 3 пинга с задержкой 1 секунда
lpn -n 3 -d 1 -- ping -c 1 google.com

# Продолжать даже при ошибках (2 раза, завершится с кодом 2)
lpn -k -n 2 false

# Тихий режим – только вывод команд
loopner -q -n 100 -- curl -s https://api.ipify.org

# Подробный режим с временем выполнения
loopner -v -n 4 -- sleep 0.5

📊 Коды возврата

Код Значение
0 Все запуски успешны
1…254 Количество неудачных запусков (если использован -k)
127 Команда не найдена
130 Прервано пользователем (Ctrl+C)
143 Завершено по SIGTERM

🛠️ Требования

  • bash 4.0 или выше
  • bc (для вычислений с плавающей точкой) – обычно предустановлен
  • getopt (расширенная версия, входит в util-linux)

Проверьте наличие getopt и bc:

which getopt bc

📦 Установка

Способ 1 – install.sh (рекомендуется)

git clone https://github.com/nesgen/loopner.git
cd loopner
chmod +x install.sh
sudo ./install.sh

Способ 2 – Makefile

git clone https://github.com/nesgen/loopner.git
cd loopner
sudo make install

Способ 3 – curl

sudo curl -L https://raw.githubusercontent.com/nesgen/loopner/main/loopner -o /usr/local/bin/loopner && \
sudo chmod +x /usr/local/bin/loopner && \
sudo ln -s /usr/local/bin/loopner /usr/local/bin/lpn

Удаление

sudo make uninstall   # если установили через Makefile

# или вручную:
sudo rm /usr/local/bin/loopner /usr/local/bin/lpn

🤝 Внося свой вклад

Приветствуются любые замечания и запросы на изменение кода! Пожалуйста, сначала создайте заявку, чтобы обсудить любые существенные изменения.