No name

Links

GitHub
Резервное копирование БД в s3 minio (FreeBSD)

Резервное копирование БД в s3 minio (FreeBSD)


visibility119 2022-10-05 11:07:14
Задача: создать скрипт для автоматического копирования баз данных.


Заранее необходимо установить mc admin и указать alias, ссылка внизу.

Создаем скрипты в /usr/bin два файла:
mysqlbackup.sh
#!/bin/bash
AWS_ACCESS_KEY_ID=access_key \
AWS_SECRET_ACCESS_KEY=secret_key \
S3_BUCKET=bucket \
MYSQL_HOST=host \
MYSQL_PORT=port \
MYSQL_USER=login \
MYSQL_PASS=password \
MYSQL_DB="name of databases" \
sh /usr/bin/backup.sh

backup.sh
#!/bin/bash
cd /tmp
file=$(date +"%Y-%m-%d")-$HOST.sql
mysqldump \
  --host ${MYSQL_HOST} \
  --port ${MYSQL_PORT} \
  -u ${MYSQL_USER} \
  --password=${MYSQL_PASS} \
  --databases ${MYSQL_DB} > ${file}
if [ "${?}" -eq 0 ]; then
  gzip ${file}
  mc cp ${file}.gz s3/${S3_BUCKET}/
  rm ${file}.gz
  echo "Success backup mysql ("$HOST") backup: "$MYSQL_DB"" | mail -s "Mysql backup "$HOST"" [email protected]
else
  echo "Error backing up mysql" | mail -s "Mysql backup "$HOST""  [email protected]
  exit 255
fi

Устанавливаем права доступа:
$chmod 001 /usr/bin/mysqlbackup.sh
$chmod 001 /usr/bin/backup.sh

Устанавливаем задачу в планировщик:
$echo "0 2 * * * sh mysqlbackup.sh" >> /var/spool/cron/crontabs/root


Источники:
1) Automatized daily mysql backups to S3 buckets
2) MiniO documentation
Back