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

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