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

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

Разработка скрипта для безопасного резервного копирования данных Linux‑сервера через Termux с rsync и шифрованием GPG

Подробный гайд по созданию скрипта в Termux для резервного копирования Linux‑сервера с помощью rsync и шифрования GPG, включая настройку, автоматизацию и рекомендации по безопасности.

В современных инфраструктурах резервное копирование — один из ключевых элементов обеспечения доступности и целостности данных. Мы покажем, как start процесс резервного копирования прямо с мобильного устройства, используя Termux, rsync и шифрование GPG. По определению, start означает начать, вступить в действие (merriam-webster.com, dictionary.com).

Требования

  • Android‑устройство с установленным Termux.
  • Доступ к удалённому Linux‑серверу по SSH.
  • Установленные пакеты: rsync, openssh, gnupg, cronie (для планировщика).

Подготовка окружения в Termux

Установим необходимые инструменты:

pkg update && pkg upgrade -y
pkg install rsync openssh gnupg cronie -y

Создадим ключ GPG, который будет использоваться для шифрования резервных копий:

gpg --full-generate-key

Запомните Key ID — он понадобится в скрипте.

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

Сохраним скрипт в файле ~/backup.sh и сделаем его исполняемым:

cat > ~/backup.sh <<'EOF'
#!/data/data/com.termux/files/usr/bin/bash

# Параметры
REMOTE_USER="user"
REMOTE_HOST="example.com"
REMOTE_DIR="/var/www/html"
LOCAL_BACKUP_DIR="${HOME}/backups"
GPG_KEY_ID="YOUR_KEY_ID"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
ARCHIVE_NAME="backup_${TIMESTAMP}.tar.gz"
ENCRYPTED_NAME="${ARCHIVE_NAME}.gpg"

# Создаём локальную папку для резервных копий
mkdir -p "${LOCAL_BACKUP_DIR}"

# Шаг 1: rsync – синхронизация данных с сервера
rsync -avz --delete "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/" "${LOCAL_BACKUP_DIR}/${TIMESTAMP}/"
if [ $? -ne 0 ]; then
    echo "[ERROR] rsync завершился с ошибкой" >&2
    exit 1
fi

# Шаг 2: Архивируем скопированные файлы
tar -czf "${LOCAL_BACKUP_DIR}/${ARCHIVE_NAME}" -C "${LOCAL_BACKUP_DIR}/${TIMESTAMP}" .
if [ $? -ne 0 ]; then
    echo "[ERROR] Создание архива не удалось" >&2
    exit 1
fi

# Шаг 3: Шифруем архив GPG
gpg --yes --batch -o "${LOCAL_BACKUP_DIR}/${ENCRYPTED_NAME}" -r "${GPG_KEY_ID}" --encrypt "${LOCAL_BACKUP_DIR}/${ARCHIVE_NAME}"
if [ $? -ne 0 ]; then
    echo "[ERROR] Шифрование не удалось" >&2
    exit 1
fi

# Удаляем промежуточные файлы
rm -rf "${LOCAL_BACKUP_DIR}/${TIMESTAMP}" "${LOCAL_BACKUP_DIR}/${ARCHIVE_NAME}"

echo "[INFO] Резервная копия успешно создана: ${ENCRYPTED_NAME}"
EOF
chmod +x ~/backup.sh

В скрипте реализованы три ключевых этапа: rsync для передачи файлов, tar для упаковки и gpg для шифрования. Каждый шаг проверяется на успешность, что повышает надёжность процесса.

Объяснение ключевых параметров rsync

  • -a – архивный режим (рекурсивно, сохраняет права, тайм‑штампы).
  • -v – подробный вывод.
  • -z – сжатие данных при передаче.
  • --delete – удалять файлы в целевой директории, которых нет на источнике (синхронная копия).

Автоматизация с помощью планировщика (cronie)

Для регулярного запуска резервного копирования создадим задачу в crontab:

crontab -e

Добавим строку, например, для ежедневного запуска в 02:30:

30 2   * ${HOME}/backup.sh >> ${HOME}/backup.log 2>&1

Запустим службу cron в Termux:

sv enable crond
sv start crond

Рекомендации по безопасности

  • Храните приватный ключ GPG в безопасном месте; используйте парольную фразу.
  • Ограничьте доступ к директории ~/backups (chmod 700).
  • Для SSH‑подключения используйте ключи, а не пароли; добавьте StrictHostKeyChecking=no только в тестовых средах.
  • Регулярно проверяйте логи backup.log на предмет ошибок.

Тестирование процесса

Запустите скрипт вручную, убедитесь, что архив .gpg создаётся и может быть расшифрован:

gpg --decrypt ${HOME}/backups/backup_20240101_023000.tar.gz.gpg | tar -tz

Если вывод показывает список файлов, значит всё работает корректно.

Заключение

Мы создали полностью автоматизированный процесс резервного копирования Linux‑сервера, запущенный из Termux, использующий rsync для быстрой синхронизации и GPG для надёжного шифрования. Такой подход позволяет администраторам управлять резервными копиями прямо со смартфона, сохраняя при этом высокий уровень защиты данных.

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

Источники: [merriam-webster.com](https://www.merriam-webster.com/dictionary/start), [dictionary.com](https://www.dictionary.com/browse/start)

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

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

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