Архив заметок

Бэкап MySQL+планировщик cron и отправка на FTP

Просмотров: 8707Комментарии: 1
НовостиFreeBSDMySQL
Дошли руки до резервного копирования. Раньше копировал вручную необходимые данные smile Конечно это прошлый век, но так как сервер не используется в продуктиве, я особо не парился.

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

Источники для этого я использовал этот и этот. Ничего не украл, просто немного допилил для себя, чтобы все работало без запинки. Итак пример конфигов.

Для Мускула:

Т.К. мне надо было все базы разом, я заюзал пользователя root. В принципе здесь все понятно, останавливаться на описании каждой опции не имеет смысла. Создайте файл с любым именем и:

backup-mysql.sh

#!/bin/sh
BACKUP=/data/backup/mysql
MUSER="root"
MPASS="пароль"
MHOST="localhost"
FTPD="infoblog.ws-mysql"
FTPU="имя пользователя"
FTPP="пароль"
FTPS="info.serveblog.net"
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
NOW=$(date +"%d%m%y")
mkdir $BACKUP/$NOW
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
mkdir $BACKUP/$NOW/$db
FILE=$BACKUP/$NOW/$db/$db.sql.gz
echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$
done
ARCHIVE=$BACKUP/infoblog.ws-$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW
$TAR -zcvf $ARCHIVE $ARCHIVED
cd $BACKUP
DUMPFILE=infoblog.ws-$NOW.tar.gz
$FTP -n $FTPS <<END_SCRIPT
quote USER $FTPU
quote PASS $FTPP
prompt off
binary
cd $FTPD
quote PASV
mput $DUMPFILE
quit
END_SCRIPT
rm -rf $ARCHIVED

Теперь необходимые папки для бэкапа. В принципе можете запихнуть необходимые Вам названия каталогов, на вкус и цвет smile

backup-fs.sh

#!/bin/sh
BACKUP=/data/backup
FTPD="infoblog.ws-fs"
FTPU="пользователь"
FTPP="пароль"
FTPS="info.serveblog.net"
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
FILE="/etc /usr/local/etc"
NAME=$(date +"%d%m%y")
tar -cPjf /data/backup/infoblog.ws_fs-${NAME}.tar.bz2 ${FILE}
cd $BACKUP
DUMPFILE=infoblog.ws_fs-$NAME.tar.bz2
$FTP -n $FTPS <<END_SCRIPT
quote USER $FTPU
quote PASS $FTPP
prompt off
binary
cd $FTPD
quote PASV
mput $DUMPFILE
quit
END_SCRIPT

Теперь планировщик! Шлепаем crontab -e и вставляем или пишем:

0 4 * * * /bin/sh /root/backup.sh
0 4 * * * /bin/sh /root/backup-fs.sh

Я файлики запихал в рутовую папку. Выполняться эти задания будут в 4 утра каждый день. Я пока не менял. Потом сделаю, чтобы бэкап папок выполнялся раз в неделю, а базы пусть бэкапятся ежедневно.

Чтобы просмотреть список уже созданных в кроне задач:

#crontab -l

Комментариев: 1 RSS

1Дмитрий28-06-2013 08:35

хохо спасибо друг - тоже тут озадачился бекапом Мускула

Думал может есть шаблон - теперь настрою все ручками.

Успеха!

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)