2013-03-29 20 views
7

私はサーバー上にあるすべてのファイルのリスト(特にそこにあるすべてのpdfファイル)を取得しようとしています。私は総司令官を使用して、ファイルを検索しようとしました。私はそこにあったすべてのpdfのリストを得ましたが、結果をエクスポートする方法はありませんでした。(私たちはそこに100.000+のファイルを持っています)FTPサーバーからのファイルのリストを取得

私はbashスクリプトを使って情報は、私は非常にLinuxで経験していない、と私は本当に何をやっているのか分からない。

私のスクリプトは次のようになります。

#!/bin/bash 
hostname="<host>" 
ftp -i -nv $hostname << EOF 
user <username> <password> 
ls -R 
EOF 

上記のスクリプトを実行している私は

?Invalid command 
501 Illegal PORT command 
ftp: bind: Address already in use 
221 Goodbye 

任意のヘルプを取得したりいただければ幸い検索するものに私を指しています。

答えて

4

データ転送にPASV(パッシブ)モードを使用するようにftpを設定してください。これは-pスイッチで行われました。

このftp-clientで再帰的なファイルリストを作成できるかどうかはわかりません。私の場合、ls -Rは現在の作業ディレクトリのファイルとディレクトリのリストを与えただけです。多分Recursive FTP directory listing in shell/bash with a single session (using cURL or ftp)がお手伝いします。カールと

+0

ありがとう!パッシブフラグが働いた – Raz

26

が、これは予想通り、上記のコマンドでなど*.pdf、などのパターンが動作しない
curl ftp://yourftpserver/dir/ --user username:password

+9

FYI: 'curl -l'は名前だけを返します。 –

+1

これを繰り返しスクリプトするにはどうすればよいですか? –

4

ncftpls ftp://yourftpserver/dir/*.pdf

注意便利です。

再帰的には、-Rを使用してください。その他のオプションについては、man ncftplsを参照してください。

は、ncftpパッケージによって提供されます。 RHELの場合、このパッケージはepelリポジトリにあります。

3
curl ftp://user:[email protected]<ip>/path/ 

最後の/は、ディレクトリの場合は必須です。これはカールバージョン7.29.0で動作しました

関連する問題