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 предоставляет полноценную Linux‑окружение на Android‑устройствах. Одной из ключевых возможностей любой UNIX‑системы является планирование задач. В этой статье мы рассмотрим два самых популярных механизма автоматизации в Termux: cron и systemd. Вы узнаете, как установить и настроить каждый из них, а также получите готовые примеры, которые можно сразу использовать в своих проектах.

cron в Termux

Классический планировщик cron уже давно зарекомендовал себя как надёжный способ выполнять скрипты по расписанию. В Termux он доступен через пакет cronie.

pkg update && pkg install cronie

После установки необходимо включить демон crond. В Termux это делается через сервис termux-services:

pkg install termux-services
termux-services enable crond
termux-services start crond

Файл расписания хранится в ~/.crontab. Его можно отредактировать любой удобной программой, например vim:

vim ~/.crontab

Пример простого задания, которое будет запускать скрипт 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

После сохранения изменений необходимо загрузить их в планировщик:

crontab ~/.crontab

Для проверки списка активных задач используйте:

crontab -l

Важно помнить, что в Termux окружение PATH может отличаться от привычного Linux. Чтобы гарантировать корректный запуск, указывайте полные пути к скриптам и используйте абсолютные пути к интерпретатору, например /data/data/com.termux/files/usr/bin/bash.

systemd в Termux

Начиная с версии 0.118 Termux поддерживает эмуляцию systemd через пакет termux-services. Это открывает возможности создавать сервисы, управлять их зависимостями и получать статус в привычном виде.

pkg install termux-services

Для создания собственного сервиса необходимо создать unit‑файл в директории ~/.termux/boot. Формат файла аналогичен стандартным unit‑файлам systemd.

# ~/.termux/boot/my-backup.service
[Unit]
Description=Daily backup script
After=network.target

[Service]
Type=oneshot
ExecStart=/data/data/com.termux/files/home/scripts/backup.sh
StandardOutput=append:/data/data/com.termux/files/home/logs/backup.log
StandardError=append:/data/data/com.termux/files/home/logs/backup.log

[Install]
WantedBy=multi-user.target

После создания файла его необходимо активировать и запустить:

termux-services enable my-backup.service
termux-services start my-backup.service

Для периодического запуска можно использовать таймеры systemd. Таймер хранится в файле с расширением .timer:

# ~/.termux/boot/my-backup.timer
[Unit]
Description=Run backup daily at 02:30

[Timer]
OnCalendar=-- 02:30:00
Persistent=true

[Install]
WantedBy=timers.target

Активируем и запускаем таймер:

termux-services enable my-backup.timer
termux-services start my-backup.timer

Проверить статус можно с помощью стандартных команд systemctl (символически связаны с termux-services):

systemctl status my-backup.service
systemctl list-timers --all

Сравнительная таблица

Факторcronsystemd
Простота установкиДа (пакет cronie)Требует понимания unit‑файлов
Поддержка зависимостейНетЕсть (After=, Wants=)
Таймеры и отложенный запускОграничены синтаксисом crontabГибкие (OnCalendar, OnBootSec)
ЛогиНужно явно перенаправлятьВстроенные (StandardOutput/StandardError)
Управление статусомcrontab -l / pssystemctl status

Практические рекомендации

  • Для простых задач (ежедневные бэкапы, очистка кеша) cron будет быстрее в настройке.
  • Если требуется координация нескольких скриптов, ограничение по ресурсам или отложенный запуск после перезагрузки, предпочтительнее systemd с таймерами.
  • Всегда проверяйте права исполнения скриптов: chmod +x script.sh.
  • Указывайте полные пути к интерпретатору и файлам, так как окружение Termux может отличаться от обычного Linux.
  • Для отладки cron просматривайте системный лог Termux: logcat | grep crond. Для systemd используйте journalctl -u my-backup.service.

Заключение

Автоматизация в Termux теперь доступна на уровне полноценного Linux‑окружения. Выбор между cron и systemd зависит от сложности задачи и ваших предпочтений. Оба инструмента позволяют создавать надёжные и гибкие сценарии, которые будут работать даже при отсутствии активного экрана.

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

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

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

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