linux数据库备份并通过ftp上传脚本分享
#!/bin/bash
#author: 505056357@qq.com
echo "backup job start"
#设置要备份的网站目录,即是网站的根目录
file=/home/wwwroot/default
#设置本地备份目录,用于存放打包后的文件
backpath=/home/wwwroot/bkdata/
dbuser=root
#数据密码,要记得用单引号将把整个密码引起来,如果密码中有单引号就用双引号,嘿嘿
dbpwd='123456'
dbname=car
domain=192.168.0.187
user=ftpuser
userpwd='123456'
bkdate=$(date +%Y%m%d)
sqlfile_sql=${dbname}_${bkdate}.sql
sqlfile_gz=${dbname}_${bkdate}.tar.gz
sqlfp=${backpath}${bkdate}/$sqlfile_sql
if [ -e $backpath${bkdate} ]
then
echo $backpath is exists.
else
mkdir -p $backpath${bkdate}
fi
#执行数据库备份,/apps/mysql/bin/mysqldump修改为你实际环境的路径
/apps/mysql/bin/mysqldump -u $dbuser -p$dbpwd $dbname > ${sqlfp}
#对备份之后的数据库文件压缩,或者在数据库备份时通过加入参数直接进行压缩
tar zcf $backpath${bkdate}/$sqlfile_gz -C ${backpath}${bkdate} ${sqlfile_sql}
#删除未压缩SQL的文件
rm -f ${sqlfp}
#生成的文件名格式:web_网站目录名_20130419.tar.gz
fn=web_${file##*/}_${bkdate}.tar.gz
tar zcf $backpath${bkdate}/$fn -C ${file%/*} ${file##*/}
#以下操作为FTP自动连接并把本地文件上传到异地服务器上
/usr/bin/lftp ${domain} << END
user ${user} ${userpwd}
lcd ${backpath}
mirror -R ${bkdate}
exit
END
echo "backup job done"