linux下不同服务器间数据传输资料.docx

上传人:b****8 文档编号:9363144 上传时间:2023-02-04 格式:DOCX 页数:27 大小:34.74KB
下载 相关 举报
linux下不同服务器间数据传输资料.docx_第1页
第1页 / 共27页
linux下不同服务器间数据传输资料.docx_第2页
第2页 / 共27页
linux下不同服务器间数据传输资料.docx_第3页
第3页 / 共27页
linux下不同服务器间数据传输资料.docx_第4页
第4页 / 共27页
linux下不同服务器间数据传输资料.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

linux下不同服务器间数据传输资料.docx

《linux下不同服务器间数据传输资料.docx》由会员分享,可在线阅读,更多相关《linux下不同服务器间数据传输资料.docx(27页珍藏版)》请在冰豆网上搜索。

linux下不同服务器间数据传输资料.docx

linux下不同服务器间数据传输资料

 linux下不同服务器间数据传输 2012-03-0911:

43:

32

分类:

 LINUX

因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结。

主要是rcp,scp,rsync,ftp,sftp,lftp,wget,curl。

rcp 

rcp不是一种安全的的传输文件的方式,rcp通过rsh(rsh见下面)来执行远程命令,要使用rcp必须经过一些配置,现在rcp已经被scp取代了,常用scp来进行文件传输。

要使用rcp,需要具备以下条件:

(1)如果系统中有/etc/hosts文件,应确保该文件包含要与之进行通信的远程主机信息:

internet_addressofficial_namealias。

例如:

1.186.10.***blade

(2).rhosts文件:

.rhosts文件位于远程系统的根目录下,其中包含本地系统的名称和本地登录名。

例如,远程系统的.rhosts文件中的项可能是:

blade1root;其中,blade1是本地系统的名称,root是本地登录名。

这样,blade1上的root即可在包含.rhosts文件的远程系统中来回复制文件。

配置过程:

(1)在双方root用户根目录下建立.rhosts文件,并将双方的hostname加进去.在此之前应在双方的/etc/hosts文件中加入对方的IP和hostname

(2)把rsh服务启动起来,redhat默认是不启动的。

方法:

用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。

然后执行:

servicexinetdrestart即可。

如果没有rsh,请见下面rsh部分

(3)到/etc/pam.d/目录下,把rsh文件中的authrequired/lib/security/pam_securetty.so一行用“#”注释掉即可。

(只有注释掉这一行,才能用root用户登录)

命令使用:

rcp[options][[user@]host1:

]file1...[[user@]host2:

]file2

options:

  

-r递归地把源目录中的所有内容拷贝到目的目录中。

-p试图保留源文件的修改时间和模式,忽略umask。

rsh(remoteshell,它不够安全):

rsh使用条件同rcp,rsh配置过程(以root为例)

(1)在服务器上运行/urs/bin/ntsysv选中rexec,rlogin,rsh三项服务。

(2)运行#/sbin/servicexinetdrestart启动该三项服务。

(3)运行echo"rexec">>/etc/securetty;echo"rlogin">>/etc/securetty;echo"rsh">>/etc/securetty

(4)在服务器上运行echo"你的ip地址root">>/root/.rhosts或者echo"你的主机名root">>/root/.rhosts且确保在服务器上的/etc/hosts中有主机名和ip地址的映射关系

(5)到/etc/pam.d/目录下,把rexec,rlongin,rsh文件中的authrequired/lib/security/pam_securetty.so一行用“#”注释掉即可。

(只有注释掉这一行,才能用root用户登录)

(6)rsh命令用法:

rshremote-sytem-neameLinux-command,例如:

rshblade1ls/home/root

scp 

scp命令是SSH中最方便有用的命令了,scp就是securecopy,是用来进行远程文件拷贝的。

数据传输使用ssh,并且和ssh使用相同的认证方式,提供相同的安全保证。

与rcp不同的是,scp在需要进行验证时会要求你输入密码或口令。

