我们有一组mac机器(主要是ppc),用于运行java应用程序进行实验。应用程序由包含一堆jar文件的文件夹、一些文档和一些shell脚本组成。
我希望能够将我们的实验的新版本推送到一个linux服务器上的目录中,然后指示mac更新他们的版本,或者如果他们还没有新的实验,则检索整个新的实验。
../deployment/
../deployment/experiment1/
../deployment/experiment2/
等等
我想想出一种自动化更新过程的方法。mac并不总是开着的,它们的ip地址是由dhcp分配的,所以服务器(有域名)不能直接联系它们。我想我需要某种后台程序在macs上运行,每分钟左右对服务器进行一次ping操作,以确定是否设置了一些“实验已更新”的公告。
有人能想出一个有效的方法来处理这个问题吗?解决方案可以包括现有的MAC应用程序,也可以包含我可以编写的shell脚本。
最佳答案
简单的subversion安装可能会取得一些成功;如果mac服务器场上有开发工具,那么它们已经安装了subversion。
您的脚本非常简单,只要您想在部署目录上经常运行svn up
,并从您的计算机检查对subversion服务器的更改。不需要在服务器上进行任何特殊设置就可以完成此操作。
如果你不关心历史,而且版本控制系统看起来太“重”,那么传统的unix工具称为rsync
,并且有很多关于its website的信息。
也许您正在寻找一个不涉及任何轮询的解决方案;在这种情况下,也许您可以在每个Mac上运行一个进程并注册一个本地网络Bonjour服务;DNS-SD库可能可供您选择的语言使用,在这种情况下获取活动机器的列表是一件非常简单的事情。我用ruby编写这个脚本是为了查找运行ssh的本地计算机:
#!/usr/bin/env ruby
require 'rubygems'
require 'dnssd'
handle = DNSSD.browse('_ssh._tcp') do |reply|
puts "#{reply.name}.#{reply.domain}"
end
sleep 1
handle.stop
关于linux - 自动将文件部署到多台Mac,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1064676/