您的位置:首页 > 运维架构 > 网站架构

备份整个网站数据

2013-12-23 00:00 316 查看
摘要: 备份网站数据,程序和数据库都备份,需要数据库地址账号密码,ftp的信息,自动备份到本地目录

备份网站数据,程序和数据库都备份需要知道,数据库地址账号密码,ftp的信息

#!/bin/bash

#这是一个简单的网站数据备份脚本
#包括sql,文件备份
#服务器端需要安装mysql,ftp软件
#备份端需要安装mysql,lftp,tar

#1.定义数据库连接、目标库信息
DB_USER="dbuser"
DB_PASS="dbpass"
DB_HOST="127.0.0.1"
DB_NAME="123456"

#2.FTP信息定义
FTP_HOST="127.0.0.1"
FTP_USER="FTP_USER"
FTP_PASS="FTP_PASS"
FTP_PORT="21"
#远程文件夹地址
FTP_PATH="/www"

#3.定义备份目录、时间、文件名主体
#定义文件名称前面部分
BF_TIME="$(date +%Y%m%d)"
NAME_1="$DB_NAME-$BF_TIME"

#mysql软件位置
DB_BASHSHELL="/usr/local/mysql/bin/mysqldump"
#lftp软件位置
FTP_BASHSHELL="/usr/bin/lftp"
#打包软件位置
TAR="/bin/tar"

#本地备份存放文件夹地址
BAK_DIR="/home/www/bakyqs/"
#备份在本地保留天数
days=3

cd  $BAK_DIR

if [ ! -d $BF_TIME ] ;then
mkdir $BF_TIME
fi

#4.mysql先导出.sql脚本
cd  $BF_TIME
echo "backup_SQL job start"
$DB_BASHSHELL -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > $NAME_1.sql
echo "backup_SQL job done"

#5.用lftp连接上服务器同步备份
echo "Starting to sftp"
lftp <<EOF
open ftp://$FTP_USER:$FTP_PASS@$FTP_HOST mirror $FTP_PATH $BF_TIME
EOF
echo "success"

#6打包文件夹,删除源文件
cd  $BAK_DIR
$TAR zcf $BF_TIME.tar.gz $BF_TIME
rm -rf $BF_TIME
#删除规定天数前的备份数据
find $BAK_DIR -name "*.gz" -type f -mtime +$days -exec rm {} \;
#添加进计划任务
#vi /etc/crontab
#30 02 * * * /home/www/bak.sh
#/etc/init.d/crontab stop
#/etc/init.d/crontab start
#screen -S bak
#screen -r bak
#screen -ls


给自己留下,防止忘了,最好自己测试的时候在screen -S bak 下,执行会好很多,有效防止断线
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  全站备份 lftp