Hatena::ブログ(Diary)

みずぴー日記 Twitter

2007-07-23(月)

FTPからのダウンロード

| FTPからのダウンロードを含むブックマーク

30分プログラム、その88。

FTPからファイルをダウンロードするやつ。

#! /opt/local/bin/ruby -w
# -*- mode:ruby enconding:utf-8 -*-
#
# ftp_get.rb - 
#
# Copyright(C) 2007 by mzp
# Author: MIZUNO Hiroki <hiroki1124@gmail.com> 
# http://mzp.sakura.ne.jp/
#
# Timestamp: 2007/07/23 08:53:59
# 
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Ruby itself.
#

require 'net/ftp'
host,username,password,*_= ARGV

ftp = Net::FTP.new host,username,password
ftp.passive = true
ftp.chdir 'Logs'

# 最新のログから7日前までを取得
ftp.nlst.reverse[0,7].each{|filename|
  puts filename
  
  begin 
    ftp.get filename
  rescue => e
    puts "ERROR: #{e}skip #{filename}"
  end
}

これだけだと対して、おもしろくないけど、id:mzp:20070722:ftpと組み併せると、FTPで「最近更新されたファイルは?」が実現できる。

#!/bin/sh
####################
# setting
####################
LOG_HOST=example.com
LOG_USER=foo
LOG_PASS=bar

UP_HOST=example.com
UP_USER=hoge
UP_PASS=hage

# clean
rm -f *.log

# get log file
echo "get log file"
ruby ftp_get.rb $LOG_HOST $LOG_USER $LOG_PASS

# analyze
echo "make ranking"
ruby ftp_recently.rb *.log > updates.txt

# upload
echo "upload"
ftp -n $UP_HOST <<EOF
user $UP_USER $UP_PASS
passive
binary
put updates.txt
bye 
EOF

mirakuimirakui 2007/07/23 23:19 Javaも日本語識別子が使えるけど、こういうのってなかなか使う勇気が出ないよね。
使ったらダメな理由ってあんまり無い気がするんだけども。
海外にコミットするわけじゃなし。

dmpdmp 2007/07/23 23:43 utf-8なら!utf-8ならきっとやってくれるっ!
でもBOM読めないjavadocの文字化けだけは勘弁な(’A`)

mzpmzp 2007/07/23 23:55 Unix環境だと、日本語が達者でないソフトがそこそこ居るので、日本語というだけでちょっとためらいますね。
でも、日本語のほうがわかりやすい場合は、ためらわずに使うべきなのかなぁ。

トラックバック - http://d.hatena.ne.jp/mzp/20070723/ftp
リンク元