lftp について
Vine Linux 2.1.5 にはじめから入っていたのでインストール記録はなし。

今のところ使う目的はホームページのアップくらいかな。
でも、lftp は結構便利なのでやり方を残しておく。



ページのアップの仕方。
ダイアルアップ接続後、ftp サーバーへ接続。
  $ lftp -u j_wada ftp://ftp.yo.rim.or.jp
  > Password: ( input password )

原因は分からないけど、login 直後はコマンドを何も受けつけない事が多々ある。
データー入力後、こっち側に戻ってこない。
そんな時は決め打ちで
   $ cd public_html
をすると cd が出来て、以降、コマンドを受けつけてくれる様になる。


接続したら、サーバーのホームページ用ディレクトリに入って、
  lftp :/> cd public_html/
  lftp :/> cd damex/ (damex 用のディレクトリ)

ローカル(目の前にあるPC)もディレクトリ移動。
アップするファイルのあるディレクトリに入って、
 lftp :/> lcd ~/lib/home.page/damex/

アップする。
 lftp :/> mput *.html
この場合はローカルにある全てのファイルをアップしている。
lftp は賢いから日付を比べて更新されたものだけをアップする(と思う)
ファイルが1つの場合は、
 lftp :/> put hoge.html
も使える。

これでページのアップが終了だけど、
続けて下層のディレクトリにあるファイルをアップするときは、
リモート(リムネット側)を1つもぐって、
 lftp /> cd data

続いてローカル側も1つ下にもぐって、
 lftp :/> lcd ./data/

アップする。
 lftp :/> mput *.html

はい、おしまい。
 lftp :/> exit




lftp でページのアップを自動化
用意するもの
   起動用スクリプト    ~/bin/damex-up
   設定ファイル       ~/.lftp/damex-up

設定ファイル ( ~/.lftp/damex-up )
~/.lftp/damex-up/ の中身
> open -u j_wada ftp://ftp.yo.rim.or.jp
> cd ~
> lcd ~
> #           ( casper )          ( rim )
> mirror -Rev lib/home.page/damex public_html

こいつの説明だけど、まず、lftp 起動時に自動的に ftp server に接続してくれるのが
  open -u j_wada ftp://ftp.yo.rim.or.jp

次に、リモート、ローカルのディレクトリをホームに移動しておいて、
  cd ~
  lcd ~

lftp の mirror コマンドを使ってローカル(~/lib/home.page/damex/) を
サーバー( ~/public_html/ ) にアップする。
  mirror -Rev lib/home.page/damex  public_html
この -R が reverse mirror (put files) で、
ローカルのファイル全て(下層のディレクトリを含めて)をアップしてくれる。
  -e はローカルにない(削除された)ファイルはサーバーからも削除。
  -v は verbose。

このコマンドを lftp の script として ~/.lftp/damex-up で保存。

起動ファイル ( ~/bin/damex-up )
あとは lftp を上の script を使用して lftp を起動 shell script を作るだけ。
  $ cat ~/bin/damex-up
  #!/bin/sh
  LC_ALL=C ; LANG=C ; LANGUAGE=C
    ログは英語で取るのが正しい大人です。
  lftp -f ~/.ftp/damex-up >& ~/tmp/damex-up.log
    -f がスクリプト指定オプション

これでダイアルアップ接続後、
  $ ~/bin/damex-up
  > Password: ( input password )
で、かってにページを上げてくれる。




lftp の良いとこ
たくさんあるけど、bash 並みの履歴、コマンドライン編集、が使用可能で、
更に豊富なコマンドがそろっている事。
Linux Japan の風穴さんがべたべたにほめるだけの事はあるね。

コマンド
!<shell_command> ローカルのコマンド実行
alias [<name> [<value>]] lftp 内でのアリアス設定。ちょっち bash と設定の仕方が違う。
lftp:~> alias la "ls -laF"
anon anon - login anonymously (by default)
bookmark [SUBCMD] bookmark add rim
で、リムネットに接続していたら次回以降、
  $ lftp rim で接続可能。
