linux下的批量上传文件到部署服务器,有哪些好用的命令或者工具

2012 年 9 月 5 日
 gavingeng
在之前的公司,是有中控机来做scp文件到各个部署服务器,现在的公司没中控的概念,都走本机,一般都是写脚本来做scp上传,如:

for((i=1;i<=15;i++));do echo $i;scp xxx.xxx user@192.168.3.$i:/tmp ; done

或者是
hosts="A B C D E F G H ..."
for host in $hosts;do echo $host; scp xxx.xxx user@$host:/tmp ; done

但是这样有个问题,就是在scp一个大的文件时,传完一个文件之后,才会接着在foreach下一个服务器,有时会耽误一些时间!

不知各位有没有什么好的办法来解决!
11871 次点击
所在节点    Linux
44 条回复
blankyao
2012 年 9 月 5 日
用rsync可以吧
013231
2012 年 9 月 5 日
Dropbox?
wingoo
2012 年 9 月 5 日
git?
bigeagle
2012 年 9 月 5 日
eric_q
2012 年 9 月 5 日
dsh?
kingv
2012 年 9 月 5 日
Cofyc
2012 年 9 月 5 日
fabric

python 程序,可以批量并行执行远程命令和操作
rivsen
2012 年 9 月 5 日
... git push 搞定,哪里那么麻烦。。。
welsonla
2012 年 9 月 5 日
scp,rsync,用scp比较方便一点
skydiver
2012 年 9 月 5 日
没法并行吗,多个进程同时传?
ElmerZhang
2012 年 9 月 5 日
rsync
gavingeng
2012 年 9 月 5 日
@Cofyc
@ElmerZhang
@welsonla
python的那个稍后可以试下,在HZLUG上问过了,加 & 后台就就可以,早上尝试过了,是OK的
for((i=1;i<=15;i++));do echo $i;scp xxx.xxx user@192.168.3.$i:/tmp & done

rsync ,在我的mac上还没装
gavingeng
2012 年 9 月 5 日
@eric_q
刚搜了下dsh,感觉跟cssh相似,但不能解决我的问题!
服务器无法知道我的ip
gavingeng
2012 年 9 月 5 日
@bigeagle
pssh,这个没怎么听说过,先看看

下面这个链接里有说
http://linuxtoy.org/archives/dsh.html

还有 pssh(比较成熟的项目) http://www.theether.org/pssh/
erlyssh(Erlang实现的,支持交互式的shell,可cd切换目录) http://code.google.com/p/erlyssh/
都是很好的分布式ssh shell工具。
avenger
2012 年 9 月 5 日
rsync 绝对的推荐…… 部署男人袜我就是用的它,直接走 ssh 通道,下面是我用的参数,供参考:

/usr/local/bin/rsync -avzP --exclude-from=rsync.exc . user@hostcom: -e "ssh -p 716" --delete

推荐用 3.0 以上的版本,要自己编译,brew 里的版本好像比较旧
shanks
2012 年 9 月 5 日
rsync推荐 +1
自动化部署,文件夹同步
clino
2012 年 9 月 5 日
rsync +1
如果要批量执行命令就用 pssh

我维护的一堆服务器基本上是这两个搞定的,例如批量的工作可以写一些python脚本,用 rsync 同步到服务器上去,然后用 pssh 批量执行

一些配置的同步也是用 rsync 来完成的
Ranler
2012 年 9 月 5 日
我用pdsh:pdsh -w exec:host[1-20] scp FILE %h:/path/

可以并行处理
fanweixiao
2012 年 9 月 5 日
sftp试过吗?
orzjerry
2012 年 9 月 10 日
推荐使用rsync或者统一使用svn然后统一由rsync发布,这样能杜绝一定的误操作。或者git

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/46919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX