linux数据库备份并通过ftp上传脚本分享

(编辑:jimmy 日期: 2024/12/25 浏览:2)

复制代码 代码如下:
#!/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"