We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Автоматизация задач в Termux с помощью Cron и systemd‑подобных решений

Подробный гайд по настройке автоматических задач в Termux: использование Cron, Termux:Boot, Termux:Service и системных планировщиков для стабильной работы скриптов на Android.

Termux – это мощный Linux‑эмулятор для Android, который позволяет запускать скрипты, управлять пакетами и интегрировать мобильное устройство в инфраструктуру DevOps. Часто возникает необходимость выполнять задачи автоматически: бэкапы, синхронизацию, мониторинг или периодический запуск скриптов. В этой статье мы рассмотрим два основных подхода к автоматизации в Termux – традиционный cron и решения, близкие к systemd, такие как Termux:Boot и Termux:Service.

Почему автоматизация важна в Termux

  • Сокращение ручных действий – скрипт запускается без вашего вмешательства.
  • Повышение надёжности – задачи выполняются даже после перезагрузки устройства.
  • Экономия батареи – планировщики могут запускать процессы только в необходимое время.
  • Возможность интеграции с облачными сервисами и CI/CD пайплайнами.

Cron в Termux

Крон – проверенный временем планировщик задач в Unix‑подобных системах. В Termux он доступен через пакет cronie (или busybox-cron).

Установка

pkg update && pkg install cronie

После установки необходимо запустить демон crond и добавить его в автозапуск.

Запуск демона

sv-enable crond
sv up crond

Команды используют sv – простой менеджер сервисов, входящий в состав пакета runit, который уже предустановлен в Termux.

Создание расписания

Откройте файл crontab:

crontab -e

Пример записи, которая будет выполнять скрипт backup.sh каждый день в 02:30:

30 2    /data/data/com.termux/files/home/scripts/backup.sh >> /data/data/com.termux/files/home/logs/backup.log 2>&1

Обратите внимание на полные пути, потому что cron запускает задачи в ограниченной среде без переменных $PATH и $HOME.

Тестирование

crontab -l   # показать текущие задания
sv status crond   # убедиться, что демон работает

Systemd‑подобные решения в Termux

Android не использует systemd, однако в Termux есть несколько инструментов, которые позволяют имитировать его поведение.

Termux:Boot

Это официальное приложение от разработчиков Termux, которое автоматически запускает скрипты из каталога ~/.termux/boot после каждой загрузки устройства.

# Установить приложение из Google Play или F-Droid
pkg install termux-api
# Создать директорию для скриптов автозапуска
mkdir -p ~/.termux/boot
# Пример скрипта, запускающего сервер Flask при старте
cat > ~/.termux/boot/start_flask.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
cd ~/projects/flask_app
export FLASK_APP=app.py
flask run --host=0.0.0.0 --port=5000 &
EOF
chmod +x ~/.termux/boot/start_flask.sh

После перезагрузки устройства скрипт будет выполнен автоматически.

Termux:Service

Пакет termux-services предоставляет возможность управлять «демонами» через sv (runit). Это близко к systemd‑юнитам, но проще в настройке.

pkg install termux-services
# Создать сервисный скрипт
mkdir -p ~/.termux/serviced
cat > ~/.termux/serviced/ssh.service <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
exec svlogd -tt /data/data/com.termux/files/home/logs/ssh.log
EOF
chmod +x ~/.termux/serviced/ssh.service
# Добавить в автозапуск
sv-enable ssh
sv up ssh

Сервис будет автоматически подниматься после запуска sv up ssh и останавливаться при выключении.

Termux:JobScheduler

Для задач, которые должны запускаться в определённое время, но без постоянного демона, можно воспользоваться termux-job-scheduler. Он использует встроенный Android JobScheduler.

pkg install termux-job-scheduler
# Запланировать задачу, которая выполнит скрипт каждые 15 минут
termux-job-scheduler -r 900 -e /data/data/com.termux/files/home/scripts/cleanup.sh

Параметр -r задаёт интервал в секундах, а -e – путь к исполняемому файлу.

Сравнение Cron и systemd‑подобных подходов

КритерийCron (cronie)Termux:Boot / Termux:Service
Запуск после перезагрузкиТребует отдельного автозапуска демонаВстроено в приложение (Boot) или через runit (Service)
Точность расписанияМинутная точностьТочно так же, но можно использовать Android JobScheduler для более гибких интервалов
Управление логамиТребуется вручную перенаправлять выводsvlogd автоматически сохраняет логи в отдельный файл
Потребление ресурсовПостоянный демон crondBoot – без демонов, Service – runit лёгкий (< 1 МБ RAM)
Гибкость конфигурацииТолько crontab‑файлПоддержка скриптов, env‑переменных, зависимостей между сервисами

Практические примеры

1. Автоматический бэкап базы данных SQLite каждые 6 часов

# Скрипт backup_sqlite.sh
#!/data/data/com.termux/files/usr/bin/sh
DB_PATH="$HOME/data/app.db"
BACKUP_DIR="$HOME/backups"
mkdir -p "$BACKUP_DIR"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
cp "$DB_PATH" "$BACKUP_DIR/app_$TIMESTAMP.db"

Запуск через cron:

0 /6   * $HOME/scripts/backup_sqlite.sh >> $HOME/logs/backup_sqlite.log 2>&1

Или через Termux:Service (один сервис, который будет запускаться каждые 6 ч с помощью termux-job-scheduler)

termux-job-scheduler -r 21600 -e $HOME/scripts/backup_sqlite.sh

2. Мониторинг изменения файлов и отправка уведомления

# Скрипт watch_changes.sh
#!/data/data/com.termux/files/usr/bin/sh
WATCH_DIR="$HOME/monitor"
inotifywait -m -e modify,create,delete "$WATCH_DIR" |
while read path action file; do
  termux-notification --title "File change" --content "$action $file" --priority high
done

Для постоянного мониторинга лучше использовать Termux:Service:

mkdir -p ~/.termux/serviced
cat > ~/.termux/serviced/watch.service <<'EOF'
#!/data/data/com.termux/files/usr/bin/sh
exec $HOME/scripts/watch_changes.sh
EOF
chmod +x ~/.termux/serviced/watch.service
sv-enable watch
sv up watch

Заключение

Автоматизация в Termux открывает широкий спектр возможностей: от простого планирования задач через cron до более продвинутого управления сервисами с помощью Termux:Boot, Termux:Service и Android JobScheduler. Выбор инструмента зависит от требований к надёжности, потреблению ресурсов и удобству конфигурации. Комбинируя эти подходы, вы сможете построить полноценную инфраструктуру на вашем Android‑устройстве.

Если вам требуется профессиональная настройка Termux‑окружения, разработка кастомных скриптов автоматизации или интеграция мобильных решений в корпоративные процессы – обратитесь в RybinskLab. Мы предоставляем консалтинг, разработку и поддержку решений под Android, включая Termux, Docker, CI/CD и облачные сервисы.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект