加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

网站数据备份,和网站文件打包。

发布时间:2020-12-15 07:16:25 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/bin/bash#定义此脚本存在的目录(根部目录)shelldir='backup'#定义数据库账户user='root'#定义数据库用户密码password='meiyoumima'#定义生成的目

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/bin/bash

#定义此脚本存在的目录(根部目录)
shelldir='backup'

#定义数据库账户
user='root'

#定义数据库用户密码
password='meiyoumima'

#定义生成的目录名称
dirname='huyuaning.com'

#定义要备份的数据库名称
mysqlname='huyuaning'

#定义网站文件的绝对路径
webfile='/var/www/huyuaning.com/'

#定义网站文件打包后生成的文件名
tarname='huyuaning.com'

#定义信息文件的名称
infofilename='huyuaning.com'

#定义当前时间
now=`date +%y.%m.%d-%H:%M:%S`

#####################变量定义结束#########################

#如果目录不存在就创建目录
if [ ! -d /$shelldir/$dirname/ ];then
#不是目录
#创建目录
/bin/mkdir /$shelldir/$dirname/
#设置目录权限
/bin/chmod 777 /$shelldir/$dirname/
fi

#输出重定向到文件
/bin/touch /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
/bin/chmod 777 /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
echo $now '--- 开始备份数据...' > /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info

#获得MYSQL开始备份的时间
mysqlstart=`date +%s`
#把数据内容重定向到执行备份的文件,把错误信息重定向到信息文件
/bin/touch /$shelldir/$dirname/$mysqlname.`date +%y.%m.%d`.sql
/bin/chmod 777 /$shelldir/$dirname/$mysqlname.`date +%y.%m.%d`.sql
/usr/bin/mysqldump -u$user -p$password $mysqlname > /$shelldir/$dirname/$mysqlname.`date +%y.%m.%d`.sql 2>>/$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info

#判断上面的命令是否出错,如果出错就删除生成的备份文件

#上一个命令执行成功
if [ $? -eq 0 ];then
#数据备份成功
#先把数据备份成功的信息重定向到信息文件

#获得数据文件大小
filesize=`/usr/bin/du -h /$shelldir/$dirname/$mysqlname.$(date +%y.%m.%d).sql |awk -F ' ' '{print $1}'`
#获得MYSQL结束备份的时间
mysqlend=`date +%s`

#获得MYSQL备份耗时,单位秒
mysqltime=$[mysqlend-mysqlstart]
#重新向数据备份信息
echo "$now --- 数据备份成功:$mysqlname.`date +%y.%m.%d`.sql 大小:$filesize 耗时:$mysqltime秒" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info

#开始备份文件
###################################################
echo "$now --- 开始备份文件..." >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
#定义开始备份文件的时间
tarstart=`date +%s`
/bin/tar -zPcf /$shelldir/$dirname/$tarname.`date +%y.%m.%d`.tgz $webfile 2>>/$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info

#上一个命令执行成功(打包网站文件的命令)

if [ $? -eq 0 ];then #网站文件打包成功

#结束备份文件的时间
tarend=`date +%s`
#获得备份耗时
tartime=$[tarstart-tarend]
#转换成分钟
tarfen=`echo "sclae=2; $tartime/60" | bc`
#获得数据文件大小
tarsize=`/usr/bin/du -h /$shelldir/$dirname/$tarname.$(date +%y.%m.%d).tgz |awk -F ' ' '{print $1}'`
echo "$now --- 文件备份成功:$tarname.`date +%y.%m.%d`.tgz 大小:$tarsize 耗时:$tarfen分" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info

else #网站文件打包失败

#删除备份的网页文件

echo "$now --- 网页文件打包失败!" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info

/bin/rm -rf /$shelldir/$dirname/$tarname.`date +%y.%m.%d`.tgz

	#判断是否删除成功
	if [ $? -eq 0 ]; then #删除文件成功
		echo "$now --- 出错的网页打包文件$tarname.`date +%y.%m.%d`.tgz删除成功!" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
	else	#删除文件失败
		echo "$now --- 出错的网页打包文件$tarname.`date +%y.%m.%d`.tgz删除失败!" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
	fi

fi

#上一个命令执行失败(数据备份失败)
else
#删除生成的备份文件
/bin/rm -rf /$shelldir/$dirname/$mysqlname.`date +%y.%m.%d`.sql
#把删除信息写入信息文件
	#上一个命令执行成功(删除出错的备份文件命令)
	if [ $? -eq 0 ];then
	echo "$now --- 数据备份失败!" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
	echo "$now --- 出错的备份文件删$mysqlname.`date +%y.%m.%d`.sql除成功" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
	#上一个命令执行失败(删除出错的备份文件命令)
	else
	echo "$now --- 数据备份失败!" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
	echo "$now --- 出错的备份文件删$mysqlname.`date +%y.%m.%d`.sql除失败" >> /$shelldir/$dirname/$infofilename.`date +%y.%m.%d`.info
	fi
fi

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读