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的功能还很强大,深入的眼就可以到官方网站上了解。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87383

(3)
眼一睁眼一睁
上一篇 2017-09-18 15:35
下一篇 2017-09-18 16:43

相关推荐

  • rpm&yum

    软件包管理 软件运行环境 软件包基础 Rpm包管理 Yum管理 定制yum仓库 编译安装 ABI 应用程序的二进制接口,和操作系统相关,一个程序二进制编好了,想要在你的系统上跑,要符合你的操作系统的接口标准Windows:PE  linux:ELF WINDOWS和LINUX二进制程序是不兼容的 库级别的虚拟化 Linux:WINE 可以让Windows程序…

    Linux干货 2018-01-02
  • 马哥教育网络班22期+第15周课程练习

    1、总结sed和awk的详细用法; sed [OPTION]…  'script'  [input-file] … script: 地址定界编辑命令 常用选项: -n:不输出模式空间中的内容至屏幕; -e script, –expression=sc…

    Linux干货 2016-12-14
  • 自制linux系统

    本文主要通过裁剪现有Linux系统,打造一个属于自己的Linux小系统,让其能够装载网卡驱动,并配置IP地址,实现网络功能。 自制linux系统 步骤概述: 1、新建一个硬盘2、在该新硬盘上新建两个分区,一个当boot分区,一个当/分区3、格式化并且挂载两个分区4、安装grub至目标磁盘5、为grub提供配置文件6、复制内核文件和initrd文件7、创建目标…

    Linux干货 2016-09-13
  • 磁盘管理、文件系统、挂载

    磁盘管理 一磁盘分区 磁盘分区有两种方式:MBR和GPT MBR:1)按照柱面进行分区;分区不超过2T 2)关于0磁道0扇区的前512bytes;其中的446bytes为boot loader;中间的64bytes装有分区表;2bytes为55AA 3)可分4个分区;3个主分区+1扩展(N个逻辑分区)扩展分区最多一个。 GPT分区:1)GUID patiti…

    Linux干货 2016-08-29
  • Linux安全和加解密

    概述:     所有业务的正常运转,离不开一个安全的运行环境,系统安全性直接关系到业务稳定、可靠、以及可用性,本章就介绍一些系统安全相关的话题,具体包括:        1、加密基础概念     2、CA和证书的基础概念  &nb…

    Linux干货 2016-09-23
  • 自动化运维工具Puppet

        开发puppet模块,nginx负载均衡并反代动态请求至httpd,httpd用ajp连接器将反代请求至tomcat,并部署tomcat-session-memcached 架构图为 在master主机上开发的模块为: 1、chrony模块; ├── chrony│   ├── files│…

    2017-07-28