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

27 篇文章 0 订阅
2 篇文章 0 订阅

因为试过服务器硬盘突然坏了的情况,导致部分数据丢失,所以现在把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命令创建
 





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值