~/.lftp/bookmarks に内容が記載されるが、パスワードが丸見えになる場合もあるのでパーミッションに注意。
bookmarks 自身のパーミッションは 600 になっているけど、
$ chmod 700 .lftp/ もしときましょう。
cache [SUBCMD] cache command controls local memory cache
cat [-b] <files> 中身はなにかな?
cd <rdir> モート(向う側にあるPC)のディレクトリ移動。
lcd <ldir> ローカル(目の前にあるPC)のディレクトリ移動。
chmod mode file... リモートのパーミッション変更。
やばいものは全て 600
close [-a] Close idle connections.
debug [<level>|off] [-o <file>] Set debug level to given
exit [<code>|bg] さよならの合言葉
get [OPTS] <rfile> [-o <lfile>] ファイル1つだけをリモートからローカルへコピー。
help [<cmd>] ヘルプみー
jobs [-v] List running jobs.
kill all|<job_no> ザクっと。サクっと。
lftp [OPTS] <site> いいそふとだねー
ls [<args>] リモートのファイル表示。
2回目以降はキャッシュの内容を表示するのでディレクトリの内容が変わった可能性のあるときは rels を使う事。
rels [<args>] どう のっと ルック きゃっしゅ な ls
mget [OPTS] <files> 複数ファイルをイッキにローカルへダウン。ワイルドカード使用可能。
mirror [OPTS] [remote [local]] パーミッションから何まで全部コピー。
-R を付ければローカルからリモートへ。
mkdir [-p] <dirs> 穴を掘りましょう。
module name [args] Load module (shared object).よーわからん。
more <files> 個人的には less かな。
mput [OPTS] <files> 複数ファイルをまとめてリモートへコピー。ワイルドカード使用可能。
mrm <files> Removes specified files with wildcard expansion
mv <file1> <file2> えむぶい
nlist [<args>] List remote file names. 使い通なさそう。
open [OPTS] <site> どこから、おとそっかな。
pget [OPTS] <rfile> [-o <lfile>] Gets the specified file using several connections.
put [OPTS] <lfile> [-o <rfile>] ファイルを1つアップ。
pwd [-p] ここはどこ?
quote <cmd> Send the command uninterpreted.
reget [OPTS] <rfile> [-o <lfile>] ダメだったヤツをもう一度落してこよう。
renlist [<args>] Same as `nlist', but don't look in cache.
reput <lfile> [-o <rfile>] Same as `put -c'. ダメったのをもう一度アップしよう。
rm [-r] [-f] <files> さよーならー。
rmdir [-f] <dirs>
scache [<session_no>] List cached sessions or switch to specified session number
set [OPT] [<var> [<val>]] Set variable to given value.
site <site_cmd> Execute site command <site_cmd> and output the result You can redirect its output.
source <file> Execute commands recorded in file <file>
user <user|URL> [<pass>] Use specified info for remote login. ??
version どのくらい、オニュー?
wait [<jobno>] プレイバック、プレイバック
zcat <files> 圧縮してても平気さ。
zmore <files> 圧縮してても平気さ。
こーんなにある。
更に、ctrl + i で補完も出来る。
ぐっどですね。




alias
lftp の alias の張り方は2つあって、1つは上に書いたように
lftp 起動後に alias コマンドを使う方法。
でもこれだと次回起動時にまた張り直さないといけない。
そんなときに ~/.lftp/rc を作っておくと便利。
rc は run command の略だろうけど、ここに alias を書いておくと
次回起動時にもそのまま使えるようになる。
書き方はこんな感じ。
  > alias la "ls -laF"
  > alias rela "rels -laF"
  > alias c "cat"

まあ、いつも使うコマンドを書いておくと精神的にすごく楽。




戻る