我猜这个部分有些问题。
check = %x( cat '/etc/apache2/ports.conf' )
我想从/etc/apache2/ports.conf获取内容并检查是否已经收听了端口8581,这是我的代码,它是一个部署后的任务。
desc "Ports Updation"
task :portsUpdation do
# Editing /etc/apache2/ports.conf
ports_file = "/etc/apache2/ports.conf"
run "#{try_sudo} chmod -R 0777 #{ports_file}"
check = %x( cat '/etc/apache2/ports.conf' )
puts check
unless /Listen 8581/.match check
run "#{try_sudo} sed -i '$ a\Listen 8581\n' #{ports_file}"
end
run "#{try_sudo} chmod -R 0644 #{ports_file}"
end
我运行了这个上限任务,变量'check'总是打印在本地的ports.conf。我想要的是来自服务器的内容。
当我运行此上限任务时,我被问到服务器密码。我也尝试过cap部署。结果相同。什么可能是pblm。
答案 0 :(得分:2)
如果您想远程执行命令,则需要像在其他所有地方一样调用run
!
答案 1 :(得分:0)
check = capture("cat /etc/apache2/ports.conf")
诀窍。此方法capture()返回传递的cmd的结果。