scp[options][本地用户名@IP地址:

]file1[远程用户名@IP地址:

]file2

options:

 

-v用来显示进度,可以用来查看连接,认证,或是配置错误。

-C使能压缩选项。

-c选择使用那个加密算法(具体对应到ssh的-ccipher-spec,这个参数值会被传给ssh,可选择值3des,blowfish,des),使用blowfish会快很多,可以参看manssh中的-ccipher-spec

-P选择端口

-r递归拷贝整个目录

-l限制使用带宽,Kbit/s

-o指定传给ssh的一些参数值,比如Compression=yes

-p保留文件的修改时间等信息。

rsync 

rsync是rcp的替代品之一,rsync是一款高效的远程数据备份和镜象工具,可快速地同步多台主机间的文件,其具有如下特性:

支持链接、所有者、组信息以及权限信息的拷贝;

通过远程shell(ssh,rsh)进行传输;

无须特殊权限即可安装使用;

流水线式文件传输模式,文件传输效率高;

支持匿名操作;

需要提及的是rsync以其优越的性能优势区别于其它几种Linux文件传输方法,其同步文件的速度相当快,这主要归功于rsync所使用的传输算法。

简而言之rsync算法能在相当短的时间内计算出需要备份的数据,只对源文件与目标文件的不同之处进行传输,从而降低网络中传输的数据量,以此达到快速备份镜像的目的。

下面通过一典型应用场景来描述rsync算法的基本原理:

主机A与主机B均有对同一文件的拷贝,用户对主机A上的拷贝进行更新,主机B通过rsync算法对更新后的文件进行同步。

以下是该算法的实现步骤:

(1)主机B将原始拷贝划分成大小为N的不重合的若干块(文件末尾部分分块大小可能不足N),并对这些数据块进行两种不同方式的校验:

32位的滚动弱校验、128位的MD4强校验。

弱校验较之强校验计算速度快。

(2)主机B将每个数据块的弱校验、强校验结果发送给主机A。

(3)主机A对更新后的文件拷贝中的每个长度为N的数据块进行弱校验并与从B接收到的弱校验值进行匹配,若相同再进行强校验匹配。

由于弱校验的滚动特性可以快速地筛选出需要进行同步的数据块。

该算法的运算量主要集中在主机A上。

通过上述计算,主机A将文件的不同部分发送给B,B接收到两个拷贝之间的不同之处,从而同步得到更新后的文件。

通过如上方式,rsync避免了对相同数据的传输,减少了网络带宽的浪费。

在时间上整个过程中需一个往返,从某种程度上也保证了rsync的优越性能。

Rsync可以通过两种方式来连接远程服务器,一种是通过类shell命令的方式,一种是通过rsyncdaemon的方式,rsyncdaemon需要进行安装和配置,具体如下:

可从官方网站http:

//rsync.samba.org/上下载安装rsync的最新版本。

使用时需将rsync分别安装于服务端和客户端,服务端和客户端使用同一个rsync软件包来实现远程镜像和定期同步更新。

需要说明的是一个rsync服务端可同时备份多个客户端的数据;多个服务端备份一个客户端的数据。

rsync默认端口为873,服务器在该端口接收客户的匿名或者认证方式的备份请求。

rsync服务端在使用之前需要进行必要的配置,其配置文件为/etc/rsyncd.conf,进行认证、访问、日志记录等控制。

配置文件包括全局参数、模块参数的设置。

rsyncd.conf文件中[module]之前的所有参数为全局参数,也可以在全局参数部分定义模块参数,在这种情况下该参数的值就是所有模块的默认值。

全局参数设置程序使用的端口号,指定消息文件、日志文件pid文件以及发送日志消息的级别。

模块参数主要定义服务端哪个目录需要被同步。

用户可根据不同的需要指定多个模块,每个模块对应需要备份的一个目录树,即若有N个需要备份的目录树,则需要N个模块与之对应。

模块中可以定义许多参数,常见参数如下。

Comment:

