FTP

lftp

インストールは元々入ってるかパッケージから。sftpも使えるしncftpよりこっちがいいかも。

.ssh/configを設定していないと鍵認証でsftpするときはローカルの鍵はid_rsa、リモート側はauthorized_keysじゃないとうまくいきません。

lftpの起動

$ lftp

サーバへのログイン

#lftpのプロンプトを立ち上げた後
lftp :~> open site -u user
#とか直接だと
$ lftp site -u user
$ lftp ftp://user:pass@host:port

sftpだと

$ lftp sftp://user:pass@host:port

ブックマーク

よく使うサイトなんかをブックマークに登録。

lftp :~> bookmark  [subcommand]
サブコマンド 動作
add <name> [<local>] ブックマークに登録
del <name> ブックマークから削除
edit ブックマークを編集(viで?)
list ブックマークのリストを表示

【例】 今ログインしているサーバをmyserverという名前でカレントディレクトリを/homeにして登録

lftp :~> cd /home
lftp :~> bookmark add myserver

ブックマークを使うときは

lftp :~> open bookmarkname

~/.lftp/bookmarksにブックマークの情報が記録されるのでbookmarksをいじれば直接編集できる

sudo emacs ~/.lftp/bookmarks

デフォルトだとブックマークにパスワードは保存されないので下記のようにして パスワードも保存されるようにする。

$ echo 'set bmk:save-passwords 1' > ~/.lftprc

ミラーリング

lftp :~> mirror [OPTS] [source [target]]

リモートファイルをミラーリングダウンロードします。

コマンド 動作
-e 同期
-n 新しいファイルだけダウンロード
-r 再帰しない
-R ミラーを逆にする(ローカルファイルをput)
-L シンボリックリンクもファイルとしてダウンロード
-X 除外ファイルを指定(下記参照)

【例】ローカルの/home/public_htmlディレクトリ以下のファイルをリモートの/var/www/にアップロードしたい場合

lftp :~> cd /var/www
lftp :~> lcd /home/public_html
lftp :~> mirror -R

【例】ローカルの~/Sitesディレクトリ以下のファイルをリモートの/var/www/に更新が新しいファイルだけ上書きアップロードし、 ローカルになくリモートにのみあるファイルは削除(同期)したい場合

lftp :~> cd /var/www
lftp :~> lcd ~/Sites
lftp :~> mirror -R -e -n

コマンド

基本コマンド

動作 コマンド
リモートでcd cd
ローカルでcd lcd
リモートでls ls
ローカルでls !ls
リモートのファイルをダウンロード get
ローカルのファイルをアップロード put
複数アップロード mput
複数ダウンロード mget
リモートでchmod chmod
'glob rm'と同じ globは下記 mrm

ディレクトリ

ディレクトリごとアップロードやダウンロードしたい場合は mputやmgetで-dオプションを。

lftp> mput -d foo/*

パターンマッチ

glob [-d] [-a] [-f] command patterns
オプション なんか
-f plain files (default)
-d directories
-a all types

【例】

lftp :~> glob -f ls .* #始めの文字が.のファイル

特定ファイルの除外

.gitファイルとかpsdファイルを除外したい時

lftp :~> mirror -R -n -X *.psd -X .git/

致命的エラー: Certificate verification: Not trusted

ロリポップのftpにアクセスしようとしたらこのエラー。
lftpにログイン後、下記のコマンドで一時的に回避

set ftp:ssl-allow off

NCFTP

にっくえふてぃーぴー
http://www.ncftp.com/
高機能なCUI FTPソフト GUIのftpソフトが重くていやって人に最適。
主な機能は

  • タブ補完
  • put,getにワイルドカードが使える
  • ブックマーク機能
  • レジューム機能

ほかにもいろいろ・・・らしい

コマンド

ncftpの起動

$ ncftp

初めてのサイトにログイン

ncftp> open -u [ユーザー名] -p [パスワード] [ホスト名]

例えば

ncftp> open -u [ユーザー名] [ホスト名]
ncftp> open [ホスト名]

でも入れる

$ ncftp -u [ユーザー名] [ホスト名]

みたいにftpコマンドのようにも使える

ダウンロード

ncftp> get [-flags] file1 [file2]

アップロード

ncftp> put [-flags] file1 [file2]
put,get 共通flag
flag 動作
-R ディレクトリを再帰
-z file1をリモートファイルパス,file2でローカルのパスを指定する.
-a アスキーモード
-f 全部上書き

終了

ncftp> quit  
または
ncftp> bye

その他のシェルなコマンド

cd,ls,mkdir,rename,rm,chmod,rm,pwdなんかも使える。
ローカルの場合は頭文字にlか!を付ける。(lcd,!ls)

ブックマーク

ブックマークエディターの起動

$ ncftp 
$ ncftp> hosts
動作 コマンド
サイトを開く <enter>
ブックマークの内容を編集 /ed
ブックマークを削除 /del
ブックマークのコピー /dup
新しくブックマークを作成 /new
ブックマークエディターを終了 <x>

/edでブックマークを編集する。

  A Bookmark name:            apple-tart
  B Hostname:                 ftp-apple-tart.jp
  C User:                     apple-tart
  D Password:                 ****************
  E Account:                  none
  F Remote Directory:         /
  G Local Directory:          (current)
  H Transfer type:            Binary
  I Port:                     21
  J Comment:                  apple-tart.net
 
  X (Done editing)

各項目の頭にあるアルファベットを押すと項目が選択されるので編集する。
例えばユーザー名を変更する場合 cを押して、新しい名前を入力する。
xで画面を抜ける

ブックマークに登録されていないサイトから抜けるときにサイトをブックマークに登録するか聞いてくる

You have not saved a bookmark for this site.
 
Would you like to save a bookmark to:
        ftp://ftpsite.jp:PASSWORD@ftpsite.jp
 
Save? (yes/no) yes # bookmarkを作る
Enter a name for this bookmark, or hit enter for "ftpsite": 
 
 
You logged into this site using a password.
Would you like to save the password with this bookmark?
 
Save?[no] #パスワードもセーブするかしないか

設定

prefsで現在の設定を確認できる

ncftp> prefs
prefs
anon-password                  NcFTP@
auto-ascii                     |.txt|.asc|.html|.htm|.css|.xml|.ini|.pl|.hqx|.cfg|.c|.h|.cpp|.hpp|.bat|.m3u|.pls|
auto-resume                    no
autosave-bookmark-changes      no
confirm-close                  yes
connect-timeout                20
control-timeout                100
logsize                        10240
pager                          more
passive                        optional
progress-meter                 2 (statbar)
redial-delay                   20
save-passwords                 ask
show-status-in-xterm-titlebar  no
so-bufsize                     0 (use system default)
xfer-timeout                   3600
yes-i-know-about-NcFTPd        no

~/.ncftp/prefs_v3を直接編集するか、setを使って値を指定する

ncftp> set connect-timeout 100
development_tool/ftp.txt · 最終更新: 2012/04/09 06:12 by eiji