lftp 
lftp は高機能なコマンドライン FTP クライアント。
接続 
lftp ホスト名 -u ユーザ名,パスワード
ミラーリング(ダウンが mirror、アップが mirror -R) 
ディレクトリ指定は1個までしかできない
○mirror sub
×mirror sub service cgi-bin
サスペンド 
Ctrl+Zではサスペンドできない。suspendというコマンドでサスペンドできる。
省略してsuでもOK。
主要コマンド 
ls
pwd
lpwd
get
put
mget
mput
mirror
help
cat
cat hoge.txt | nkf -w
のようにパイプも使える。
設定(~/.lftp/rc) 
alias で独自コマンドを作成できる。
alias vi source -e ~/.lftp/vi.sh
alias diff source -e ~/.lftp/diff.sh
alias mirror-n mirror --script=lftplog.txt
alias mirror-rn mirror -r --script=lftplog.txt
set cmd:ls-default -F
lftp の source -e コマンドとシェルスクリプトを組み合わせると、いろいろできる。
/.lftp/vi.sh
#!/bin/sh
echo "get $1 -o ~/.lftp/edit.tmp.$$"
echo "shell \"cp -p ~/.lftp/edit.tmp.$$ ~/.lftp/edit.tmp.$$.orig && ${EDITOR:-vi} ~/.lftp/edit.tmp.$$ && test ~/.lftp/edit.tmp.$$ -nt ~/.lftp/edit.tmp.$$.orig\" && put ~/.lftp/edit.tmp.$$ -o $1; shell rm -f ~/.lftp/edit.tmp.$$*"
/.lftp/diff.sh
#!/bin/sh
tmp="~/.lftp/$1.remote"
echo "get $1 -o $tmp"
echo "!(diff -u $tmp $1 && echo "No difference.") | nkf -w"
echo "!rm $tmp"
Tips 
更新されているファイルを確認する 
mirror --script=log.txt
とすると、実際には実行せず、実行するコマンドがlog.txtに書き出されるので、ローカル側で変更されているファイルが確認できる。