红联Linux门户
Linux帮助

ubuntu定时备份网站及数据库到备份服务器

发布时间:2016-06-05 10:36:15来源:linux网站作者:盘古黄一鸣

因为试过服务器硬盘突然坏了的情况,导致部分数据丢失,所以现在把A服务器数据备份到B服务器。操作如下:


1、用脚本命令先备份数据到本地,主要是数据库和WWW目录的网站数据

#!/bin/bash 
# 常规定义 
MYSQL_USER="数据库用户名" 
MYSQL_PASS="数据库密码" 
baidupan_DIR="/backup/$(date +%Y-%m-%d)" 
BACK_DIR="backup" 
# 备份网站数据目录 
BACKUP_DEFAULT="/var/web" 
# 定义备份文件名 
mysql_DATA=mysql_$(date +"%Y%m%d").tar.gz 
www_DEFAULT=www_$(date +%Y%m%d).tar.gz 
# 判断本地备份目录,不存在则创建 
if [ ! -d $BACK_DIR ] ; 
then 
mkdir -p "$BACK_DIR" 
fi 

# 进入备份目录 
cd $BACK_DIR 

# 备份所有数据库 
# 导出需要备份的数据库,清除不需要备份的库 
mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' > databases.db 
sed -i '/performance_schema/d' databases.db 
sed -i '/information_schema/d' databases.db 
sed -i '/mysql/d' databases.db 
sed -i '/phpmyadmin/d' databases.db 

for db in $(cat databases.db) 
do 
mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz 
done 

# 打包数据库 
tar -zcvf $mysql_DATA *.sql.gz 

# 打包本地网站数据,这里用--exclude排除svn文件及无用的目录 
tar -zcvf $www_DEFAULT $BACKUP_DEFAULT --exclude=.svn* --exclude=Runtime 

exit 0 

以上脚本完成数据库和网站数据的备份


2、用SCP命令把A服务器的备份文件COPY到B服务器,这里可以做成脚本定时COPY

scp 本地文件   XXX@IP:目录

注意:因为scp命令要输入密码,所以要做以下的操作

#在主机A上执行如下命令来生成配对密钥:
ssh-keygen -t rsa 
#将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys
scp ~/.ssh/id_rsa.pub IP:/用户目录/.ssh/authorized_keys
这样A服务器到B服务器就不用输入密码了,注意,一定要A服务器和B服务器有相同的用户 
如果没有,请用adduser命令创建。


本文永久更新地址:http://www.linuxdiyf.com/linux/21255.html