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

因为试过服务器硬盘突然坏了的情况,导致部分数据丢失,所以现在把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命令要输入密码,所以要做以下的操作

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





猜你喜欢

转载自blog.csdn.net/emtit2008/article/details/51584937
今日推荐