Бэкапы в облачное хранилище Alibaba OSS

by, Yevgeniy Goncharov, 23-Jan-2020
  • linux
  • backup
  • oss
  • minio

Какое-то время назад, я искал небольшое хранилище (в пределах несколько Гб) для хранения некоторых резервных копий со своих VPS. Ранее это был AWS S3, потом дешевый VPS, даже был Yandex Disk и тут мне попалось Alibaba OSS (cloud object storage service), было решено его затестить, с условием того, что 5Гб дается бесплатно (в моем случае это было прям в точку).

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

Первоначальные шаги

Собственно букет настраивается здесь - https://www.alibabacloud.com/product/oss (офф овервью) далее необходимо сгенерировать access key:

minio linux oss

После получения ключа, необходимо скачать клиент при помощи которого будет производиться синхронизация, в моем случае это MinIO, установка которого в Linux производится несколькими командами:

wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod +x mc ./mc --help 

Далее:

mv ./mc /usr/bin/mc

Настройка MinIO

Далее настраиваем клиент, при этом указываем его полученный ранее access key:

mc config host add oss OSS_Endpoint OSS_ACCESS_KEY OSS_SECRET_KEY

OSS_Endpoint можно найти на странице своего бакета. Если подключение произошло правильно, можно посмотреть свой бакет так:

mc ls oss/

Конфиг mc можно посмотреть в файле ~/.mc/config.json

Настройка резервного копирования

Далее для удобства можно написать небольшой bash скрипт, которому можно будет передавать аргументами, что и куда синхронизировать:

#!/bin/bash 
# Created by Yevgeniy Goncharov, https://sys-adm.in
# minio backup script # Sys env / paths / etc 
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
# Vars  
SRC=$1 DEST=$2 
# Actions  
/usr/bin/mc --json --quiet mirror --remove $SRC $DEST 

Делаем скрипт исполняемым:

chmod +x mc-backup.sh

Создаем каталог для локальных бэкапов, например mybackups (или берем каталог который нужно синхронизировать в облаке) Пробуем:

mc-backup.sh /mybackups/ oss/backups

Если все работает, создаем задачу в cron, например так:

30 01 * * * /path/to/script/mc-backup.sh /mybackups/ oss/backups

Доп. Ссылки