Termux – это терминальное приложение для Android, позволяющее работать с полноценной Linux‑окружением. Одним из самых востребованных направлений является автоматизация повторяющихся задач: резервное копирование, мониторинг системных ресурсов, отправка уведомлений и т.д. В статье рассматриваются два основных инструмента – планировщик cron и приложение Tasker – а также их совместное использование.
Почему именно cron и Tasker?
- cron – проверенный временем планировщик, работающий в фоне и поддерживающий привычный синтаксис
crontab. - Tasker – визуальный автоматизатор Android, позволяющий реагировать на события системы, геопозицию, состояние батареи и многое другое.
- Комбинация этих инструментов дает возможность запускать Linux‑скрипты из
cron, а также инициировать их из «умных» триггеров Tasker.
Установка и настройка cron в Termux
В базовой установке Termux пакет cron отсутствует, его необходимо установить из репозитория.
pkg update && pkg upgrade
pkg install cronie
После установки запускаем демон:
sv-enable crond
sv start crond
Создаём пользовательский crontab:
crontab -e
В открывшемся редакторе (по умолчанию nano) добавляем задания в привычном формате минуты часы день_месяца месяц день_недели команда. Пример – ежедневный бэкап папки ~/scripts в облако:
0 2 rsync -avz ~/scripts/ /sdcard/Backup/scripts/
Базовые правила написания cron‑заданий в Termux
- Указывайте полный путь к исполняемому файлу и к файлам‑данным, т.к. среда
cronне наследует переменные PATH из интерактивного сеанса. - Для скриптов на Python, Node.js и др. явно указывайте интерпретатор, например
/data/data/com.termux/files/usr/bin/python3. - Перенаправляйте вывод в лог‑файл, чтобы отследить возможные ошибки:
> /data/data/com.termux/files/home/cron.log 2>&1.
Tasker и плагин Termux:Tasker
Tasker умеет запускать любые команды, но для корректного взаимодействия с Termux рекомендуется использовать официальное расширение Termux:Tasker. Оно обеспечивает прямой доступ к окружению Termux без необходимости эмулировать ввод‑вывод.
Установка:
pkg install termux-tasker
После установки в Tasker появляется действие Run Command (Termux). В качестве команды можно указать любой скрипт или однострочную инструкцию.
Практические сценарии
1. Ежедневный бэкап и отправка в облако
Комбинация cron и Tasker позволяет не только создать резервную копию, но и автоматически отправить её в Google Drive через Tasker.
- Создаём скрипт
~/backup.sh:
#!/data/data/com.termux/files/usr/bin/bash
TIMESTAMP=$(date +%Y%m%d_%H%M)
BACKUP_DIR="/sdcard/Backup/scripts_$TIMESTAMP"
mkdir -p "$BACKUP_DIR"
rsync -avz ~/scripts/ "$BACKUP_DIR/"
echo "$BACKUP_DIR" > /data/data/com.termux/files/home/last_backup_path.txt
- Добавляем в
crontabзапуск скрипта в 02:00:
0 2 /data/data/com.termux/files/home/backup.sh >> /data/data/com.termux/files/home/cron.log 2>&1
- В Tasker создаём профиль Event → File → File Modified, указываем путь к
last_backup_path.txt. При изменении файла запускаем действие Run Command (Termux) с командой:
termux-share -a send -c text/plain -t "$(cat /data/data/com.termux/files/home/last_backup_path.txt)"
Tasker открывает окно выбора приложения для отправки (Google Drive, Dropbox и т.д.).
2. Мониторинг заряда батареи и уведомление
Tasker реагирует на изменение уровня батареи, а cron собирает статистику.
- В Tasker создаём профиль Event → Power → Battery Level, условие «меньше 20%». Действие – запуск скрипта
~/alert_low_battery.sh:
#!/data/data/com.termux/files/usr/bin/bash
termux-notification --title "⚠️ Низкий заряд" --content "Текущий уровень: $(termux-battery-status | jq -r .percentage)%"
- В cron добавляем запись, собирающую средний заряд за сутки (в 23:59):
59 23 termux-battery-status | jq -r .percentage >> /data/data/com.termux/files/home/battery_daily.log
3. Автоматическая очистка кэша и логов
Для поддержания свободного места удобно запускать очистку раз в неделю.
0 4 0 find /data/data/com.termux/files/home -type f -name ".log" -mtime +7 -delete
Tasker может дополнительно отправлять уведомление о выполненной очистке:
termux-notification --title "🧹 Очистка завершена" --content "Старые логи удалены"
4. Запуск скриптов по геопозиции
Tasker умеет определять местоположение. При прибытии в офис (GPS‑координаты) можно автоматически запустить скрипт, который подключит VPN и синхронизирует файлы.
#!/data/data/com.termux/files/usr/bin/bash
vpn_connect
rsync -avz ~/work/ /sdcard/OfficeSync/
В Tasker создаём профиль Location → Near с радиусом 100 м и указываем действие Run Command (Termux) со ссылкой на данный скрипт.
5. Интеграция cron‑заданий в Tasker UI
Если требуется управлять расписанием без редактирования crontab вручную, можно создать в Tasker переменную %CRON_ENTRY и использовать действие Run Command (Termux) для записи её в файл crontab.tmp, а затем выполнить:
crontab crontab.tmp && rm crontab.tmp
Отладка и лучшие практики
- Проверяйте вывод
cron.logпосле первого запуска задания. - Для отладки используйте
termux-battery-status,termux-wifi-connectioninfoи другие утилиты Termux. - Не забывайте о разрешениях:
WRITE_EXTERNAL_STORAGEиREAD_EXTERNAL_STORAGEнужны для доступа к/sdcard. - Регулярно обновляйте пакеты:
pkg update && pkg upgrade.
Заключение
Комбинация cron и Tasker открывает широкие возможности автоматизации в Termux: от простых расписаний до условных сценариев, зависящих от состояния устройства, геопозиции и внешних сервисов. Правильная настройка пути, логирование и тестирование позволяют создать надёжную систему, экономящую время и ресурсы.
Если вам нужен профессиональный аудит ваших скриптов, настройка сложных цепочек автоматизации или обучение работе с Termux, команда RybinskLab готова помочь. Мы предоставляем услуги консалтинга, разработку кастомных решений и поддержку инфраструктуры Android‑устройств.