Tips & tricks Простой скрипт для backup'а mysql базы данных

Мне потребовалось автоматическое резервное копирование базы данных из СУБД MySql, Решено было написать простой скриптик, который можно скормить cron, чтобы он запускался в заданное время.

Собственно сам скрипт:

#!/bin/sh
# MySQL backup script
# Copyright © 2009 Vass
# This script is licensed under GNU GPL version 2.0 or above, see http://www.gnu.org/licenses/

# current time
NOW=$(date +"%Y%m%d%k%M%S")
# backup owner
USER="vpupkin" 
GROUP="vpupkin"
# mysql auth
MUSER="user"
MPASS="password"
MDB="databasename"
MHOST="localhost"
# mysqldump path
MYSQLDUMP="$(which mysqldump)"
# bzip2 path
BZIP2="$(which bzip2)"
# chmod path
CHMOD="$(which chmod)"
# chmod path
CHOWN="$(which chown)"
# find path
FIND="$(which find)"
# rm path
RM="$(which rm)"
# backup destination path
BACKUP="/var/www/backup"
# backup lifetime in days
LIFETIME=7
# backup filename
FILE=$BACKUP/$MDB.sql.$NOW.bz2
# file permission
PERMISSION="700"

# create backup
$MYSQLDUMP -u$MUSER -h$MHOST -p$MPASS $MDB | $BZIP2 -c > $FILE
sleep 10
$CHMOD $PERMISSION $FILE
$CHOWN $USER:$GROUP $FILE

#deleting old backup files
$FIND $BACKUP -mtime +$LIFETIME -exec $RM {} \;


Переменная NOW содержит в себе текущую дату-время, добавляется к имени файла чтобы обеспечить его уникальность;
переменная BACKUP это путь к папке, куда будут сохранятся резервные файлы;
LIFETIME — время жизни файла в днях, backup'ы старее чем LIFETIME будут удалятся;
Файл дампа создается с помощью поставляемой с MySql сервером утилиты mysqldump, после чего сжимается архиватором bzip2, т. е. необходимо его наличие в системе;
После создания файла его хозяином назначается USER, а права устанавливаются в PERMISSION;
В самом конце удаляются все устаревшие файлы.
Установка скрипта:

Необходимо скопировать скрипт в одну из папок /etc/cron.* в зависимости от того, как часто вы хотите его выполнять.

После чего следует назначить скрипту права разрешающие выполнение:

chmod 755 [filename]


Все, скрипт готов к работе, перезапускать cron не требуется.
  • 0
  • 25 января 2010, 18:33
  • Vass

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

RSS свернуть / развернуть
+
0
мне нравится вот это: sypex.net/
avatar

nemOn

  • 29 января 2010, 12:25
+
0
Дак этот-то скрипт прописал в крон и забыл о нем, а дампы копятся. А Сипекс — это система с GUI, для удобных бакапов, разные задачи в общем.
avatar

Vass

  • 29 января 2010, 12:43
+
0
так думаю и сипекс можно в крон повесить, плюс есть вкусные плюшки. В любом случае имеет право на жизнь :)
avatar

nemOn

  • 29 января 2010, 14:05

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.