Бэкап WordPress
Бэкап базы данных этого блога я делал регулярно с помощью WP-DB-Backup, однако с версией WordPress 2.9.2 он как-то не заработал, поэтому был выбран альтернативный вариант в виде WP-DB-Manager.
Что касается бэкапа файлов, то его делал руками и эпизодически, что не есть хорошо.
Сегодня решил проблему бэкапов кардинально. За основу был взят скрипт Гая Рутенберга и немножко, ну совсем самую малость допилен
Для аплода бэкапов базы данных и файловой структуры автор использовал lftp, коего на сервере не оказалось, поэтому использовал обычный ftp.
Оригинальный скрипт лежит тут.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #!/bin/sh # Copyright 2008, 2010 Guy Rutenberg <http://www.guyrutenberg.com/contact-me> # Modified a little bit by Antipod. BLOG_DIR=/path/to/blog/directory/ BACKUP_DIR=/path/to/backups/directory/ #fetching db settings from wp-config.php DB_NAME=`echo "<?php require_once(\"${BLOG_DIR}/wp-config.php\"); echo DB_NAME;" | php` DB_USER=`echo "<?php require_once(\"${BLOG_DIR}/wp-config.php\"); echo DB_USER;" | php` DB_PASS=`echo "<?php require_once(\"${BLOG_DIR}/wp-config.php\"); echo DB_PASSWORD;" | php` DB_HOST=`echo "<?php require_once(\"${BLOG_DIR}/wp-config.php\"); echo DB_HOST;" | php` #ftp server to save backups FTP_HOST=host FTP_USER=username FTP_PASS=password #if u don't want to save backups in root catalog then u probably want to edit this line. #Note: path must be surrounded by '/' FTP_BACKUP_DIR=/ # end of configuration - you probably don't need to touch anything bellow BLOG_DIR=`dirname "$BLOG_DIR"`/`basename "$BLOG_DIR"` BACKUP_DIR=`dirname "$BACKUP_DIR"`/`basename "$BACKUP_DIR"` echo -n "Dumping database... " DUMP_NAME=${DB_NAME}-$(date +%Y%m%d).sql.bz2 mysqldump --user=${DB_USER} --password=${DB_PASS} --host=${DB_HOST} \ --databases ${DB_NAME} \ | bzip2 -c > ${BACKUP_DIR}/${DUMP_NAME} if [ "$?" -ne "0" ]; then echo "failed!" exit 1 fi echo "done" echo -n "Creating tarball... " TAR_NAME=${BLOG_DIR##*/}-$(date +%Y%m%d).tar.bz2 tar -cjf ${BACKUP_DIR}/${BLOG_DIR##*/}-$(date +%Y%m%d).tar.bz2 ${BLOG_DIR} if [ "$?" -ne "0" ]; then echo "failed!" exit 2 fi echo "done" echo -n "Uploading SQL dump and tarball to FTP... " ftp ftp://${FTP_USER}:${FTP_PASS}@${FTP_HOST}/ <<EOF cd ${FTP_BACKUP_DIR} put ${BACKUP_DIR}/${DUMP_NAME} /${DUMP_NAME} put ${BACKUP_DIR}/${TAR_NAME} /${TAR_NAME} EOF if [ "$?" -ne "0" ]; then echo "failed!" exit 3 fi echo "done" |


