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‑устройствах.