块信息描述,该描述连同模块名在客户连接得到模块列表时显示给客户。

默认没有描述定义。

Path:

指定供备份的目录路径,必须指定该参数。

maxconnections:

指定最大并发连接数以保护服务器,超过限制的连接请求将被告知随后再试。

默认值为0,即没有限制。

logfile:

指定日志文件

readonly:

设定是否允许客户上载文件。

若为true任何上载请求均会失败,若为false且客户端拥有服务器目录读写权限则可以上载。

默认值为true。

writeonly:

设定是否允许客户下载文件。

若为true任何下载请求均会失败,默认值为false。

List:

设定当客户请求可以使用的模块列表时,是否列出该模块。

若为false,则创建隐藏的模块。

默认值为true。

fakesuper:

允许文件享有所有权限,而无需后台服务以root权限进行操作。

Filter:

设置过滤列表以决定哪些文件可由客户端访问。

hostsallow:

指定允许客户连接的IP地址。

可以为单个IP地址或整个网段。

多个IP或网段需要以空格隔开。

默认是允许所有主机连接。

dontcompress:

指定不进行压缩处理即可传输的文件,默认值是*.gz*.tgz*.zip*.z*.rpm*.deb*.iso*.bz2*.tbz

pre-xferexec,post-xferexec:

设置可在文件传输前/后执行的命令。

若在文件传输前执行的命令失败,则取消本次传输操作。

需要注意的是服务器端启动:

/usr/bin/rsync--daemon--config=/etc/rsyncd/rsyncd.conf

连接远程服务器的两种方式的基本语法

(1)通过远程shell方式:

rsync[OPTION][USER@]HOST:

SRCDEST:

用远程shell(如ssh,rsh)实现将远程机器的内容拷贝到本地机器。

SRC地址路径中以单个冒号":

"进行分隔。

rsync[OPTION]SRC[USER@]HOST:

DEST:

使用远程shell(如rsh、ssh)实现本地机器的内容拷贝到远程机器。

DEST地址路径中以单个冒号":

"进行分隔。

(2)通过rsyncdaemon方式:

rsync[OPTION][USER@]HOST:

:

SRCDEST或rsync[OPTION]rsync:

//[USER@]HOST[:

PORT]/SRC[DEST]:

从远程rsync服务器中拷贝文件到本地机。

SRC地址路径中以双冒号":

:

"进行分隔。

rsync[OPTION]SRC[USER@]HOST:

:

DEST或rsync[OPTION]SRCrsync:

//[USER@]HOST[:

PORT]/DEST:

从本地机器拷贝文件到远程rsync服务器中。

DEST地址路径中以双冒号":

:

"进行分隔。

如果rsync命令中只指定SRC参数而不指定DEST参数,则意为显示源文件列表而非进行同步拷贝。

Options:

-v,--verbose详细模式输出

-q,--quiet精简输出模式

-c,--checksum打开校验开关,强制对文件传输进行校验

-a,--archive归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-r,--recursive对子目录以递归模式处理

-R,--relative使用相对路径信息

-b,--backup创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。

可以使用--suffix选项来指定不同的备份文件前缀。

--backup-dir将备份文件(如~filename)存放在在目录下。

-suffix=SUFFIX定义备份文件前缀

-u,--update仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。

(不覆盖更新的文件)

-l,--links保留软链结

-L,--copy-links想对待常规文件一样处理软链结

--copy-unsafe-links仅仅拷贝指向SRC路径目录树以外的链结

--safe-links忽略指向SRC路径目录树以外的链结

-H,--hard-links保留硬链结 

-p,--perms保持文件权限

-o,--owner保持文件属主信息

-g,--group保持文件属组信息

-D,--devices保持设备文件信息

-t,--times保持文件时间信息

-S,--sparse对稀疏文件进行特殊处理以节省DST的空间

-n,--dry-run现实哪些文件将被传输

-W,--whole-file拷贝文件,不进行增量检测

-x,--one-file-system不要跨越文件系统边界

