备份整个网站数据

本文介绍了一个用于网站数据备份的Shell脚本,该脚本能够实现数据库和文件系统的自动备份,并通过FTP同步到远程服务器。此外,脚本还具备清理过期备份的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

转载于:https://my.oschina.net/alex001/blog/186774

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值