Бэкап баз данных сайтов bash
Дата публикации 28/12/13 - 00:08
Второй скрипт для создания дампов БД. Очень похож на мой первый скрипт =)
#!/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
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
- 2105 просмотров
Разделы
Комменты
-
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 для прохода по всем совпадениям! →
Комментарии (0)