Когда-то была запилена статья про резервное копирование бд, некоторых папок на фтп. Помогал этому добру планировщик.
Предыдущая статейка актуальная. В новой публикации я немного извратился с уровнем компрессии. Писать много не буду, не зачем. Выкладываю код скриптов на обозрение. Если будет желание, поделитесь своими наработками.
Итак:
mysqlbackup.sh
#!/bin/sh MUSER="root" MPASS="пароль" MHOST="localhost" FTPD="папка" FTPU="пользователь" FTPP="пароль" FTPS="адрес ftp сервера" TAR="$(which tar)" CHOWN="$(which chown)" CHMOD="$(which chmod)" GZIP="$(which gzip)" FTP="$(which ftp)" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" DEST="./db_backup" MBD="$DEST" HOST="$(hostname)" NOW="$(date +"%Y%m%d")" # DO NOT BACKUP these databases, delemiter SPACE IGN="information_schema mysql performance_schema" DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do skipdb=-1 if [ "$IGN" != "" ]; then for i in $IGN do [ "$db" == "$i" ] && skipdb=1 || : [ "$db" == "$i" ] && skipdb=1 || : done fi if [ "$skipdb" == "-1" ] ; then MBD="$DEST/$db" [ ! -d $MBD ] && mkdir -p $MBD || : FILE="$MBD/$NOW.sql.gz" $MYSQLDUMP --opt -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE FNUM="$(find $MBD/* | wc -l)" if [ $FNUM -ge 0 ] ; then find $MBD/* -type f -mtime 20 -exec rm -rf {} \; fi fi done ARCHIVE=$DEST $TAR -cJf - $ARCHIVE | xz -9 -c - > mysql-$NOW.tar.gz cd $DEST DUMPFILE=mysql-$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 $ARCHIVE $DUMPFILE
И папки:
backup-fs.sh
#!/bin/sh FTPD="папка на фтп" FTPU="пользователь" FTPP="пароль" FTPS="адрес фтп" TAR="$(which tar)" GZIP="$(which gzip)" FTP="$(which ftp)" FILE="/etc /usr/local/etc /usr/local/www/apache24/data" NAME=$(date +"%d%m%y") $TAR -cJPf - ${FILE} | xz -7 -c - > server-fs-$NAME.tar.xz DUMPFILE=server-fs-$NAME.tar.xz $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 $DUMPFILE
Ну и cron:
# crontab -l 0 2 * * * /bin/sh /root/backup-mysql.sh 0 3 * * * /bin/sh /root/backup-fs.sh
Вы можете войти под своим логином или зарегистрироваться на сайте.