我有一些脚本必须从我的rails应用程序中执行。为了确保脚本做他们应该做的事情,我的应用程序必须显示/跟踪从脚本生成的日志文件的内容。
更详细的是:我希望脚本可以通过串行化连接(某种形式的滚动机制)配置一些黑盒设备。因此,我必须观察,例如,更新进程或重新启动连接的设备(以验证一切正常)。这就是我给日志文件写的东西。
因此,我需要:
我怎么能这么做?示例将是非常感谢的!
非常感谢!
发布于 2012-04-27 17:59:24
对#1的回答非常简单,系统调用,即
ret = system('ls','-l')如果命令的退出状态为零,则ret将为真。$?将包含一个进程::status对象,您可以从中获取退出状态。
unless system('ls','-l','/a_bogus_dir')
logger.debug("ls failed with #{$?.exitstatus}")
end第二条的答案可以用几种方法来解决。您可以创建一个控制器操作,它简单地抓取文件系统中特定文件的内容,并返回内容。
def get_file_contents
File.open(params[:file_to_read],"r") { |f| @contents = f.read }
respond_to |format|
format.js
end
end然后创建文件get_file_contents.js.erb:
$('#display_div').html('<%= escape_javascript(@contents) %>');然后,您必须在页面上创建一个定时器来重复调用控制器操作,我使用jquery.timers。在计时器循环中,您将调用
$.get('/get_file_contents?file_to_read=public/logfile');这将击中控制器,获取文件内容,并执行get_file_contents.js.erb,这将使用文件的当前内容更新div。
您必须将路由/get_file_contents添加到routes.rb。
https://stackoverflow.com/questions/10351370
复制相似问题