`
san_yun
  • 浏览: 2663950 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

scp和rsync的使用

 
阅读更多
近段时间工作需要做了些scp和rsync的异地安全备份,整理了一下,希望多大家有用。

scp的备份指南:
需求:用scp自动完成异地文件的定时copy
难点:如何让异地主机建立安全的信任关系

1、在A机器上用root运行ssh-keygen,将生成/root/.ssh/identity和/root/.ssh/identity.pub两个文件;

2、在A机器上运行scp /root/.ssh/identity.pub test@192.168.1.10:/upload/.ssh/authorized_keys(假设B机器的IP地址为192.168.1.10,B机器上开了用户test,要上传到的目录是/upload,需输入密码)。目的是将本地的identity.pub放到远程机器上并改名为authorized_keys,这样就建立了新任主机,以后就不需要每次ssh都需要输入密码了;

3、通过crontab建立脚本,例:30 02 * * 1-5 scp /home/data/* test@192.168.1.10:/upload。
(每天2:30am自动将/home/data下面的所有文件以test用户名传到远程主机192.168.1.10的/upload目录中);

认证原理:
  如果你希望从A作为用户user1 SSH 到B 作为用户user2, 若要用RSA键对法认证且不需要密码,则B上的ssh 后台程序拿出~user2/.ssh/authorized_keys中的与A有关的RSA公钥来对A上的以user1身份运行的ssh客户程序进行挑战,前面我们已经把A上的identity.pub拷贝到B上作为authorized_keys了。则A保持私钥identity,而B上的sshd又拿出A的公钥来挑战,因此成功,你可以加很多行到authorized_keys以允许其它服务器的公钥可以加进来。

scp特点:
使用ssl加密,安全性高。

rsync的备份指南:
需求:用rsync完成异地文件的同步
难点:如何建立异地信任关系

1、在A主机上(rsync服务器)上编译安装rsync,需要版本在2.4.3以上(http://rsync.samba.org),在/etc目录下建立rsyncd.conf文件,内容如下:
uid = nobody
gid = nobody
use chroot = no                         # 不使用chroot
max connections = 4                 # 最大连接数为4
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock         # 日志记录文件

[test]                                 # 这里是认证的模块名,在客户端需要指定
   path = /home/test                 # 需要同步的目录
   comment = test folder
   uid = root
   ignore errors                 # 可以忽略一些无关的IO错误
   read only = yes                 # 只读
   list = no                         # 不允许列文件
   auth users = rsynctest        # 认证的用户名,如果没有这行,则表明是匿名
   secrets file = /etc/test.scrt         # 认证用户密码文件

2、在/etc下建立test.scrt文件,输入:
用户名:密码
例:rsynctest:testrsync
将文件属性修改为600(千万注意)

3、启动rsync服务:rsync --daemon (rsync运行在tcp 873端口,可以通过netstat -an|grep LISTEN察看)。

4、在B主机上(rsync客户机)上建立/etc/test文件,内容为A主机的密码,例:
testsync

5、用crontab建立脚本,例:0 21 * * 1-5 rsync -vzrtp --progress --delete --password-file=/etc/test rsynctest@192.168.1.10::test /home/rsynctest

rsync中的参数:v是verbose,z是压缩,r是recursive,tp都是保持文件原有属性如属主、时间
的参数。--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。--password-file=/etc/test来指定密码文件,这样就可以在脚本中使
用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读(600)。

rsynctest@192.168.1.10中,rsynctest是指定密码文件中的用户名,192.168.1.10是A主机的IP地址::test是指模块名[test],也就是在/etc/rsyncd.conf中自定义的名称。最后的/home/rsynctest是备份到本地的目录名。
(也可以用-e ssh的参数建立起加密的连接,然后和scp中信任主机的办法一样如法炮制)
(在上面实例中的rsynctest并不是真实的用户,可以根据自己需要文本定义,这也是使用rsync的一大好处)

rsync的特点:
特性如下:

1、可以镜像保存整个目录树和文件系统。
2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。
3、无须特殊权限即可安装。
4、优化的流程,文件传输效率高。
5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
6、支持匿名传输。

rsync的功能还很强大,深入的眼就可以到官方网站上了解。
分享到:
评论

相关推荐

    【IT十八掌徐培成】Hadoop第02天-02.scp-rsync-ssh root配置.zip

    总结起来,Hadoop集群中的文件传输和远程管理离不开scp、rsync和ssh的配合使用。正确配置和熟练掌握这些工具,对于优化Hadoop环境的运维效率和安全性至关重要。在实际操作中,还需要注意系统的安全性和稳定性,遵循...

    docker-rssh:SFTP,SCP和RSYNC的受限制安全外壳

    易于使用的受限制的安全外壳,适用于SFTP,SCP和RSYNC。 基于( )。 用法 将用户定义为docker run最后一个参数,每个参数一个用户(语法: user:pass[:e][:[uid][:gid]] )。 如果要让用户使用与主机文件系统相...

    rsync 限制速度(防止rsync耗带宽)

    有些机房会限制机器的流量,为了不触及底线,在使用scp和rsync的时候都要注意。 为了避免你的scp或者rsync因为无良&懒惰的OPS设置防火墙的偷懒而造成的断流现象,我们必须对自己的数据传输进行一定的限流措施,慢...

    Rsync+sersync实现数据实时同步备份

    - Rsync:涉及到了如何使用Rsync进行数据同步的详细方法和特性,比如它支持的同步模式、保持文件属性的能力以及安全传输选项。 - sersync:指出了sersync在文件监控和数据同步中的作用,尤其是在实时备份方面的重要...

    rsync、pscp、ssh

    - 使用`rsync`进行大规模文件同步,尤其是在备份和恢复数据时,可以节省大量带宽和时间。 - 使用`pscp`在Windows环境下安全地将文件从本地传输到远程服务器,或者反之。 - 通过`ssh`建立安全的连接,然后运行远程...

    rsync命令详细解答

    相较于传统的`scp`命令,`rsync`具有更快的传输速度,并且支持增量更新,这意味着在多次同步时只需要传输发生变化的部分数据。 #### 二、安装与基本用法 1. **安装**:在Ubuntu系统中,可以通过包管理器来安装`...

    使用Linux的rsync命令实现多服务器镜像同步.docx

    使用 Linux 的 rsync 命令实现多服务器镜像同步 rsync 命令是一种高效的文件同步工具,经常应用于多...除此之外,rsync 命令也可以与其他同步方法结合使用,例如使用 scp 命令或 wget 命令,实现更加灵活的同步方案。

    Rsync+ssh双机同步测试及问题解决

    Rsync+ssh双机同步测试及问题解决是指使用Rsync和ssh协议实现双机之间的文件同步和备份。本文将详细介绍如何配置ssh的自动登录、rsync的配置、同步问题和解决方案。 一、配置ssh的自动登录 在进行双机同步之前,...

    win10下使用git配置rsync实现断点续传及增量传输

    远程文件传输rsync-断点续传及增量传输,rsync实现断点续传 ...可以考虑使用rsync命令替代scp来断点续传文件 win10下使用git配置rsync实现断点续传,解压缩后cp到git对应usr目录下,打开bash 输入 rsync --version 验证

    服务端并发的网络复制命令scp

    【服务端并发的网络复制命令scp】 在Linux操作系统中,`scp`(Secure Copy)...然而,需要注意的是,直接在`scp`命令中集成并发复制可能需要自定义实现,或者使用专门的文件分发工具,如`rsync`配合`--parallel`选项。

    如何在Linux下使用Rsync

    昨天对scp进行总结之后看到后有说到Rsync,俗语有云:好奇心害死猫。抱着学习的态度将Rsync给找了出来,然后进行了一些简单的学习。下面介绍一些个常用的命令。上篇的scp:12个scp传输文件的栗子。  简介  rsync...

    Rsync Windows 免费同步软件

    Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及...

    linux scp传输不用密码

    或者使用`rsync`命令进行同步: ``` # rsync -avz ~/.ssh/ user@10.1.1.200:~/ ``` 3. **测试免密码登录** 在完成上述步骤后,用户可以从本地主机尝试使用`ssh`命令连接远程主机,此时应该能够实现免密码登录...

    过rsync inotify-tools ssh实现触发式远程实时同步

    本文将详细介绍如何使用 `rsync`、`inotify-tools` 和 `SSH` 来实现触发式的远程实时同步。 #### 二、基础知识简介 1. **rsync**:一个快速的数据传输工具,支持本地文件复制以及远程文件复制。它通过比较源文件和...

    Rsync备份svn策略详解.docx

    Rsync是一款在Unix和Linux环境下广泛使用的数据镜像备份工具,它具有多种特性,使其成为高效、安全的文件同步和备份解决方案。以下是对Rsync功能和配置的详细解析。 1. **镜像备份**:Rsync能够完全复制一个目录树...

    Week12_Unit11_RSYNC文件同步服务.pdf

    - **文件完整性与真实性**:RSYNC在同步数据时会保持文件的完整性和真实性,而SCP只是简单地进行文件复制。 #### RSYNC的使用方法 - **基本语法**: - 本地文件同步:`rsync [OPTION] SRC [DEST]` - 远程文件同步...

    Rsync备份svn策略详解.pdf

    《Rsync备份svn策略详解》 Rsync是一款在Unix环境下广泛使用的数据镜像备份工具,其强大之处在于能够实现高效、安全的数据同步。...正确配置和使用Rsync,对于任何依赖svn进行版本控制的项目来说,都是至关重要的。

Global site tag (gtag.js) - Google Analytics