这两天想给网站文件以及数据库做备份,特写了段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)