Net::SSHv2 を使用してサーバーに接続し、そのサーバーでスクリプトを開始します。これまでのところ動作していますが、スクリプトが 10 分以上実行されている場合や出力ファイルが大きくなりすぎた場合にスクリプトを中断したいと考えています。割り込みを受け取った後、スクリプトはシャットダウンし、いくつかの統計を出力します。
私の現在のコードは次のようになります。
File.open(filename, "w") do |f|
Net::SSH.start(host, user, password: password) do |ssh|
ssh.exec! "do_work" do |channel, stream, data|
f << "data"
#break if f.size > 1024 * 1024 * 100 #file size > 100 MB
#channel.send_data "^C" if f.size > 1024 * 1024 * 100 #file size > 100 MB
end
end
end
チャネルのブロックを開き、シェルを要求して、他にもいくつか試しましたが、うまくいきませんでした。