`
releasa
  • 浏览: 40496 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

<转>rsync + ssh – 完成服务器之间的批量数据同步

阅读更多
现有需求如下:需对若干服务器做相同的环境配置,且配置工作相当复杂,若人工一台一台的处理比较耗时且容易出错。我们可以考虑先完成一台服务器 的配置工作,确认配置无误后,再通过脚本,将相应的配置工作同步到其他所有的服务器中。设有已完成配置的服务器:A (192.168.0.2) 和 待配置的服务器B ~ Z(192.168.0.101 ~ 126)。
实现上述需求,关键有两点:1). 通过ssh信任登录,避免每次同步时要求输入密码;2). 通过rsync命令实现服务器之间文件的同步。具体实现细节如下:
1. 完成单向Trusted SSH Authorized
首先在A产生public/private dsa key pair:
……………………………………………………………………………………………………
[root@kplan-test3 .ssh]# ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
f3:47:3b:b0:2a:50:f8:77:7e:ca:29:85:e8:d9:05:9b root@kplan-test3
[root@kplan-test3 .ssh]#
……………………………………………………………………………………………………
完成上述命令后,会在系统/root/.ssh目录生成两个文件:id_dsa与id_dsa.pub。现在复制id_dsa.pub到B服务器,并更名为 authorized_keys2
……………………………………………………………………………………………………
[root@kplan-test3 .ssh]# scp id_dsa.pub 192.168.0.101:/root/.ssh/authorized_keys2
root@192.168.0.101’s password:
id_dsa.pub 100% |*****************************************************| 612 00:00
[root@kplan-test3 .ssh]#
……………………………………………………………………………………………………
如果上述步骤顺利完成的话,现在您可以执行”ssh 192.168.0.101”,无需输入登录密码,即可登录到B服务器了。
2.使用rsync 做Remote sync﹕
rsync特性简介: rsync是unix-like系统下的数据镜像备份工具,从命名上就可以看出来了remote sync。它的特性如下:
1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间等等。
3、无须特殊权限即可安装。
4、优化的流程,文件传输效率高。
5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
6、支持匿名传输。
参数意义如下﹕
-a, –archive
It is a quick way of saying you want recursion and want to preserve almost everything.
-v, –verbose
This option increases the amount of information you are given during the transfer.
-l, –links
When symlinks are encountered, recreate the symlink on the destination.
-R, –relative
Use relative paths. 保留相对路径…才不会让子目录跟 parent 挤在同一层…
–delete
是指如果Server端删除了一文件,那客户端也相应把这一文件删除,保持真正的一致。
-e ssh
建立起加密的连接。
3、同步脚本
创建脚本,实现自动配置工作。
……………………………………………………………………………………………………
[root@kplan-test3 backup]# vi install_env.sh
#!/bin/bash
WEBSERVER=’kplan-test1 kplan-test2 kplan-test3′
echo “auto install envirment … ————————”
for webserver in $WEBSERVER
do
echo “install server:$webserver’s envirment.”
echo ‘transport file : /etc/profile & /etc/hosts’
rsync -v -r -l -H -p -g -t -S -e ssh –delete /etc/profile root@$webserver:/etc/profile
rsync -v -r -l -H -p -g -t -S -e ssh –delete /etc/hosts root@$webserver:/etc/hosts
echo ‘run shell command : /home/init_env.sh’
ssh -q -o StrictHostKeyChecking=no root@$webserver “/home/init_env.sh”
ssh -q -o StrictHostKeyChecking=no  root@$webserver “rm -f /home/init_env.sh”
echo ” $webserver is end  ————————- ”
done
sleep 1
clear
……………………………………………………………………………………………………
4、其他
如果你想用来做自动备份,则在crontab中加入备份脚本即可。如在每天0时0分做备份(设/root目录下已有完成备份的脚本 backup.sh):
……………………………………………………………………………………………………
[root@kplan-test3 backup]# crontab -e
0 0 * * * /root/backup.sh
分享到:
评论

相关推荐

    inotify-tools+rsync同步使用方法介绍

    - 如果同步的目标是远程服务器,确保在目标端也有`rsync`服务运行,并正确配置了SSH密钥免密登录,以避免频繁输入密码。 5. **监控与维护**: 使用`ps`命令检查`watcher.sh`进程是否正常运行,定期查看日志以确认...

    批量上传文件到Linux服务器

    通过rsync配合SSH,可以实现批量文件的同步到多台服务器。 5. **expect脚本**:当需要自动输入密码或执行交互式任务时,可以使用expect脚本。它模拟用户交互,自动化SSH登录过程,从而实现批量文件传输。 6. **...

    SSh2上传下载功能

    3. **rsync over SSH**: rsync是一个强大的同步工具,结合SSH可以实现远程文件的备份和同步。通过`rsync -avz --progress -e ssh local_path user@remote_host:remote_path`命令,可以将本地文件安全地上传到远程...

    SSH整和步骤全解过程

    例如,可以使用`rsync`通过SSH进行文件同步,或者用`ansible`这样的工具通过SSH批量管理多台服务器。 8. **安全强化** 配置SSH时,要考虑到安全因素。比如,禁用密码登录,限制失败尝试次数,启用SSH密钥对认证,...

    ssh小例子,很实用

    SSH的工作原理是:客户端与服务器之间建立一个安全的隧道,所有在网络上传输的数据都会被加密,防止被中间人攻击。 在Linux和Unix-like系统中,SSH命令行工具`ssh`是最常用的接口。例如,你可以用以下命令连接到...

    中小企业web集群架构实战案例

    Rsync是一个快速且高效的数据同步工具,它可以用来同步两台计算机之间的文件或整个目录。在Web集群环境中,Rsync常被用于数据备份和恢复操作,确保数据的一致性和完整性。 ##### 1.6 Sersync: Sersync是一个基于...

    01_批量安装mysql5.71

    4. 分发`mysql_install.sh`文件到所有目标服务器,可以使用`scp`命令或者通过`rsync`进行同步。 5. 批量执行`mysql_install.sh`脚本以安装MySQL 5.7。可以使用`for`循环或者` parallel`命令遍历服务器列表,逐个执行...

    10.1简单的批量远程、传输文件脚本.docx

    对于更复杂的场景,比如需要检查文件是否存在、同步整个目录结构,或者在传输后执行服务器端的命令,可能需要使用更高级的工具,如`rsync`或`scp`。 在实际运维工作中,务必确保对目标服务器有权限,并且了解脚本...

    UOS/统信批量维护、更新脚本

    编写有效的批量维护脚本,需要熟悉bash或其他shell语法,如变量、条件语句、循环、函数以及与系统交互的命令,例如`apt`或`yum`用于软件管理,`sed`和`awk`用于文本处理,`rsync`进行文件同步,以及`ssh`进行远程...

    Linux服务器制作教程PPT学习教案.pptx

    - **数据同步**:使用`rsync`命令通过SSH进行比对,例如同步`/scsi`和`/ide`目录,确保内容一致。 ### 4. 客户机连接测试 - **目录检查**:确认客户机可以访问服务器上的game1、hddb、hdeplay、hdimg、hdgame、sys2...

    LINUX远程工具上传下载文件

    这些工具提供了方便的方式,让我们无需直接坐在服务器前也能进行系统维护和数据传输。 首先,我们最常使用的远程登录工具是SSH(Secure Shell)。SSH不仅提供了一个安全的通道来进行命令行交互,还能用于文件传输。...

    强烈推荐 Linux运维从入门到高级全套案例教程

    - **5.2.2 Rsync基于SSH同步**:通过SSH安全地同步数据。 - **5.2.3 Rsync实时同步配置**:实现数据的实时同步。 **5.3 Tomcat/Resin JAVA服务器** Tomcat和Resin是两种流行的Java应用服务器。 - **5.3.1 Tomcat...

    rzync-开源

    这对于定期的批量同步任务非常有用,比如定时备份。 4. **日志记录**:rzync提供了日志记录功能,允许用户追踪同步操作的输出信息。这对于故障排查和审计来说非常重要,你可以查看日志以了解同步过程中发生的问题或...

    file-trans.zip_linux 远程

    `rsync`则是一款高效的数据同步工具,它不仅可以进行本地文件的同步,也可以跨网络进行远程文件同步,同时具备增量传输特性,能有效减少网络带宽的使用。 1. **scp命令**: `scp`命令的基本格式为`scp [选项] 源 ...

    cobbler_批量安装linux

    Cobbler 是一个自动化Linux部署工具,主要用于批量安装Linux系统,极大地简化了网络安装服务器的配置过程。通过Cobbler,你可以快速地设置一个能够为多个Linux发行版提供网络安装服务的服务器。在这个过程中,我们...

    文件传输,文件搬运工

    在IT领域,文件传输是日常工作中不可或缺的一部分,无论是个人用户还是企业,都需要高效、安全地在不同设备之间移动数据。"文件传输, 文件搬运工"这个主题主要关注如何有效地进行文件的移动和复制操作,以及涉及到的...

    WirelessMusicBase.zip

    2. **数据同步**:利用`rsync`或者`unison`,定期同步服务器间的文件或目录,确保数据一致性。 3. **故障转移**:在主服务器出现问题时,自动将服务切换到备用服务器,保障业务连续性。 4. **安全审计**:远程执行...

    Remote Liunx AIX OS (EXTRA)

    这通常涉及到SSH(Secure Shell)协议,它允许用户通过加密连接安全地在本地计算机与远程AIX服务器之间进行命令行交互。设置SSH服务涉及配置服务器端的sshd守护进程,生成公钥/私钥对,并确保防火墙规则允许SSH连接...

Global site tag (gtag.js) - Google Analytics