-B,--block-size=SIZE检验算法使用的块尺寸,默认是700字节

-e,--rsh=COMMAND指定使用rsh、ssh方式进行数据同步

--rsync-path=PATH指定远程服务器上的rsync命令所在路径信息

-C,--cvs-exclude使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件

--existing仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件

--delete删除那些DST中SRC没有的文件

--delete-excluded同样删除接收端那些被该选项指定排除的文件

--delete-after传输结束以后再删除

--ignore-errors及时出现IO错误也进行删除

--max-delete=NUM最多删除NUM个文件

--partial保留那些因故没有完全传输的文件,以是加快随后的再次传输

--force强制删除目录,即使不为空

--numeric-ids不将数字的用户和组ID匹配为用户名和组名

--timeout=TIMEIP超时时间,单位为秒

-I,--ignore-times不跳过那些有同样的时间和长度的文件

--size-only当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间

--modify-window=NUM决定文件是否时间相同时使用的时间戳窗口,默认为0

-T--temp-dir=DIR在DIR中创建临时文件

--compare-dest=DIR同样比较DIR中的文件来决定是否需要备份

-P等同于--partial

--progress显示备份过程

-z,--compress对备份的文件在传输时进行压缩处理

--exclude=PATTERN指定排除不需要传输的文件模式

--include=PATTERN指定不排除而需要传输的文件模式

--exclude-from=FILE排除FILE中指定模式的文件

--include-from=FILE不排除FILE指定模式匹配的文件

--version打印版本信息

--address绑定到特定的地址

--config=FILE指定其他的配置文件,不使用默认的rsyncd.conf文件

--port=PORT指定其他的rsync服务端口

--blocking-io对远程shell使用阻塞IO

-stats给出某些文件的传输状态

--progress在传输时现实传输过程

--log-format=formAT指定日志文件格式

--password-file=FILE从FILE中得到密码

--bwlimit=KBPS限制I/O带宽,KBytespersecond 

-h,--help显示帮助信息

实例:

(1)查看服务端文件及列表:

rsync9.186.110.53:

:

查看服务端可用的模块列表以及注释信息;rsyncibmuser@9.186.110.53:

:

www/查看服务端www模块中的目录及文件列表(使用rsyncd用户认证方式)

rsyncibmuser@9.186.110.53:

/var/www/html/查看服务端/var/www/html目录中的内容(使用服务端的系统用户进行验证,如ibmuser)

(2)保持客户端与服务端的数据同步:

rsync-avzibmuser@9.186.110.53:

:

www//backup1/使用后台服务方式将服务端www模块下的内容备份到本地/backup1目录中,备份时保留原有权限、属性、属主及符号连接等,并使用压缩方式加快数据传输。

rsync–avzibmuser@9.186.110.53:

/var/www/html/backup2/使用ssh方式将远程的/var/www/html目录备份到本地/backup2/目录下

rsync-avz--deleteibmuser@9.186.110.53:

:

www//backup3/将远程www模块备份到本地/backup3/目录中,同时进行同步目录,删除本地目录中多余的文件。

(3)当服务端的数据出现问题时,需要通过客户端的数据对服务端进行恢复,只要客户端有服务端的写入权限,即可通过调换rsync命令的SRC、DEST参数进行恢复。

ftp 

ftp命令使用文件传输协议(FileTransferProtocol,FTP)在本地主机和远程主机之间或者两个远程主机之间进行文件传输。

FTP协议允许数据在不同文件系统的主机之间传输。

尽管这个协议在传输数据上提供了高适应性,但是它并没有尝试去保留一个特定文件系统上的文件属性(例如一个文件的保护模式或者修改次数)。

而且FTP协议很少对一个文件系统的整体结构作假定,也不提供这样的功能,比如递归的拷贝子目录。

在使用ftp命令时,需要注意FTP协议的这些特性。

当需要保留文件属性或者需要递归的拷贝子目录时,可以使用rcp/scp等命令。

