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