ftpのログインを簡略化する.netrc

ftpコマンドを使う際、~/.netrcを使ってログインを簡略化できる。
machineでサーバを指定し、そのサーバにログインする際のユーザ、パスワード、初期化処理(initという名のマクロ)などを記述できる。
また、defaultを使えばmachineエントリのない全てのサーバに対するデフォルト設定を書ける。


例えばこんな感じ。

machine web-server login www password PASSWORD
macdef init
cd /var/www/html
ascii

default login mikeda password PASSWORD
macdef init
cd /tmp
binary
hash
prompt


WEBサーバにはwwwユーザで、その他はmikedaユーザでログインする。初期化処理は見ての通り。
注意点はファイルのパーミッションを600にすること(セキュリティ上、というかそうしないと動かないようになってる)、マクロの終わりと次のエントリの間に空白行を必ず挿入すること。



initで指定してるftpコマンドについていちおう。
hashはファイル転送の進行状況を表示させるオプション。1024バイトごとに#が表示される。(大きなファイル転送時にはわけわからんようになるから%表示にできないかな・・・)
promptは対話モードをオフにする(切り替える)。mput,mgetで複数ファイルを転送するときにいちいち可否を聞かれなくなる、便利でちょっと怖いコマンド。