linux 服务器互相之间怎么传输 90G 网站文件?论坛附件非常多 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
doufenger
V2EX    DevOps

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

  •  
  •   doufenger 2016-11-29 21:49:16 +08:00 10669 次点击
    这是一个创建于 3240 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    服务搭好后就不用管了,同步完以后停止服务就是了
    waruqi
        40
    waruqi  
       2016-11-30 07:14:28 +08:00 via iPhone
    scp
    lucifer9
        41
    lucifer9  
       2016-11-30 07:52:10 +08:00
    直接 scp ?
    好歹 tar -cJ /home/me/source/directory | ssh target tar -xJ --directory /home/you/target/directory 吧
    alouha
        42
    alouha  
       2016-11-30 09:44:38 +08:00
    tar 然后 scp ……
    ChopinWong
        43
    ChopinWong  
       2016-11-30 09:45:29 +08:00
    rsync
    goodryb
        44
    goodryb  
       2016-11-30 10:10:36 +08:00
    估计楼主的 VPS 磁盘性能不怎么样,瓶颈不在于网络,建议可以通过云服务的对象存储中转一下,国内提供云存储的基本都可以,推荐阿里云 OSS ,七牛,其它的不怎么熟悉。
    snopy
        45
    snopy  
       2016-11-30 10:39:11 +08:00
    供参考
    #!/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
        46
    hl  
       2016-11-30 10:50:37 +08:00   2
    有个高性能的方法:
    1.先在接收方执行:
    nc -l 6677 | tar -C 接收文件的目录 -zxf - #接收目录最好是个空目录,防止覆盖的风险

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

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

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

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

    syncthing 直接就可以用了。连脚本都省了。
    shiji
        66
    shiji  
       2016-12-01 05:33:26 +08:00 via Android
    sftp 的话,你可别在本地分别连接两个服务器,然后从一个拖到另一个上,这样能快就怪了。

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

    表示我这的备份中心服务器每天 1 点~4 点都至少传输 800G 内容 每天
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1474 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 16:42 PVG 00:42 LAX 09:42 JFK 12:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86