以下是我以前的一个mysqldump备份脚本,将备份集打包ftp传到异地服务器上,脚本修改路径即可。
将其放在crontab下。
#!/bin/sh
logfile=/backup/backup.log
LOCALHOST_IP=$(/sbin/ifconfig |grep 'inet addr' |cut -d':' -f2 |cut -d' ' -f1 |egrep "^10\.176\.164\.(.*)$" |sed 's/\././g' |head -1)
echo "##########################" >> $logfile
echo $(date +"%y-%m-%d %H:%M:%S") >> $logfile
echo "--------------------------" >> $logfile
cd /backup
dir=$(date +%Y%m%d)
mkdir $dir
cd /backup/$dir
echo "start mysql backup!!" >> $logfile
cd /backup
/service/mysql/bin/mysqldump --default-character-set=utf8 --triggers=false --skip-opt -q -a --databases -d iov > $(date +"%Y%m%d")_iov.structure.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 --triggers=false -t --skip-opt -q -a --databases iov > $(date +"%Y%m%d")_iov.data.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 --opt -t -a -d iov > $(date +"%Y%m%d")_iov_trigger.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 --skip-opt -q -a --databases bus > $(date +"%Y%m%d")_bus.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 --skip-opt -q -a --databases zt > $(date +"%Y%m%d")_zt.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 --skip-opt -q -a --databases iov_saas > $(date +"%Y%m%d")_iov_saas.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 --skip-opt -q -a --databases poi > $(date +"%Y%m%d")_poi.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 --skip-opt -q -a --databases -d iov_his > $(date +"%Y%m%d")_iov_his.structure.sql
/service/mysql/bin/mysqldump --default-character-set=utf8 -t --skip-opt -q -a iov_his > $(date +"%Y%m%d")_iov_his.data.sql
tar czf /backup/$dir/mysqlBackup$(date +"%Y%m%d")-$LOCALHOST_IP.tar.gz *.sql
sleep 3
rm -rf *.sql
##########################################################################################
olddir=$(date +%Y%m%d --date='15 days ago')
if [ -d $olddir ]
then
rm $olddir -rf >> $logfile 2>&1
echo "rm olddir success!!" >> $logfile
else
echo "there no olddir!!" >> $logfile
fi
echo "--------------------------" >> $logfile
echo $(date +"%y-%m-%d %H:%M:%S") >> $logfile
echo "##########################" >> $logfile
/usr/bin/ftp -v -n<<!
open 129.100.251.71
user db_bf bf_db
binary
lcd /backup/$dir/
prompt
mput mysqlBackup$(date +"%Y%m%d")-$LOCALHOST_IP.tar.gz
close
bye
!