我在遠程服務器上有一個ruby腳本,我通過Net:SSH在本地PC上運行。Make Net:SSH更新exec塊中返回的數據包/塊更經常
遠程腳本需要幾分鐘才能運行,並將其進度輸出到標準輸出。
我遇到的問題是我的exec命令中的塊只在數據包/塊已滿時才被調用。
因此,我每分鐘都能在一次打擊中取得進步。
下面是一些削減的例子是說明我的問題:
服務器腳本:
(0.999).each do |i|
puts i
sleep 1
end
puts 1000
本地腳本:
Net::SSH.start('ip.v.4.addr', 'user', :keys => ['my_key']) do |ssh|
ssh.exec("ruby count_to_1000.rb") do |ch, stream, data|
puts data if stream == :stdout
end
ssh.loop(1)
end
是否有來自遠程任何方式腳本強制發送數據包/塊?
或者有沒有辦法在刷新之前設置一秒(或n位)的限制? (內網:SSH)
感謝您的幫助!
'STDOUT.flush'使它像所有我想要的一樣工作,非常感謝!正如你先發布的那樣,包括一個工作示例和一個鏈接到文檔的綠色勾號是你的。再次感謝! – complistic 2014-12-13 14:24:31