打包备份网站文件以及数据库代码(定时备份)

magic
2009-11-11 / 0 评论 / 1 阅读 / 正在检测是否收录...

这两天想给网站文件以及数据库做备份,特写了段SHEll。

1.备份脚本

点击(此处)折叠或打开



#--------------------------------------------
# 描述:这是数据备份脚本,请不要轻易删除
# 作者:magic  ysjheeqg#163.com
# 日期:2014-11-29 15:12 Apple 亚洲(time.asia.apple.com.)
#------------------------------------------
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
#====COMMAND
alias date='/bin/date'
alias find='/usr/bin/find'
alias tar='/bin/tar'
alias rm='/bin/rm'
alias mount='/bin/mount'
alias cp='/bin/cp'
alias cat='/bin/cat'
aliasecho='/bin/echo'
alias umount='/bin/umount'






#======================================备份网站=============================================


old_time=`date+%s`
year=`date+%Y`
last_year=${year}


month=$((`date+%_m`/1))
last_mon="`date +%_m`-1"


if[$((${last_mon}))=0];then
last_year=$((${year}-1))
last_mon=12
else
last_mon=$((${last_mon}))
fi

day=$((`date+%_d`/1))
time_com="date +%D_%T"
times=`date+%X`
#当前日期
date=$(date-d'+0 days'+%Y%m%d)


#===================DIRECTORY
#备份源 网站文件 数据库目录
locat_dir=/var/www/html
local_db_dir=/

#备份到 目录
tar_root_dir=/var/www/file/${year}年/${month}月
tar_dir=${tar_root_dir}/all
tar_html_dir=${tar_dir}/html
tar_db_dir=${tar_dir}/db


#日志文件
log_dir=/backup/log
log_file=${log_dir}/all.log
#备份完成之后打包
pkg_dir=/var/www/file/${year}年/${month}月/all
pkg_file=web_${date}_${HOSTNAME}.zip


#zip打包密码
zippasswd="zskc007"
bak_db_name="db_"$date"_${HOSTNAME}.zip"




#如果 备份到 目录 不存在,则新建一个
if[!-d ${tar_db_dir}];then /bin/mkdir-p ${tar_db_dir};fi


#删除上一个月备份数据




#发送提醒
#/bin/mail


#备份网站tar-czvf ${pkg_dir}/${pkg_file} ${locat_dir}>/dev/null 2>&1
tar-zcPpf ${tar_dir}/$pkg_file--directory /  $locat_dir


#======================================备份数据库=============================================
mysql_host=127.0.0.1
mysql_user="root"
mysql_passwd="4rfvGY&"


#备份的数据库数组
db_arr=$(echo"show databases;"|mysql-u$mysql_user-p$mysql_passwd-h$mysql_host)
#不需要备份的单例数据库
nodeldb="test"


#进入到备份目录
cd ${tar_db_dir}




#循环备份
fordbnamein${db_arr}
do
if[$dbname!=$nodeldb];then
sqlfile=$dbname-$date".sql"
mysqldump-u$mysql_user-p$mysql_passwd--event--skip-lock-tables-h$mysql_host $dbname>$sqlfile
fi
done




#tar打包所有的sql文件
tar-zcPpf ${tar_dir}/$bak_db_name--directory /  $tar_db_dir

2.执行后结果

3.设置定时备份

0

评论 (0)

取消