Бэкап баз MYSQL и системных файлов
Возникла необходимость бэкапить базы MySQL и некоторые папки на FTP. Немного погуглив накопал вот такой вот скрипт:
#!/bin/sh
# System + MySQL backup script
# # ---------------------------------------------------------------------
#########################
######TO BE MODIFIED#####
### System Setup ###
BACKUP=/root
### Настройка Mysql ###
MUSER="root"
MPASS="1234567"
MHOST="localhost"
### Настройки FTP ###<
FTPD="/Public"
FTPU="user"
FTPP="password"
FTPS="192.168.1.2"
#########################################
### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
### Today + hour in 24h format ###
NOW=$(date +%Y-%m-%d)
### Create hourly dir ###
mkdir $BACKUP/$NOW
### Получаем имена всех баз Mysql ###
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$MPASS $db $i | $GZIP -9 > $FILE
done ### Создаем один большой файл для его последующей закачки ###
mkdir $BACKUP/$NOW/Drupalfiles
cp -r /usr/local/www/drupal /$BACKUP/$NOW/Drupalfiles
ARCHIVE=$BACKUP/server1-$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW
$TAR -zcvf $ARCHIVE $ARCHIVED
### Закачиваем на FTP ###
cd $BACKUP
DUMPFILE=server1-$NOW.tar.gz
$FTP -n $FTPS <<END_SCRIPT
quote USER $FTPU
quote PASS $FTPP
prompt off
cd $FTPD mput $DUMPFILE
quit
END_SCRIPT
### Подчищаем за собой ###
rm -rf $ARCHIVED