公開日: 2010年01月28日(Thu)
Linuxに『ncftp』というコマンドをインストールすると、コマンドラインからディレクトリごと一発でFTP転送することができるそうな。ncftp
は、普通の ftp
コマンドよりも高機能なFTPクライアントらしい。便利そうなので早速やってみた。
渋谷生活さんの解説に従って、NcFTPをインストールしてみた。
本家のダウンロードページからソースコードを入手可能。入手したのは NcFTP 3.2.3 のソースコード。
wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.3-src.tar.gz
# tar zxvf ncftp-3.2.3-src.tar.gz
# cd ncftp-3.2.3
rootになって、インストールする。
# ./configure
# make
# make install
これで、インストールされるコマンドは下記の通り。
今回は、この中の ncftpput
コマンドを使って一括アップロードをやってみる。
「あるディレクトリ以下をncftpでバッチ送信」するコマンドが、こちらのページで紹介されている。普通のFTPコマンドで同じことをやろうとすると、自分で再起処理を記述しないとできないので大変だが、ncftpput
なら1行のコマンドで解決してくれる。
# ncftpput \
-u {$FTPID}\
-p {$FTPPW}\
-P {$port}\
-t {$timeout}\
-v\
-m\
-R\
-r ${retryNum}\
{$FTPHOST}\
{$REMOTEDIR}\
{$LOCALDIR}/*
具体的な値を入れてみると、例えば次のようになる。
# ncftpput \
-u username\
-p userpasswd\
-P 21\
-t 300\
-v\
-m\
-R\
-r 10\
www.hogehoge.jp\
/htdocs \
/var/www/staging/htdocs/*
このコマンドで使われているオプションを LinuxZaurusWatch/ncftpputマニュアル翻訳 と照らし合わせてみると、次の通り。
このほか、コマンド上にパスワードが流れるのが気持ち悪い場合は、-f {$認証ファイルのパス}
オプションを使うと、認証情報をファイルに保存して指定できる。
シェルスクリプトなどに組み込んで、何かしらの一連の処理の最後に一括して転送するなど、何かと便利に使えそうだ。
関連リンク:
公開日: 2010年01月28日(Thu)