FTP

コマンドで再帰的にFTPにてディレクトリ取得

estis2014/07/03 (木) 21:27 に投稿

wget -mc ftp://[USER]:[PASSWD]@[HOST]/[DIRECTORY]

カレントディレクトリに、[HOST]ディレクトリが作成される。
指定したディレクトリと同階層以下各階層に .listing ファイルを作成し、
各階層での LIST コマンド出力結果を保存する。

取得したファイルは、コマンド実行者がファイル所有者になる。

確認環境

$ wget -V
GNU Wget 1.12 built on linux-gnu.

+digest +ipv6 +nls +ntlm +opie +md5/openssl +https -gnutls +openssl 
-iri 

Wgetrc: 
    /etc/wgetrc (system)
ロケール: /usr/share/locale 
コンパイル: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/etc/wgetrc" 
    -DLOCALEDIR="/usr/share/locale" -I. -I../lib -O2 -g -pipe -Wall 
    -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 

ftp -d

estis2013/06/22 (土) 21:48 に投稿

ftpコマンドのdオプションを使うと、FTPの生のコマンドが確認できる。

$ ftp -d example.net
Connected to example.net.
220 203.0.113.1 FTP server ready
ftp_login: user `<null>' pass `<null>' host `example.net'
Name (exsample.net:localuser): user
---> USER user
331 Password required for user
Password: 
---> PASS XXXX
230 User user logged in
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
---> FEAT
211-Features:
 MDTM
 MFMT
 TVFS
 AUTH TLS
 MFF modify;UNIX.group;UNIX.mode;
 MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;

FTPのLIST, NLST, MLST, MLSD コマンド

estis2013/06/22 (土) 21:05 に投稿

あるディレクトリ内が

$ ls
合計 4
drwxr-xr-x 2 user group 4096  6月 22 10:26 etc/
-rw-r--r-- 1 user group    0  6月 22 10:27 file
lrwxrwxrwx 1 user group   14  6月 22 10:26 web -> ../public_html/

となっている場合、
FTPコマンドの出力の違い。

LIST

drwxr-xr-x   3 user group       4096 Jun 22 10:27 .
drwxr-xr-x  21 user group       4096 Jun 22 10:26 ..
drwxr-xr-x   2 user group       4096 Jun 22 10:26 etc
-rw-r--r--   1 user group          0 Jun 22 10:27 file
lrwxrwxrwx   1 user group         14 Jun 22 10:26 web -> ../public_html

NLST

file
etc
..
web
.

MLSD

modify=20130622012712;perm=adfrw;size=0;type=file;unique=802UE40004;UNIX.group=101;UNIX.mode=0644;UNIX.owner=20397; file
modify=20130622012659;perm=flcdmpe;type=dir;unique=802UE40003;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; etc
modify=20130622012617;perm=flcdmpe;type=pdir;unique=802UBB8001;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; ..
modify=20130608071752;perm=flcdmpe;type=dir;unique=802UBB8002;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; web
modify=20130622012712;perm=flcdmpe;type=cdir;unique=802UE40001;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; .

telnet で FTP

estis2013/06/22 (土) 11:51 に投稿

まず21番ポートへ接続。

$ telnet example.net 21
Trying 203.0.113.1...
Connected to example.net.
Escape character is '^]'.
220 203.0.113.1 FTP server ready

USERコマンドで、ユーザー指定。

user user

331 Password required for user

PASSコマンドで、パスワードを指定。

pass pass
230 User user logged in

データコネクションを使用するために
PASVコマンドで、パッシブモードに移行。