如果需要将文件以ftp传输到目的服务器上,必须在目的服务器上安装ftpserver,基本的安装和启动过程如下:

根据服务对象的不同,FTP服务可以分为两类:

一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,它允许任何人登录到FTP服务器,和服务器连接后,在登录提示中输入Anonymous,即可访问服务器。

Yumlist*ftp*(找到可用的Ftp包)

sudoyuminstallftp包

手工启动和关闭:

启动:

/usr/sbin/ftprestart关闭:

/usr/sbin/ftpshut

FTP服务器的配置:

为了确保FTP服务器安全,必须设置一些重要的配置文件,以更好地控制用户的访问权限。

这些配置文件是:

/etc/ftpusers;/etc/ftpconversions;/etc/ftp-groups;/etc/ftpphosts;/etc/ftpaccess。

利用这些文件,能够非常精确地控制哪些人、在什么时间、从什么地点可以连接服务器,并且可以对他们连接后所做的工作进行检查跟踪。

(1)/etc/ftpusers:

该文件夹中包含的用户不能通过FTP登录服务器,有时将需要禁止的用户账号写入文件/etc/ftpuser中,这样就可以禁止一些用户使用FTP服务。

(2)/etc/ftpconversions:

用来配置压缩/解压缩程序。

(3)/etc/ftpgroups:

创建用户组,这个组中的成员预先定义可以访问FTP服务器。

(4)/etc/ftpphosts:

用来根据禁止或允许远程主机对特定账户的访问,例如:

allowczc192.168.0.0/24denycdd10.0.0.0/8(表示允许czc用户从192.168.0这个网段连线访问,拒绝cdd从10.这个网段连线访问)。

(5)/etc/ftpaccess:

是非常重要的一个配置文件,用来控制存取权限,文件中的每一行定义一个属性,并对属性的值进行设置。

下面对它的一些常用配置做一点介绍:

定义用户类别:

格式:

class[类名][real/guest/anonymous][IP地址]功能:

这个指令的功能设定FTP服务器上用户的类别。

并可对客户端的IP地址进行限制,允许特定或者全部的IP地址访问FTP服务器。

登录重试次数:

在命令行中输入:

loginfails10,这表明如果10次还没有登录成功就切断连线。

密码检查:

格式:

passwd-check〈strictness〉warn。

是对匿名用户的密码使用方式的检查,其中〈strictness〉是三个可能的字符串之一:

None、Trivial、RFC822。

若选None,表示将不对口令做任何检查;若选Trivial,表示对口令有一定的要求,它需要在口令中至少要有一个@符号;若选RFC822,则表示最严格,要求E-mail地址必须遵守RFC822报文标题标准(如:

czc@)。

例如:

passwd-checkrfc822warn,表明密码的要求很严格,当密码不符合规定时出现警告信息。

登录人数的限制:

格式:

limit[类别][人数][时间][文件名]。

设置指定类别在约定时间内可以登录FTP的人数。

例如:

limitremoteAny/etc/many.msg,说明类别Remote类别在任何时间内登录人数不超过20个人,否则会显示Many.msg警告信息。

安装、配置好FTP服务器后,只需要在命令提示符后输入:

FTPServername,用主机名或希望连接的FTP服务器的IP地址代替Servername,按照提示输入用户名和口令,然后用标准的Linux上移或下移FTP服务器目录结构。

另外,也可以采用图形化FTP程序,包括窗口式gFTP,可以借助Web浏览器去访问FTP服务器。

在登录上ftp后,可以使用如下ftp命令进行操作:

FTP>!

从ftp子系统退出到外壳

FTP>?

显示ftp命令说明,和help相同,格式:

?

[command]说明:

[command]指定需要帮助的命令名称。

假如没有指定command,linuxftp命令参数将显示全部命令的列表。

FTP>append使用当前文档类型配置将本地文档附加到远程电脑上的文档。

格式:

appendlocal-file[remote-file],说明:

local-file指定要添加的本地文档,remote-file指定要添加local-file

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1