Задача делать регулярные автоматические бекапы на удалённый сервер. Бекапить будем на облачный сервис mega.co.nz, который предоставляет бесплатно 50 гб дискового пространства. Для работы с облаком имеются десктопные приложения под виндовс, линкус, мак, а так же под андройд и другие мобильные ос.
Регистрируемся по ссылке https://mega.co.nz/#register и выбираем бесплатный 50гб тарифный план.
Для бекапа под ubuntu будем использовать утилиту megatools
http://megatools.megous.com/
https://github.com/megous/megatools
Так же есть и утилита megacmd — https://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