• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
IT联盟之家-ithome8
博客园    首页    新随笔    联系   管理    订阅  订阅
liunx服务器通过ssh实现异地备份

最近开发一套系统,为了安全考虑需要定时备份数据库和文件,前面已经实现本地定时备份数据库和文件,现在记录一下如何实现异地服务器备份。我这里是使用SSH进行备份,所以需要在待备份服务上面安装openssh-server,主服务器上面需要安装openssh-clients。具体操作步骤如下,我这里Liunx使用的是centos7,如果使用的是其它系统的可以将yum改为apt-get即可

1. 待备份服务器安装openssh-server,安装命令如下,如果系统没有安装openssh,下面的命令会进行安装操作

sudo yum install openssh-server  # 安装openssh-server

在安装过程中,我遇到了一个问题,就是安装的时候提示 No package openssh-server available 意思就是找不到包,这个问题产生的原因,一般是因为yum的源有问题,可以通过更新yum的方法来解决,代码如下:

cd /etc/yum.repos.d/  # 切换目录到yum的源目录
mv CentOS-Base.repo CentOS-Base.repo.back  # 备份yum源文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo # 从阿里云的源下载yum源,如果wget命令无效,你可能需要使用下面的命令安装一下wget
yum install -y wget # 安装wget,如果系统已经有了,就不需要执行这个命令了
yum clean all # 清除yum源的缓存
yum makecache # 重新建立缓存

  如果不确认是否已安装openssh-server,可以使用下面的命令查询

rpm -qa|grep openssh #此命令可以显示是否安装了openssh相关的服务

 如图所示,服务器已安装了openssh-server服务了,安装成功后可以使用下面的命令启动服务

sudo systemctl start sshd.service  # 启动服务,不同版本的centos可能命令会所有区别,如果systemctl命令不行,可以使用 sudo service sshd start

sudo systemctl enable sshd.service # 将服务设置为自动启动,同上,如果systemctl命令不行,可以使用sudo service sshd enable

2. 在主服务器上面安装openssh-client,安装操作与openssh-server的操作差不多,下面是安装命令

sudo yum install openssh-client

3.安装完后使用SSH就可以进行登录了,但是这个时候还只能使用用户名密码登录,文件备份显然是不方便的,所以要进行免密登录,步骤如下:

  1). 在待备份的服务器上面生成密钥,命令如下:  

ssh-keygen -t rsa  # 使用rsa加密方法生成密钥,生成过程中需要确认操作,直接回车确认即可。

  2). 密钥生成后,一般会的/root/.ssh/目录下面生成 id_rsa (私钥),id_rsa.pub (公钥)等文件,使用下面的命令将公钥文件复制到客户机上,输入命令后需要输入服务器对应用户名的密码才可以生效,ssh-copy-id命令是专门用户将公钥文件复制到远程主机上的

ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.19.22 # 复制公钥文件到172.16.19.22服务器上面,并且以root用户名登录,其中-i 的参数是指定公钥文件

  使用上面的命令,公钥文件就会被写入到目标服务器上面的/ssh/目录下面的,其中~表示,当前用户目录,如果是非root用户则目录为/home/username/,否则就是/root

  3). 密钥复制成功就可以使用免密码登录了,可以使用下面的命令登录

ssh root@192.168.1.1 

4. 使用rsynct复制将备份文件夹复制到目标服务器

 rsync -avp -e ssh /backup/ root@172.168.1.1:/backup # 使用SSH免密登录,将本地的backup文件夹复制到目标服务器的backup -a 归档拷贝 -v 显示复制过程 -p增量复制已存在的文件不再复制

 5. 将自动备份命令写入corntab服务内

crontab -e # 编辑

00 01 * * * rsync -avz -e ssh /backup  root@172.16.19.1:/backup  # 每天1点钟开始异地备份

 

posted on 2023-07-31 17:48  IT之家  阅读(361)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3