2012-09-19 4 views
0

서버에 연결하여 파일 이름에 특정 날짜의 파일 또는 파일을 다운로드하는 간단한 SFTP 스크립트가 있습니다.Ruby Net-SFTP 캡처 및 로그 예외

새로운 파일이 서버에 있는지 확인하기 위해 스크립트의 SFTP 부분을 X 분마다 시작하려면 rufus/scheduler를 사용하고 있습니다.

잘못된 로그인 자격 증명을 제공하는 등 의도적으로 오류가 발생할 때까지는 모두 작동하는 것 같습니다. 그런 다음 정확한 오류 또는 예외를 캡처하고 로거를 사용하여 로그 할 수 있기를 원합니다. 나는 오류 세부 정보를 받고 있지 않다 아니면 내가 제대로 구조를 사용하지 않는 오전 :

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 

답변

4

:verbose => Logger::DEBUG 작업을 추가합니까?

Net::SFTP.start(HOST, ID, :password => PW, :verbose => Logger::DEBUG) do |sftp|