doufenger
V2EX  ›  DevOps

linux 服务器互相之间怎么传输 90G 网站文件?论坛附件非常多

  •  
  •   doufenger · Nov 29, 2016 · 11592 views
    This topic created in 3627 days ago, the information mentioned may be changed or developed.

    用 scp 传着太慢,而且时间久了就会导致服务器没响应 今天想试试压缩了再传。。结果现在还没压缩好,还搞得一直要重启,不然会卡死( 2G 内存的破 VPS )

    79 replies  •  2016-12-02 13:11:37 +08:00
    airqj
    airqj
    Nov 29, 2016❤️9
    1
    顺丰.......
    l0wkey
    l0wkey
    Nov 29, 2016
    2
    rsync
    binux
    binux
    Nov 29, 2016❤️1
    3
    rsync -z
    l0wkey
    l0wkey
    Nov 29, 2016❤️1
    4
    另外,这些东西干嘛不丢到对象存储类服务。。
    doufenger
    doufenger
    OP
    Nov 29, 2016
    5
    @l0wkey 只有这个了吗 OTZ 。。 我就老安不好这个
    doufenger
    doufenger
    OP
    Nov 29, 2016
    6
    @l0wkey 已经放了。 但是还是想把文件也传好到新服务器。
    db520
    db520
    Nov 29, 2016 via Android
    7
    nginx
    wget
    shinko
    shinko
    Nov 29, 2016
    8
    我 800G 还是用 ssh 传~~
    l0wkey
    l0wkey
    Nov 29, 2016
    9
    @doufenger 曲线救国,不从旧服务器 copy ,从对象存储服务 copy 。
    doufenger
    doufenger
    OP
    Nov 29, 2016
    10
    ssh 传? 也是 scp 吗。 这个简单好用, 但是我传一会服务器就会卡死导致传输失败啊。 你怎么做到的
    doufenger
    doufenger
    OP
    Nov 29, 2016
    11
    @l0wkey 也是一个思路(⊙o⊙)哦 谢谢。 虽然还不知道应该怎么弄,但是可以去找找方法
    doufenger
    doufenger
    OP
    Nov 29, 2016
    12
    @shinko ssh 传? 也是 scp 吗。 这个简单好用, 但是我传一会服务器就会卡死导致传输失败啊。 你怎么做到的
    lslqtz
    lslqtz
    Nov 29, 2016
    13
    sftp 在服务端传
    Sasasu
    Sasasu
    Nov 29, 2016 via Android
    14
    才 90G , sshfs 挂上去凑活着用
    kozora
    kozora
    Nov 29, 2016
    15
    @doufenger linux 基本都自带了这个 不需要额外安装 另外你不需要免密码使用的话 现有的环境就可以用 跑个 screen 之后再开始传输 90G 不算大
    l0wkey
    l0wkey
    Nov 29, 2016
    16
    用的哪家,兼容 s3 的话,可以用 s3cmd
    s3cmd sync s3://xxxxx /home/xxx
    doufenger
    doufenger
    OP
    Nov 29, 2016
    17
    OVO 还有那么多方法。 等我一个个试吧
    M3ng
    M3ng
    Nov 29, 2016 via iPhone
    18
    btsync 可以么?
    akira
    akira
    Nov 29, 2016❤️1
    20
    论坛附件多数是图片和压缩包之类的,打多个包不压缩会更好
    doufenger
    doufenger
    OP
    Nov 29, 2016
    21
    @akira 我中午的时候就是进行了打包命令,被坑到现在。 现在还没打包好。一直在生成包
    jimzhong
    jimzhong
    Nov 29, 2016
    22
    才 90G 而已啦, mirrors.ustc.edu.cn 那么多文件都可以 rsync
    shinko
    shinko
    Nov 29, 2016
    23
    @doufenger 我大概 30W 个文件吧,不过我的是服务器
    missdeer
    missdeer
    Nov 29, 2016 via Android
    24
    ftp
    isCyan
    isCyan
    Nov 29, 2016
    25
    打包成 tar 然后 http
    ryd994
    ryd994
    Nov 29, 2016❤️1
    26
    几百 G 的 kvm 磁盘镜像,还不是一个 scp -C 直传
    连几十 G 的文件都搞不定,要 ssh 有何用
    打包慢就 tar cf - 直接 pipe 给 ssh 啊
    估计很多人还不知道 ssh 可以 pipe
    文件可压缩就加-C
    yangqi
    yangqi
    Nov 29, 2016
    27
    论坛附件大部分都是小文件,肯定要用 rsync
    colatin
    colatin
    Nov 29, 2016
    28
    rsync +1 不二的选择
    sylecn
    sylecn
    Nov 29, 2016 via Android
    29
    不用先压缩。用 rsync 传整个文件夹。如果服务器还有其它流量,可以加参数限制 rsync 带宽。
    qyz0123321
    qyz0123321
    Nov 29, 2016
    30
    @ryd994 支持,直接用 pipe 给 ssh ,然后用 dd 到远端。
    9hills
    9hills
    Nov 29, 2016 via iPhone
    31
    不是很理解楼主,二楼就给了答案……结果 21 楼还在纠结压缩的事情
    flyeblue
    flyeblue
    Nov 29, 2016
    32
    btsync 也是可以考虑的选项吧?这个比 rsync 用起来简单,个人感觉。
    bao3
    bao3
    Nov 30, 2016 via Android
    33
    楼主别太折腾,楞以选用开源的 syncthing 或者闭源的 resilio sync (就是上面两位说的 btsync ),直接就解决了你的问题。
    shiny
    shiny
    PRO
    Nov 30, 2016 via iPhone
    34
    rsync 可以断点续传,同时记得开个 tmux 或者 screen
    msg7086
    msg7086
    Nov 30, 2016
    35
    screen / tmux
    + rsync
    上 TB 的数据都这么传的。
    yegle
    yegle
    Nov 30, 2016
    36
    nc
    lakeview
    lakeview
    Nov 30, 2016❤️1
    37
    rsync 可以断点续传,写个 shell 脚本检测 rsync 进程,挂了就再跑一次
    minsheng
    minsheng
    Nov 30, 2016 via iPhone
    38
    一楼加一, U 盘拷一下顺丰就好,何必那么麻烦
    huijiewei
    huijiewei
    Nov 30, 2016
    39
    楼主用这个是最好的: https://github.com/axkibe/lsyncd

    服务搭好后就不用管了,同步完以后停止服务就是了
    waruqi
    waruqi
    Nov 30, 2016 via iPhone
    40
    scp
    lucifer9
    lucifer9
    Nov 30, 2016
    41
    直接 scp ?
    好歹 tar -cJ /home/me/source/directory | ssh target tar -xJ --directory /home/you/target/directory 吧
    alouha
    alouha
    Nov 30, 2016
    42
    tar 然后 scp ……
    ChopinWong
    ChopinWong
    Nov 30, 2016
    43
    rsync
    goodryb
    goodryb
    Nov 30, 2016
    44
    估计楼主的 VPS 磁盘性能不怎么样,瓶颈不在于网络,建议可以通过云服务的对象存储中转一下,国内提供云存储的基本都可以,推荐阿里云 OSS ,七牛,其它的不怎么熟悉。
    snopy
    snopy
    Nov 30, 2016
    45
    供参考
    #!/usr/bin/expect

    spawn scp root@ip:/root/check/today_count.log /home/autowork/everyweek_check/from_232
    expect '密码: '
    send "密码\r"
    interact


    备注: Linux 文件大于 1G 的使用 scp 会受限制,可采用 split 分片之后传输。
    1 )分割大文件
    split -b 1000m a.tar.gz a.tar.gz. #后面输出的文件名 a.tar.gz. 会以 a.tar.gz.aa , a.tar.gz.ab , a.tar.gz.ac 形式输出,

    2 )合并
    cat a.tar.gz.* > a.tar.gz
    hl
    hl
    Nov 30, 2016❤️2
    46
    有个高性能的方法:
    1.先在接收方执行:
    nc -l 6677 | tar -C 接收文件的目录 -zxf - #接收目录最好是个空目录,防止覆盖的风险

    2.再在发送方执行:
    tar -zcvf - 要发送的目录 | nc 接收方 ip 6677
    chuhemiao
    chuhemiao
    Nov 30, 2016
    47
    sf
    bullfrog
    bullfrog
    Nov 30, 2016
    48
    rsync 实际上是不行的,因为文件太多了,还是多线程 sftp 好使
    详见 http://unix.stackexchange.com/questions/165858/transfering-millions-of-files-from-one-server-to-another 最后一个答案
    Ansen
    Ansen
    Nov 30, 2016
    49
    rsync 或者 btsync
    winiex
    winiex
    Nov 30, 2016
    50
    配合 nohup ,从本机拷贝到远端
    nohup rsync -avz -P -e "ssh -p 目标机器 ssh 端口" ./本机文件路径 user@remote:远端机器文件路径 >> /tmp/rsync.log &
    cute
    cute
    Nov 30, 2016
    51
    tar zcf - attaches | ssh root@ip "tar zxf - -C /path/to/"
    caomaocao
    caomaocao
    Nov 30, 2016
    52
    ncc ncs?
    RqPS6rhmP3Nyn3Tm
    RqPS6rhmP3Nyn3Tm
    Nov 30, 2016 via iPad
    53
    出 BTSYNC 正版授权,官网购入没用过
    28ms
    28ms
    Nov 30, 2016 via iPhone
    54
    务必打包传,小文件影响传输效率
    imn1
    imn1
    Nov 30, 2016
    55
    zip -rq0
    wput
    Orzzzz
    Orzzzz
    Nov 30, 2016
    56
    送分题。

    split 分割文件成 900 个
    开 nginx ,将 900 个文件放到 web 目录下(端口弄得奇葩一点,二级目录奇葩一点)
    接受方服务器写个脚本,用 axel 下载
    将 900 个文件合并

    如果不放心还可以做个 MD5 校验

    如果这都跑不满带宽,你砍我。
    xarrow
    xarrow
    Nov 30, 2016
    57
    rsync
    cabing
    cabing
    Nov 30, 2016
    58
    一个服务器 nc -l 8888 > test.txt
    一个服务器输入 nc ip 8888 < test.txt
    采用 tcp 协议传输数据。
    P99LrYZVkZkg
    P99LrYZVkZkg
    Nov 30, 2016
    59
    resilio sync
    aaronzjw
    aaronzjw
    Nov 30, 2016
    60
    试试这个 sudo rm -rf /
    zzutmebwd
    zzutmebwd
    Nov 30, 2016 via iPhone
    61
    用 btsync 吧 快到爆炸
    zzutmebwd
    zzutmebwd
    Nov 30, 2016 via iPhone
    62
    @aaronzjw 你够了
    BFDZ
    BFDZ
    Nov 30, 2016 via Android
    63
    做成种子,用 rtorrent 传
    aaronzjw
    aaronzjw
    Dec 1, 2016 via Android
    64
    @zzutmebwd rsync 支持断点续传,貌似还可以自动同步的,网上教程 搜一搜
    bao3
    bao3
    Dec 1, 2016 via Android
    65
    楼上的各位写这么多不累吗?为什么不用简单的?

    syncthing 直接就可以用了。连脚本都省了。
    shiji
    shiji
    Dec 1, 2016 via Android
    66
    sftp 的话,你可别在本地分别连接两个服务器,然后从一个拖到另一个上,这样能快就怪了。

    另外一般经验是,即使在局域网里面,传输零散文件的速度也是非常慢的。要先打包再传输。 打包是 archive ,不需要压缩。
    loveminds
    loveminds
    Dec 1, 2016
    67
    rsync ,我们一直这样同步,另外是否你服务器磁盘 IO 性能较差
    timothyye
    timothyye
    Dec 1, 2016 via Android
    68
    rsync , scp
    emtohere
    emtohere
    Dec 1, 2016 via Android
    69
    rsync -av
    anyforever
    anyforever
    Dec 1, 2016
    70
    @shiny +1
    cheny95
    cheny95
    Dec 1, 2016
    71
    打包成压缩文件,用迅雷下载...
    cassia
    cassia
    Dec 1, 2016
    72
    硬盘搬运
    TaMud
    TaMud
    Dec 1, 2016
    73
    sysnc 文件多了后,占用内存极大,这个问题,楼上的一群人是怎么解决的??
    TaMud
    TaMud
    Dec 1, 2016
    74
    46 楼的方法 正确
    其它人都是半瓶水,或者说,根本没有搞过大量文件同步传输
    ryd994
    ryd994
    Dec 2, 2016
    75
    @TaMud 恕我直言, 46 楼用 nc 和我说用 ssh pipe 是一回事
    而且 nc 不加密不验证,安全性和 ssh 差远了
    hl
    hl
    Dec 2, 2016
    76
    @ryd994 嗯,有些考虑欠佳,默认了内网传输。多谢提醒。
    ryd994
    ryd994
    Dec 2, 2016 via Android
    77
    @hl 不,其实你的做法也没多大问题
    我只是被某人说其他人都是半瓶水感觉很不爽
    年轻气盛就是这个样子………
    TaMud
    TaMud
    Dec 2, 2016
    78
    @ryd994 忘了表扬你了, sorry
    realpg
    realpg
    Dec 2, 2016
    79
    才 90G

    表示我这的备份中心服务器每天 1 点~4 点都至少传输 800G 内容 每天
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5228 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 212ms · UTC 01:26 · PVG 09:26 · LAX 17:26 · JFK 20:26
    ♥ Do have faith in what you're doing.