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

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

Тема 8: Автоматизация задач с помощью Termux: скрипты

Termux предоставляет полноценное Linux‑окружение на Android‑устройстве. Благодаря установленным пакетам вы можете писать скрипты на bash, python, perl и многих других языках, а затем запускать их автоматически, как на обычном сервере.

Установка и настройка окружения

Перед тем как писать скрипты, необходимо подготовить базовые инструменты:

  • Обновление пакетов:
    pkg update && pkg upgrade -y
  • Установка редактора (nano, vim, micro):
    pkg install nano vim -y
  • Установка интерпретаторов:
    pkg install python bash -y
  • Создание директории для скриптов:
    mkdir -p ~/scripts && cd ~/scripts

Написание простых Bash‑скриптов

Самый простой способ автоматизации – скрипты на bash. Пример скрипта, который проверяет наличие подключения к Wi‑Fi и отправляет уведомление:

#!/data/data/com.termux/files/usr/bin/bash
# Проверяем статус Wi‑Fi
if termux-wifi-connectioninfo | grep -q ""; then
    termux-notification --title "Wi‑Fi" --content "Подключено"
else
    termux-notification --title "Wi‑Fi" --content "Нет подключения"
fi

Сделайте файл исполняемым:

chmod +x ~/scripts/check_wifi.sh

Запуск: ~/scripts/check_wifi.sh

Использование Python и других языков

Для более сложных задач удобно применять Python. Установите необходимые пакеты через pip:

pip install requests schedule

Пример скрипта, который каждый час отправляет данные о батарее на ваш сервер:

#!/data/data/com.termux/files/usr/bin/python3
import requests, subprocess, json, time
API_URL = "https://example.com/battery"
while True:
    # Получаем информацию о батарее через termux-battery-status
    result = subprocess.check_output(['termux-battery-status', '--json'])
    data = json.loads(result)
    payload = {
        'level': data['percentage'],
        'status': data['status']
    }
    try:
        requests.post(API_URL, json=payload, timeout=5)
    except Exception as e:
        print('Ошибка отправки:', e)
    time.sleep(3600)  # 1 час

Сделайте скрипт исполняемым и запустите в фоне:

chmod +x ~/scripts/battery_report.py
nohup ~/scripts/battery_report.py &

Планировщик задач в Termux

Для периодического запуска скриптов используйте cron или встроенный termux-job-scheduler.

  • cron – классический планировщик. Установите пакет:
pkg install cronie -y

Запустите службу:

sv-enable crond && sv up crond

Отредактируйте таблицу задач:

crontab -e

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

30 2   * /data/data/com.termux/files/home/scripts/backup.sh
  • termux-job-scheduler – API Android для планирования задач. Пример регистрации задачи, которая будет запускаться каждые 15 минут:
termux-job-scheduler --schedule "-f ~/scripts/check_wifi.sh -i 900000"

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

termux-job-scheduler --cancel-all

Примеры реальных автоматизаций

  • Резервное копирование файлов – скрипт, который архивирует выбранные директории и отправляет их в облако (Google Drive, Dropbox) через rclone.
    #!/data/data/com.termux/files/usr/bin/bash
    DATE=$(date +%Y%m%d_%H%M)
    ARCHIVE="/sdcard/backup_${DATE}.tar.gz"
    tar -czf "$ARCHIVE" ~/documents ~/pictures
    rclone copy "$ARCHIVE" remote:backups
    rm "$ARCHIVE"
    
  • Мониторинг системных ресурсов – скрипт, который каждые 5 минут собирает данные о CPU, RAM и отправляет их в Telegram.
    #!/data/data/com.termux/files/usr/bin/bash
    TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
    CHAT_ID="-1001234567890"
    while true; do
        CPU=$(top -b -n1 | grep "%Cpu" | awk '{print $2+$4}')
        MEM=$(free -m | awk '/Mem:/ {print $3"/"$2" MB"}')
        MSG="CPU: $CPU%
    Memory: $MEM"
        curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d chat_id=$CHAT_ID -d text="$MSG"
        sleep 300
    done
    
  • Уведомления о новых SMS – скрипт, который проверяет входящие сообщения и отправляет их в ваш email.
    #!/data/data/com.termux/files/usr/bin/bash
    LAST_ID=0
    while true; do
        IDS=$(termux-sms-list --inbox | jq -r '.[].id')
        for ID in $IDS; do
            if (( ID > LAST_ID )); then
                MSG=$(termux-sms-list --inbox -i $ID | jq -r '.[] | "From: \(.address)
    \(.body)"')
                echo -e "$MSG" | mail -s "Новое SMS" user@example.com
                LAST_ID=$ID
            fi
        done
        sleep 60
    done
    

Лучшие практики и безопасность

  • Всегда задавайте права доступа к скриптам chmod 700 script.sh, чтобы избежать случайного исполнения другими пользователями.
  • Храните конфиденциальные данные (токены, пароли) в отдельном файле с ограниченными правами и импортируйте их в скрипт.
  • Логируйте выполнение задач: перенаправляйте вывод в файл > /data/data/com.termux/files/home/logs/script.log 2>&1.
  • Регулярно проверяйте статус служб sv status crond и обновляйте пакеты pkg upgrade -y.

Заключение

Termux открывает широкие возможности для автоматизации задач на Android‑устройствах. С помощью Bash‑скриптов, Python и планировщиков вы можете создавать резервные копии, мониторить ресурсы, отправлять уведомления и интегрировать мобильный телефон в ваш IT‑ландшафт. При правильной настройке и соблюдении рекомендаций по безопасности скрипты в Termux станут надёжным инструментом в арсенале любого специалиста.

Профессиональные IT‑услуги в Рыбинске предоставляет компания RybinskLab. Мы поможем внедрить автоматизацию, настроить серверы и обеспечить надёжную поддержку ваших проектов.

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

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

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

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

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