Понадобилось реализовать загрузка backupa в облачное хранилище яндекса и ovh.
2 задачи, загружать backup в резервные хранилища на яндекс облаке и облаке ovh.
Выбрал способ загрузки с помощью aws-cli.
У меня система FreeBSD, установка aws-cli такая.
cd /usr/ports/devel/awscli && make install clean
Настроим aws-cli.
Ничего сложного в настройке нет.
Допустим вы будите грузить backup под простым пользователем.
Создадим директорию у пользователя под которым будет загрузка.
% mkdir ~./aws
Теперь файл настроек локации.
Настройка через утилиту.
По умолчанию.
% aws configure
Или индивидуально.
% aws configure --profile ovh % aws configure --profile yad
Содержания файлов:
% cat .aws/config [default] region = ru-central1 [profile ovh] region = gra
Ключ default он будет относится к яндексу.
И настройка оставшегося ключа ovh.
% cat .aws/credentials [default] aws_access_key_id = id ключа. aws_secret_access_key = сам ключу. [ovh] aws_access_key_id = id ключа. aws_secret_access_key = сам ключу.
С пунктом endpoint-url так и не разобрался, не в какую не хотел работать если указать его в файле credentials.
Что бы избежать длинные команды.
Думаю что дело в нехватке модуля awscli_plugin_endpoin.
Либо просто в ручную создать файлы и вписать нужные данные настроек.
Теперь загрузка
aws --endpoint-url=https://storage.yandexcloud.net s3 cp --recursive /mnt/my_backup/sql s3://backup/sql/ aws --endpoint-url=https://s3.gra.cloud.ovh.net --profile ovh s3 cp --recursive /mnt/my_backup/sql s3://backup/sql/
Посмотрим содержимая директории sql в облаке.
aws --endpoint-url=https://storage.yandexcloud.net s3 ls s3://backup/sql/
Загрузка с исключением.
в --include что нужно загрузить.
в --exclude что не нужно загружать в облако.
aws --endpoint-url=https://storage.yandexcloud.net s3 cp --recursive --include "*bz" --exclude "tar.gz" /mnt/my_backup/file s3://backup/file/
Копируем файлы с облако к себе на сервер.
aws --endpoint-url=https://storage.yandexcloud.net s3 cp s3://backup/sql/10042021/my_base.sql.gz /mnt/my_base.sql.gz
Удаление.
aws --endpoint-url=https://storage.yandexcloud.net 3 rm s3://backup/file/10042021/ --recursive
Так же можно удалить файлы с исключением, как мы копировали с —exclude и —include.
Основные команды указал.
Вот и вся загрузка backupa в облачное хранилище.