zoukankan      html  css  js  c++  java
  • Linux主机之间传输文件的几种方法对比

    1.scp传输

    scp -r /data/file root@ip:/data/
    scp -C /data/sda.img root@ip:/data/img/
    #-r: 支持目录
    #-C: 启用压缩传送

    scp传输速度较慢,但使用ssh通道保证了传输的安全性

    2.rsync差异化传输(支持断点续传,数据同步)

    rsync -av /backup/ -e ssh root@192.168.1.110:/bak
    #-a: archive归档模式,表示以递归方式传输文件,并保持所有文件属性,链接等,等于-rlptgoD
    
    rsync——remote sync。rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync”算法,可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分。rsync可以执行完整备份或增量备份。它的主要特点有:
    1.可以镜像保存整个目录树和文件系统;
    2.可以很容易做到保持原来文件的权限、时间、软硬链接;无须特殊权限即可安装;
    3.可以增量同步数据,文件传输效率高,因而同步时间短;
    4.可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;
    5.支持匿名传输,以方便进行网站镜象等;
    6.加密传输数据,保证了数据的安全性;

     3.管道传输(降低IO开销)

    gzip -c sda.img | ssh root@192.168.1.110 "gunzip -c - > /image/sda.img"
    #对sda.img使用gzip压缩,-c参数表示输出到stdout,即通过管道传送
    #gunzip -c - 中的"-"表示接收从管道传进的sdtin

     4.nc传输(一种网络的数据流重定向)

    nc所做的就是在两台电脑之间建立tcp或udp链接,并在两个端口之间传输数据流,是一种网络的数据流重定向

    #使用dd结合nc命令网络克隆磁盘分区
    主机:
    dd if=/dev/vda | gzip -c | nc -l 50522
    待恢复机:
    nc 192.168.215.63 50522 | gzip -dc | dd of=/dev/sda

    #dd命令克隆/dev/vda磁盘,并使用gzip压缩,把数据流重定向到本机50522端口,待恢复机上使用nc连接主机50522端口,就能接收主机50522端口的比特数据流,然后使用gzip解压缩,并恢复到/dev/sda磁盘

    #dd命令读取的是磁盘扇区,所以不论磁盘文件系统,或者分区表,磁盘MBR信息,dd都能够复制,可以使用bs,count参数控制要克隆的大小
    #例如dd bs=512 count=1 if=/dev/vda of=mbr.img 只复制磁盘vda的第一个扇区512K字节数据(引导程序和分区表)

    5.建立文件服务器

    除了上面集中传输文件的方式之外,还可以通过简历文件服务器,然后通过网络挂载的方式传输,这种适用于经常性的拷贝,下面是一个挂载ftp服务器的例子

    挂载ftp服务器
    yum install curlftpfs
    mkdir /data/ftp
    curlftpfs username:password@ftp.yourdomain.com /data/ftp
  • 相关阅读:
    sed命令使用与正则表达式元字符
    centos6和centos7的网卡配置
    制作启动光盘centos6
    搭建一个私有CA
    yum命令
    while语法命令
    linux的进程与计划任务命令总结
    磁盘管理命令应用
    脚本命令与笔记
    重定向命令的使用
  • 原文地址:https://www.cnblogs.com/jython/p/4352322.html
Copyright © 2011-2022 走看看