Дампим избранные БД + пакуем папки = отправляем на Яндекс.Диск

Дампим избранные БД + пакуем папки = отправляем на Яндекс.Диск

Бэкапы на сервере делаются постоянно, но возникла необходимость самые критичные данные отправлять в облако. Обсасывать что да как не буду, просто привожу листинг скрипта.

Создаем файл: ~/backup-now.sh

#!/bin/bash

SERVER_NAME=»servername»
TIME=`date +%F`

FS_FILE=/tmp/$SERVER_NAME-fs.$TIME.tar.gz
MYSQL_FILE=/tmp/$SERVER_NAME-mysql.$TIME.sql.gz

# Archiving filesystem
tar -czf $FS_FILE /etc /root /home /opt

# Archiving databases
mysqldump -u root —password=mypassword —databases db1 db2 db3 db4 | gzip > $MYSQL_FILE

# Uploading
curl —user login:password -T «{$FS_FILE,$MYSQL_FILE}» https://webdav.yandex.ru/SrvBckp/

# Cleanup
unlink $FS_FILE
unlink $MYSQL_FILE

Создаем в /etc/cron.daily

#!/bin/sh
#
test -e /home/user/backup-now.sh && exec /home/user/backup-now.sh
exit 0

Сначала тестим ручками, на выходе получаем два файла:

servername-fs.2013-01-29.tar.gz
servername-mysql.2013-01-29.sql.gz

Не забываем только, периодически заходить в папку Яндекс.Диска, и подчищать бэкапы.

Зачем нам /opt ?
У меня там лежит  ejabbrd + pyicqt и софт для контроллера.

Почему такой формат даты?
Да я решил сильно не заморачиваться, он меня устраивает. Можно снимать дампы хоть каждый час, а надо ли оно?

Почему не хотим дампить —all-databases?
Мне не нужны все БД, потому как на сервере несколько тестовых баз по 500-1000Мб.

Где-то я уже видел этот скрипт! Ай-яй-яй!
Конечно я нашел его и чутка доработал. Интернет, знаете ли, такая штука…