Вед-дев, Сео, Манимейкинг

Бэкап баз данных сайтов bash

Второй скрипт для создания дампов БД. Очень похож на мой первый скрипт =)

#!/bin/bash

logs="$HOME/sitedb_backups/log"

mysql_user="user"
mysql_password="pass"

mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump

tbackups="$HOME/sitedb_backups/today"
ybackups="$HOME/sitedb_backups/yesterday"

echo "`date`" > $logs/backups.log

rm $ybackups/* >> $logs/backups.log
mv $tbackups/* $ybackups/ >> $logs/backups.log

databases=`$mysql --user=$mysql_user -p$mysql_password -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema)"`

for db in $databases ; do
  $mysqldump --force --opt --user=$mysql_user -p$mysql_password $db | gzip > "$tbackups/$db.gz"
  echo -e "\r\nBackup of $db successfull" >> $logs/backups.log
done

mail -s "Your DB backups is ready!" yourmail@gmail.com <<< "Today: "`date`"
DB backups of every site is ready."


exit 0

Т.к. в этом файле будут содержаться важные данные, такие как пароль от пользователя mysql, то лучше создать отдельного юзера специально для бэкапов и дать ему следующие права:

  • SHOW DATABASES
  • SELECT
  • LOCK TABLES
  • RELOAD

Создать пользователя вы можете при помощи PhpMyadmin, войдя под юзером со всеми привелегиями.

Скрипт запускаем по крону. Если вы будете запускать скрипт через

bash script.sh

То по окончанию дампа вы увидите ошибки:

  • mysqldump: Got error: 1142
  • Warning: Skipping the data of table mysql.event.

В них нет ничего страшного. Если вы все же решитесь убрать их, то в гугле есть способы убрать эти сообщения.

Более подробно о командах mysqldump можете прочитать тут:

http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html



Комментарии (0)

Разделы

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 1 год 1 месяц назад
    Спасибо. С Новым Годом! 
  • Den 1 год 2 месяца назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 1 год 2 месяца назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 1 год 3 месяца назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 1 год 3 месяца назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 1 год 3 месяца назад
    захожу на mysql через ssh по команде  
  • admin 1 год 3 месяца назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 1 год 3 месяца назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 1 год 4 месяца назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 1 год 5 месяцев назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!