サーバーに接続し、ファイル名に特定の日付を含むファイルをダウンロードするためにテストしている単純な SFTP スクリプトがあります。
rufus/scheduler を使用してスクリプトの SFTP 部分を X 分ごとに開始し、新しいファイルがサーバー上にあるかどうかを確認しています。
間違ったログイン資格情報を提供するなど、意図的にエラーを強制するまで、すべてが機能しているようです。次に、正確なエラーまたは例外をキャプチャし、ロガーを使用してログに記録できるようにしたいと考えています。エラーの詳細が表示されないか、またはレスキューを正しく使用していません:
scheduler = Rufus::Scheduler::PlainScheduler.start_new(:frequency => 3.0)
log = Logger.new('sftp.log')
log.level = Logger::INFO
begin
log.info 'starting sftp'
Net::SFTP.start(HOST, ID, :password => PW ) do |sftp|
sftp.dir.glob("./", "20120820*") do |entry|
puts entry.name
file = entry.name
success = sftp.download!(file, file)
end
end
rescue Exception => e
puts e.message # Human readable error
log.error ("SFTP exception occured: " + e.message)
end
scheduler.join