Бекап в облако mega.co.nz через консоль linux

Задача делать регулярные автоматические бекапы на удалённый сервер. Бекапить будем на облачный сервис mega.co.nz, который предоставляет бесплатно 50 гб дискового пространства. Для работы с облаком имеются десктопные приложения под виндовс, линкус, мак, а так же под андройд и другие мобильные ос.

Регистрируемся по ссылке https://mega.co.nz/#register и выбираем бесплатный 50гб тарифный план.
Для бекапа под ubuntu будем использовать утилиту megatools
http://megatools.megous.com/
https://github.com/megous/megatools

Так же есть и утилита megacmdhttps://github.com/t3rm1n4l/megacmd

Установка megatools

Debian пакет — https://packages.debian.org/unstable/megatools

Я же буду ставить из исходных кодов. Устанвливаем дополнительные пакеты

Для Debian, Ubuntu:

aptitude -y install build-essential libglib2.0-dev libssl-dev libcurl4-openssl-dev libgirepository1.0-dev

Для Fedora:

yum -y install gcc make glib2-devel libcurl-devel openssl-devel gmp-devel tar

Скачиваем исходики, распаковываем

cd /opt
wget http://megatools.megous.com/builds/megatools-1.9.94.tar.gz
tar xfz megatools-1.9.94.tar.gz
mv megatools-1.9.94 megatools
cd megatools

Собираем

./configure
make
make install

Если make install пропустили, то добавляем PATH в ~/.profile

export PATH=/opt/megatools:$PATH

Регистрация учётной записи Мега через консоль

$ megareg --name=Backup --email=you@mail --password=youPassword --register
Registration email was sent to you@mail. To complete registration, you must run:

  lt-megareg --verify VKJyVNEIe28hkj3PTNm6s==:eJzFTDDDvZ3t==:crBs72w_s3I @LINK@

(Where @LINK@ is registration link from the 'MEGA Signup' email)

Вытаскиваем сылку активации из мыла и заменяем @LINK@ на неё

megareg --verify VKJyVNEIe28hkj3PTNm6s==:eJzFTDDDvZ3t==:crBs72w_s3I https://mega.co.nz/#confirmCc91CYql1Va6...EbM0ejrk 

Создание конфига с учётной записью

В домашнем каталоге создаём файл .megarc

touch ~/.megarc
nano ~/.megarc

Содержимое файла .megarc

[Login]
Username = you@mail
Password = youPassword

Использование megatools

megals — список каталогов и файлов

$ megals
/Contacts
/Inbox
/Root
/Root/dir1
/Root/dir1/File.pdf
/Root/dir1/image1.png
/Root/test
/Trash

Т.к. данные сразу же закешируются, для обновления списка файлов

megals --reload

megaget — скачать файлы в текущий локальный каталог

$ megaget /Root/dir1/File.pdf /Root/dir1/image1.png
Downloaded File.pdf
Downloaded image1.png

megarm — удалить файлы

$ megarm /Root/dir1/File.pdf

megamkdir — создать каталог

$ megamkdir /Root/test2

megacopy — синхронизация локального и удалённого каталога Mega

$ megacopy --local localdir --remote /Root/test2
F /Root/test2/1.pdf
F /Root/test2/2.png
F /Root/test2/3.png

megaput — закачать локальный файл в удалённый каталог Mega

$ megaput file-3.txt --path /Root
Uploaded file-3.txt

Загрузка файлов с Mega

$ megacopy --remote /Root/test2 --local test2-from-mega --download
D /home/user/test2-from-mega
F /home/user/test2-from-mega/1.pdf
F /home/user/test2-from-mega/2.png
F /home/user/test2-from-mega/3.png

Листинг файлов с датой создания и размером файла, как в ls -l

megals -l

Экспортирование ссылок

$ megals --export
                                                                          /Contacts
                                                                          /Inbox
                                                                          /Root
                                                                          /Root/dir1
https://mega.co.nz/#!6VhQFZSJ!SPEyDvMpBM5FMU3V2XMErQ4uYcaOyEkPV4DZk0mDMy0 /Root/dir1/image1.png
https://mega.co.nz/#!DMwhFDTI!2VwNoJTcDIPVDl4gZTlJySgokDt84WN0EYx7nrK9k9Q /Root/file-3.txt
                                                                          /Root/test
                                                                          /Root/test2
https://mega.co.nz/#!CQhWESIL!HMYgEpISFbCMwRQurdJ3zlNM7haee-pS87sIPCSEe4U /Root/test2/1.pdf
https://mega.co.nz/#!SUBFsZxS!Lnrm0-NEA8j0htdMnvEujtihBA4A27iCAwfkjkQ3DnA /Root/test2/2.png
https://mega.co.nz/#!ORKRjQ6Z!Jbb0eAV4WkNyFSKHAkwOo8WxOjE9JV34WOsjY1by-gI /Root/test2/3.png
                                                                          /Trash

megadl — загрузка файл из ссылок Mega

$ megadl 'https://mega.co.nz/#!CQhWESIL!HMYgEpISFbCMwRQurdJ3zlNM7haee-pS87sIPCSEe4U'
Downloaded 1.pdf

megadf — показать доступное, использованное, свободное дисковое пространство

$ megadf -h
Total: 50,0 GiB
Used:  5,1 MiB
Free:  50,0 GiB

Скрипт бекапа drupal сайта через drush и закачка на Мегу

#!/bin/bash
cd /var/www/site
BACKUP_DIR="/home/user/drush-backups/archive-dump"
LOG="/home/user/drush-backups/log.log"
mkdir -p $BACKUP_DIR
touch $LOG
TIMENAME=`date +%Y.%m.%d_%H-%M-%S`
FILENAME="blog-$TIMENAME.tar.gz"
TIMEDUMP=`date '+%T %x'`
FULL_PATH_FILE=$BACKUP_DIR/$FILENAME
# Backup
drush arb --destination=$FULL_PATH_FILE
echo "OK Backup $TIMEDUMP : $TIMENAME | $FULL_PATH_FILE" >> $LOG
# upload to Mega
megaput $FULL_PATH_FILE --path /Root/blog