备份网站数据,程序和数据库都备份需要知道,数据库地址账号密码,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 下,执行会好很多,有效防止断线