清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/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