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下一个服务器,有时会耽误一些时间!

不知各位有没有什么好的办法来解决!
10442 次点击
所在节点    Linux
44 条回复
gavingeng
2012-09-11 00:19:52 +08:00
@orzjerry
git/svn太麻烦了,不划算,而且传的也不是很快,再者如果是中控机的话还是不错的,其他就不好说了!

不过现在用的比较多的是
for((i=1;i<=15;i++));do echo $i;scp xxx.xxx user@192.168.3.$i:/tmp & done
然后通过cssh上去比较文件的md5来做 md5sum xxx.xxx
fire9
2012-09-11 01:18:22 +08:00
Capistrano+git+puppet
lemolee
2012-09-11 01:19:43 +08:00
zhuf
2012-09-11 12:28:08 +08:00
scp?
hyq
2012-09-11 12:59:39 +08:00
用&后台运行或者用python多线程
gavingeng
2012-09-16 23:23:46 +08:00
@hyq
python多线程?我记得是有个包,但忘了是哪个了
fanweixiao
2012-09-17 01:03:20 +08:00
其实git很好,配合自己写hook,不用很复杂的架构就可以批量搞定这些:)
sdslnmd
2012-09-22 00:17:47 +08:00
scp rsync 区别是?
xhat
2012-09-22 00:59:10 +08:00
一直用rsync,很方便。
cabbala
2012-09-22 01:26:24 +08:00
其实用shell也能写多进程。。。经常给2000多台机器分发文件的路过,要是串行分发,会死人的
Semon
2012-09-22 01:45:54 +08:00
rsync +1
tolbkni
2012-09-22 02:39:14 +08:00
@fire9 Capistrano + rsync + puppet
+ 10086
hzymyp
2012-09-22 03:21:30 +08:00
fabric
zava
2012-09-23 20:54:42 +08:00
rsync
xinzhi
2012-09-23 21:03:37 +08:00
scp -r 也是可以用的。
mengzhuo
2012-11-03 15:32:50 +08:00
必须是fabric
组合上git或者svn就更牛掰了
zhairuo
2012-11-03 16:19:03 +08:00
rsync +1
wyx
2012-11-26 15:51:22 +08:00
还是用scp,把scp这个部分封装成一个独立的函数,然后加一个&,可以用一个子进程来进行cp的事情
voidman
2012-11-27 14:52:06 +08:00
rsync +1
Renylai
2012-11-27 16:11:21 +08:00
rsync +1

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

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

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

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

© 2021 V2EX