Comments 8
Мы у себя Backblaze используем для хранения бекапов. Стоит недорого, и позволяет загружать файлы в облако с помощью их утилиты командной строки.
Можно даже изловчиться и написать код, который будет удалять устаревшие бекапы из облака. У нас используется вот такой код на PHP для этого:
// Функция, которая удаляет устаревшие архивы в облаке
function deleteUploadedFiles($config, $source, $nextFileName = '', $nextFileId = '') {
$uploadedFiles = json_decode(shell_exec("b2 list_file_versions {$config->b2Bucket} {$nextFileName} {$nextFileId}"));
foreach($uploadedFiles->files as $file) {
if (
mb_strpos($file->fileName, '.bzEmpty') === false
and
mb_strpos($file->fileName, $source->folder) === 0
) {
$date1 = date_create_from_format('U',mb_substr($file->uploadTimestamp,0,10));
$date2 = new DateTime();
// Смотрим разницу между текущей датой и датой загрузки файла
$interval = $date2->diff($date1)->format('%a'); // http://php.net/manual/ru/dateinterval.format.php
if ($interval > $config->b2DeleteRange) {
echo " - Файл {$file->fileName} был создан больше {$config->b2DeleteRange} дней назад. Удаляем его из облака. \n";
shell_exec("b2 delete_file_version {$file->fileName} {$file->fileId}");
} else {
echo " - Файл {$file->fileName} не нуждается в удалении из облака. \n";
}
}
}
if ($uploadedFiles->nextFileName and $uploadedFiles->nextFileId) {
deleteUploadedFiles($config, $source, $uploadedFiles->nextFileName, $uploadedFiles->nextFileId);
}
}
Ещё есть Ruby Backup Gem, который много чего умеет и поддерживает различные виды хранилищ. Единственное, почему мы его на заюзали — потому что он с B2 пока не дружит.
По моему опыту Яндекс.Диск c webdav гораздо медленнее, чем Google.Drive через ocamlfuse. И места у них по-умолчанию на 5Гб меньше (если сейчас ничего не изменилось).
Кстати, любители халявы могут попробовать объединить несколько аккаунтов в массив с помощью mhddfs/unionfs/aufs, на Хабре уже есть соответствующие статьи.
Нашел программку GoodSync. Там была синхронизация по времени изменений итд
#!/bin/bash
TIME=`date +%Y-%m-%d-%H-%M-%S`
SERVER_NAME="SERVER_NAME"
MYSQL_FILE=/tmp/$SERVER_NAME-mysql.$TIME.sql.gz
FS_FILE=/tmp/$SERVER_NAME-fs.$TIME.tar.gz
# Archiving databases
mysqldump -u MYSQL_USER --password=MYSQL_USER_PASS MYSQL_DB | gzip > $MYSQL_FILE
if [ -f $MYSQL_FILE ]; then
echo $TIME" db dump created"
# Uploading to the cloud
curl --user YA_USER@yandex.ru:YA_PASS -T "{$MYSQL_FILE}" https://webdav.yandex.ru/backup/database/
#Delete archve
rm $MYSQL_FILE
fi
# Archiving filesystem
tar czfP $FS_FILE /var/www/SITE_PATH
if [ -f $FS_FILE ]; then
echo $TIME" fs achive created"
# Uploading to the cloud
curl --user YA_USER@yandex.ru:YA_PASS -T "{$FS_FILE}" https://webdav.yandex.ru/backup/files/
#Delete archve
rm $FS_FILE
fi
Дружит с Ubuntu, Debian, Fedora, Red Hat, Centos. Существуют версии i386, x86, x64, x86_64. Консольную утилиту можно ставить из deb-файла, через apt-get (надо указать репозиторий) или RPM.
Настраивать можно через визард (yandex-disk setup) консольной утилиты или просто редактированием конфигурации. Может работать как в режиме постоянной синхронизации через демон, так и просто выполнить синхронизацию по команде (yandex-disk sync). Можно указывать что синхронизовать, либо что не трогать, разрешить/запретить перезапись и т.п.
Базовая настройка резервного копирования с момента коннекта по ssh займет минуты 2-3.
Еще умеет работать с webdav, что в сочетании с парой утилит позволяет создать кластер из дисков, объединенный в одно дисковое пространство. Но нюансов там не мало, так что это совсем другая история.
Google Диск в качестве резервного хранилища для VPS сервера на базе Linux