2,187
edits
(Added Troubleshooting) |
(→Backup: Added script) |
||
Line 246: | Line 246: | ||
=== Backup === | === Backup === | ||
http://www.cyberciti.biz/faq/ubuntu-linux-mysql-nas-ftp-backup-script/ | Based on http://www.cyberciti.biz/faq/ubuntu-linux-mysql-nas-ftp-backup-script/ | ||
<source lang="bash"> | |||
#!/bin/bash | |||
### MySQL Server Login and local backup info ### | |||
MUSER="root" | |||
MPASS="password" | |||
MHOST="localhost" | |||
MYSQL="$(which mysql)" | |||
MYSQLDUMP="$(which mysqldump)" | |||
BAK="/backup/mysql" | |||
LOG="/backup/mysql.log" | |||
GZIP="$(which gzip)" | |||
NOW=$(date -u +%Y%m%d) | |||
## FTP info | |||
FTPDIR="/Backup/db" | |||
FTPUSER="backup" | |||
FTPPASS="backup" | |||
FTPSERVER="ftphost" | |||
## Functions | |||
Logger() | |||
{ | |||
echo `date "+%a %d/%m/%y %H:%M:%S"`: $1 >> $LOG | |||
} | |||
## Main Script | |||
Logger "Started backup script..." | |||
[ ! -d $BAK ] && mkdir -p $BAK | |||
[ ! -d $BAK/tmp ] && mkdir -p $BAK/tmp | |||
mv $BAK/* $BAK/tmp | |||
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" | |||
for db in $DBS | |||
do | |||
FILE=$BAK/$db.$NOW.gz | |||
Logger "Backing up $db to $FILE" | |||
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE | |||
done | |||
Logger "Completed local backup" | |||
## FTP to remote server | |||
ftp -in <<EOF | |||
open $FTPSERVER | |||
user $FTPUSER $FTPPASS | |||
bin | |||
cd $FTPDIR | |||
lcd $BAK | |||
mput * | |||
close | |||
bye | |||
EOF | |||
if [ "$?" == "0" ]; then | |||
Logger "FTP upload completed successfully" | |||
/bin/rm -f $BAK/tmp* | |||
Logger "Previous local backup files removed" | |||
else | |||
Logger "FTP upload failed !!!" | |||
fi | |||
</source> | |||
== Troubleshooting == | == Troubleshooting == |