402 Oct. 5, 2022, 11:07 a.m.

Задача: создать скрипт для автоматического копирования баз данных.

Заранее необходимо установить 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

Источники