Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

Как автоматизировать резервное копирование архива с Debian 12 в облако Mega.nz

Как автоматизировать резервное копирование архива с Debian 12 в облако Mega.nz

 

 

 

В современном мире безопасность данных — одна из важнейших задач для любого администратора или пользователя. Облачные сервисы, такие как Mega.nz, предоставляют удобное и надежное хранилище для ваших резервных копий. В этой статье мы рассмотрим, как настроить автоматическое копирование архива с сервера Debian 12 в облако Mega.nz с помощью официального клиента `megacmd`, добавить проверку свободного места и зашифровать архив перед загрузкой.


Почему Mega.nz и Debian 12?

  • Mega.nz — популярное облачное хранилище с бесплатным тарифом до 50 ГБ, поддерживающее шифрование данных.
  • Debian 12 — современная стабильная версия Linux, широко используемая на серверах.
  • megacmd — официальный клиент Mega для командной строки, позволяющий автоматизировать загрузку и скачивание файлов.

Шаг 1. Установка MegaCMD на Debian 12

Для начала установим официальный клиент Mega:

wget https://mega.nz/linux/repo/Debian_12/amd64/megacmd-Debian_12_amd64.deb && sudo apt install "$PWD/megacmd-Debian_12_amd64.deb"

Проверьте установку:

mega-login --version

Шаг 2. Авторизация в Mega.nz

Выполните вход в ваш аккаунт Mega:

mega-login your_email@example.com your_password

Важно: Для безопасности рекомендуется выполнить вход вручную один раз, чтобы сохранить сессию. Это позволит запускать скрипты без указания пароля.


Шаг 3. Создаем скрипт для резервного копирования с проверкой свободного места и шифрованием

Создайте файл `upload_to_mega.sh` со следующим содержимым:

#!/bin/bash

# Пути к файлам
LOCAL_FILE="/home/user/backup/archive.tar.gz"
ENCRYPTED_FILE="/home/user/backup/archive.tar.gz.gpg"
MEGA_REMOTE_PATH="/Backups/archive.tar.gz.gpg"
PASSPHRASE_FILE="/home/user/.gpg_passphrase"

# Шифрование архива с помощью gpg (AES256)
if [ ! -f "$ENCRYPTED_FILE" ]; then
  gpg --batch --yes --passphrase-file "$PASSPHRASE_FILE" --symmetric --cipher-algo AES256 "$LOCAL_FILE"
  if [ $? -ne 0 ]; then
    echo "$(date): Ошибка шифрования файла" >&2
    exit 1
  fi
fi

# Получаем размер зашифрованного файла
FILE_SIZE=$(stat -c%s "$ENCRYPTED_FILE")

# Получаем свободное место в облаке Mega (в байтах)
FREE_SPACE=$(mega-df | grep "USED STORAGE" | awk '{used=$3; total=$NF; free=total-used; printf "%.0f\n", free}')

if (( FILE_SIZE > FREE_SPACE )); then
  echo "$(date): Недостаточно места в Mega для загрузки файла (требуется $FILE_SIZE, свободно $FREE_SPACE)" >&2
  exit 1
fi

# Загружаем зашифрованный файл в облако Mega
mega-put "$ENCRYPTED_FILE" "$MEGA_REMOTE_PATH"
if [ $? -eq 0 ]; then
  echo "$(date): Зашифрованный файл успешно загружен в Mega.nz"
else
  echo "$(date): Ошибка загрузки файла" >&2
  exit 1
fi

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

chmod +x upload_to_mega.sh

Шаг 4. Создание файла с паролем для gpg

Для автоматизации шифрования создайте файл с паролем:

echo "ВашСложныйПароль" > /home/user/.gpg_passphrase
chmod 600 /home/user/.gpg_passphrase

Важно: Храните этот файл в надежном месте с ограниченными правами доступа.


Шаг 5. Автоматизация с помощью cron

Чтобы скрипт запускался автоматически, добавим его в расписание cron.

Откройте редактор crontab:

crontab -e

Добавьте строку, чтобы запускать скрипт, например, каждый день в 2 часа ночи:

0 2 * * * /home/user/upload_to_mega.sh >> /home/user/upload_to_mega.log 2>&1
  • `>> /home/user/upload_to_mega.log 2>&1` — сохраняет вывод скрипта в лог-файл для последующего анализа.

Итог

В этой статье мы рассмотрели, как:

  • Установить официальный клиент MegaCMD на Debian 12;
  • Авторизоваться в Mega.nz;
  • Создать скрипт, который шифрует архив с помощью GPG;
  • Проверять свободное место в облаке Mega перед загрузкой;
  • Автоматически загружать зашифрованный архив в облако;
  • Настроить автоматический запуск скрипта через cron.

Это позволит вам надежно и безопасно автоматизировать резервное копирование важных данных в облако Mega.nz.

 

29 июня 2025, 14:25    Александр Linux 0    157 0

 

 

 

 



Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.