Bash скрипт во благо sql бэкапов

Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".

Дата публикации: 22.12.2017
Дата обновления: 16.12.2021

Данный bash скрипт поможет вам реализовать удаленные бэкапы, он создает в папке ./files все необходимые .sql файлы, а также bz2 их версию, что позволяет сократить большое количество места, а также трафика для передачи, далее передаёт bz2 архив с .sql файлом на удаленный FTP сервер. Если у вас есть backup сервер, то пожалуй это хорошее решение. В этом скрипте нужно указать свои данные в виде DB юзера и пароля, названия, также FTP данные и юзера локального для поправки правил, можете запускать из под root через cron. Или просто из под юзера с указанными возможностями.

Требования к скрипту:

  1. (yum || apt-get) install => ftp-upload *Не ssh команда, поправьте.
  2. bzip2
  3. mysqldump

Будьте аккуратны с выполнением команд! И никогда не используйте cd / && rm -rf *

Возможные улучшения:

  1. Можно добавить удаление локальных файлов .sql .bz2
  2. Можно добавить удаление только выбранного из .sql .bz2
#!/bin/bash
echo "Hello, we will start backup your database for that day, please wait"
DATE="$(date +'%Y-%m-%d')"
mysqldump -u DB_USERNAME -p'DB_PASSWORD' DB_NAME > $DATE.sql
bzip2 -zk $DATE.sql
ftp-upload -h FTP_LOGIN -u FTP_USER --password FTP_PASSWORD -d /FOLDER_FOR_BACKUPS $DATE.sql.bz2
chown -R WEB_USER:WEB_USER *
mv $DATE.sql ./files
mv $DATE.sql.bz2 ./files
find ./files -mtime +30 -type f -delete

Никогда не забывайте —  «Сделай бэкап, а кофе потом».

Кстати говоря, Вы можете сделать заказ у разработчика которого вы сейчас читаете, по любым вопросам с администрированием серверов, а также сайтами. Я помогу в любой задаче, оплата почасовая. Можете обратиться в Telegram для быстрой обратной связи, либо на почту которая на странице "Обо мне".