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

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

Автоматизация резервного копирования и восстановления данных в Termux

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

Почему резервное копирование важно в Termux

Android‑устройства часто подвержены сбоям, обновлениям ОС и случайному удалению приложений. Termux хранит конфигурации, скрипты, SSH‑ключи и другие важные файлы в домашней директории $HOME. Потеря этих данных приводит к необходимости заново настраивать окружение, что отнимает время и усилия. Регулярные автоматические бэкапы позволяют быстро восстановить рабочее состояние.

Подготовка среды

  • Обновите репозитории: pkg update && pkg upgrade
  • Установите необходимые пакеты: pkg install rsync tar rclone termux-api

Пакет termux-api нужен для отправки уведомлений, а rclone – для синхронизации с облачными хранилищами.

Создание скрипта резервного копирования

#!/data/data/com.termux/files/usr/bin/bash
# backup.sh – резервное копирование конфигураций Termux

BACKUP_DIR="$HOME/backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
TARGET="${BACKUP_DIR}/termux_backup_${TIMESTAMP}.tar.gz"

mkdir -p "$BACKUP_DIR"

# Список файлов и каталогов, которые необходимо сохранить
INCLUDE=(
    "$HOME/.bashrc"
    "$HOME/.profile"
    "$HOME/.config"
    "$HOME/.ssh"
    "$HOME/storage"
)

# Создаём архив
tar -czf "$TARGET" "${INCLUDE[@]}"

# Если архив успешно создан, отправляем его в облако (опционально)
if [ $? -eq 0 ]; then
    # Пример отправки в удалённый сервер через rsync
    # rsync -avz "$TARGET" user@remote:/path/to/backup/
    # Или через rclone (предварительно настроенный remote)
    # rclone copy "$TARGET" remote:termux_backups/
    termux-notification --title "Backup" --content "Backup completed successfully"
else
    termux-notification --title "Backup" --content "Backup failed" --priority high
fi

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

chmod +x $HOME/backup.sh

Автоматизация с помощью планировщика задач

Termux поддерживает два популярных механизма планирования: crontab и termux-job-scheduler. Ниже рассмотрены оба варианта.

Вариант 1 – cron

# Откройте таблицу crontab
crontab -e

# Добавьте строку для ежедневного бэкапа в 02:00
0 2    $HOME/backup.sh

После сохранения cron будет автоматически выполнять скрипт в указанное время.

Вариант 2 – termux-job-scheduler

# Планируем задачу на каждый день в 02:00
termux-job-scheduler --schedule "0 2    $HOME/backup.sh"

Для более гибкой настройки можно использовать параметр --interval или --exact.

Резервное копирование в облако

Для надёжного хранения бэкапов рекомендуется использовать облачные сервисы (Google Drive, Dropbox, Yandex.Disk и др.). С помощью rclone процесс полностью автоматизирован.

# Инициализация rclone (один раз)
rclone config

# Пример копирования последнего бэкапа в Google Drive
LATEST=$(ls -t $HOME/backup/termux_backup_*.tar.gz | head -n1)
rclone copy "$LATEST" gdrive:termux_backups/

Скрипт восстановления

#!/data/data/com.termux/files/usr/bin/bash
# restore.sh – восстановление из резервной копии

BACKUP_FILE=$1

if [[ -z "$BACKUP_FILE" ]]; then
    echo "Usage: $0 /path/to/backup.tar.gz"
    exit 1
fi

if [[ ! -f "$BACKUP_FILE" ]]; then
    echo "File not found: $BACKUP_FILE"
    exit 1
fi

# Распаковываем архив в домашнюю директорию
tar -xzf "$BACKUP_FILE" -C $HOME

if [ $? -eq 0 ]; then
    termux-notification --title "Restore" --content "Restore completed successfully"
else
    termux-notification --title "Restore" --content "Restore failed" --priority high
fi

Запуск скрипта:

chmod +x $HOME/restore.sh
$HOME/restore.sh $HOME/backup/termux_backup_20231115_020000.tar.gz

Контроль целостности и уведомления

Для уверенности в том, что резервное копирование прошло без ошибок, можно добавить проверку хеш‑сумм и отправку уведомлений через termux-notification (пример уже показан в скрипте backup.sh).

Лучшие практики

  • Регулярность: минимум один бэкап в сутки, лучше – несколько раз в день при активной работе.
  • Хранение нескольких копий: сохраняйте несколько последних архивов, чтобы иметь возможность откатиться к более ранней версии.
  • Шифрование: при передаче в облако используйте gpg или openssl для шифрования архива.
  • Тестовое восстановление: периодически проверяйте процесс восстановления, чтобы убедиться в работоспособности резервных копий.
  • Мониторинг: настройте автоматическую отправку логов на ваш email или в Telegram через curl / telegram-cli.

Заключение

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

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

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

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

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

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

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