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

2012-09-05 01:21:52 +08:00
 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下一个服务器,有时会耽误一些时间!

不知各位有没有什么好的办法来解决!
10407 次点击
所在节点    Linux
44 条回复
blankyao
2012-09-05 01:25:35 +08:00
用rsync可以吧
013231
2012-09-05 01:36:46 +08:00
Dropbox?
wingoo
2012-09-05 01:51:42 +08:00
git?
bigeagle
2012-09-05 02:16:29 +08:00
eric_q
2012-09-05 02:41:05 +08:00
dsh?
kingv
2012-09-05 09:16:17 +08:00
Cofyc
2012-09-05 09:21:55 +08:00
fabric

python 程序,可以批量并行执行远程命令和操作
rivsen
2012-09-05 09:38:02 +08:00
... git push 搞定,哪里那么麻烦。。。
welsonla
2012-09-05 09:41:47 +08:00
scp,rsync,用scp比较方便一点
skydiver
2012-09-05 10:35:55 +08:00
没法并行吗,多个进程同时传?
ElmerZhang
2012-09-05 10:41:58 +08:00
rsync
gavingeng
2012-09-05 12:12:38 +08:00
@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-09-05 12:24:11 +08:00
@eric_q
刚搜了下dsh,感觉跟cssh相似,但不能解决我的问题!
服务器无法知道我的ip
gavingeng
2012-09-05 12:39:12 +08:00
@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-09-05 12:41:40 +08:00
rsync 绝对的推荐…… 部署男人袜我就是用的它,直接走 ssh 通道,下面是我用的参数,供参考:

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

推荐用 3.0 以上的版本,要自己编译,brew 里的版本好像比较旧
shanks
2012-09-05 14:44:48 +08:00
rsync推荐 +1
自动化部署,文件夹同步
clino
2012-09-05 16:00:12 +08:00
rsync +1
如果要批量执行命令就用 pssh

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

一些配置的同步也是用 rsync 来完成的
Ranler
2012-09-05 18:37:11 +08:00
我用pdsh:pdsh -w exec:host[1-20] scp FILE %h:/path/

可以并行处理
fanweixiao
2012-09-05 18:54:23 +08:00
sftp试过吗?
orzjerry
2012-09-10 22:04:16 +08:00
推荐使用rsync或者统一使用svn然后统一由rsync发布,这样能杜绝一定的误操作。或者git

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

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

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

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

© 2021 V2EX