Ещё в июле месяце я подготовил этот материал по просьбам читающих, но так и не смог выложить в сеть, т.к. попал в аварию.. Итак, меньше слов 🙂
Остановимся на некоторых настройках:
TMP_DIR – временная директория. Указывайте существующую директорию, она всё равно будет очищаться после заливки бекапа на FTP.
DBLIST – базы данных, которые нужно бекапить.
$TAR cfP watch.felix90.ru.tar /home/user/watch.felix90.ru – делает бекап той или иной директории. Пример:
$TAR cfP felix90.tar /home/user/felix90.ru $TAR cfP site.ru.tar /home/user/site.ru $TAR cfP google.com.tar /home/user/google.com $TAR cfP porno.tar /home/user/porno
Вроде всё. Сам скрипт:
#!/bin/bash # System setting DBUSER="user" DBPASS="password" DBHOST="localhost" DBLIST="database1 database2 database3" NOW=$(date +%d-%m-%Y-%H-%M) TMP_DIR=/root/backup ARCHIVE_NAME=backup-$NOW.tar.gz ARCHIVED_DIR=$TMP_DIR/$NOW OK='\E[47;34m'"\033[1m Done \033[0m\n" # FTP setting FTPD="/" FTPU="user" FTPP="password" FTPS="ftp.domain.com" # Binaries TAR="$(which tar)" GZIP="$(which gzip)" FTP="$(which ftp)" MYSQLDUMP="$(which mysqldump)" echo -en "Backup sites... " mkdir $ARCHIVED_DIR mkdir $ARCHIVED_DIR/db mkdir $ARCHIVED_DIR/sites cd $ARCHIVED_DIR/sites $TAR cfP watch.felix90.ru.tar /home/user/watch.felix90.ru echo -en $OK "Backup database... " for DB in $DBLIST; do FILE=$ARCHIVED_DIR/db/$DB.gz $MYSQLDUMP -u $DBUSER -h $DBHOST -p$DBPASS $DB | $GZIP -9 > $FILE done echo -en $OK "Data archiving..." cd $TMP_DIR $TAR czfP $ARCHIVE_NAME $ARCHIVED_DIR echo -en $OK "Copying file: " # ftp backup cd $TMP_DIR DUMPFILE=$ARCHIVE_NAME $FTP -n $FTPS <<END_SCRIPT quote USER $FTPU quote PASS $FTPP cd $FTPD mput $DUMPFILE quit END_SCRIPT echo -en "to FTP... " $OK "Delete temporary data... " cd $TMP_DIR rm -rf * echo -en $OK '\E[47;34m'"\033[1m Backup completed \033[0m\n"
Комментируйте 🙂
Copying file: mput backup-16-01-2014-18-48.tar.gz? backup-16-01-2014-18-48.tar.gz: Permission denied
не могу разобраться!!!