- ベストアンサー
FTPでリモートのファイル一覧取得
BashでFTPでリモートに接続し、リモートの対象フォルダ内のファイル一覧をローカルフォルダ内にファイルとして出力するにはどうしたらいいのでしょうか? 教えて下さい。
- rickgogo
- お礼率93% (174/186)
- その他(プログラミング・開発)
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
bashということは、Unix系のコマンドライン操作ですね。 ftpコマンド処理を自動化するようにして、その標準出力をファイルにリダイレクトすればできると思います。 例えば、ftp.batに以下の内容を書いておきます。 --------------------------------------- open ftp.hoge.com user USER PASSWD cd DST_DIR ls --------------------------------------- ※ USERはftpサーバのユーザ名です。 ※ PASSWDはftpサーバのパスワードです。 ※ DST_DIRはlsしたい対象ディレクトリ(のフルパス)。 このファイルを使って、-nオプション付きでftpプログラムを以下のように実行します。 ftp -n < ftp.bat > ls.txt ls.txtには、目的のディレクトリでlsした結果が書き込まれます。 「ftpコマンド処理を自動化する」については、参考URLを見てください。Windowsの標準のftpでも同じことができますが、ちょっとお行儀が違うようです。Windowsについては、以下を参考にしてください。 http://www.atmarkit.co.jp/fwin2k/win2ktips/270ftpscript/ftpscript.html
関連するQ&A
- FTPでファイルの一覧が取得できない
Webページをアップロードする際、FTPソフト(Next FTP)でサーバーに接続するところまでは成功するのですが、その後「ファイルの一覧を取得しています」というメッセージがでたままいっこうにリストが一覧できません。そのまま放置しておいても同じメッセージのままで停滞しています。 以前はこのようなことはなく、すんなり一覧できていたのですが、ここ2、3日から急にそのような状態になりました。このままではファイルをアップロードできないので困ってしまいます。ちなみに他のFTPソフトや、通信環境でも試してみましたが同じ結果でした。いったい何が原因でしょうか?
- 締切済み
- その他(インターネット・Webサービス)
- ssh経由のftpでファイル一覧が取得できない
sshのポート転送を利用してftpサーバにアクセスしようとしているのですが,ログインしてから,ファイル一覧を取得するときに,PASVモードで送られてくるアドレスがローカルになってしまうみたいでつながりません.おそらく,サーバの設定が悪いと思うのですが,どのようにしたらよいでしょうか? 一応,ログをのせておきます. >PASV 227 Entering Passive Mode (127,0,0,1,190,89) ダウンロードのためにホスト 127.0.0.1 (48729) に接続しています. 接続できません. ファイル一覧の取得を中止しました. ファイル一覧の取得に失敗しました. 切断しました
- ベストアンサー
- その他(OS)
- FTPサーバーから受信したファイル一覧からファイル名だけを取得したいです
こんばんは。いつもお世話になっております。 VB.NET+WinXPなのですが、 FTPサーバーにログインして、 LISTコマンドでファイル一覧を要求すると 「drwxrwxr-x 2 53 53 4096 Feb 28 2006 abc」 などというファイルやフォルダの一覧がかえって来ると思うのですが、 この中からファイル名やフォルダ名だけを取得するには どうしたらよいでしょうか。 TABやコンマが入っていないので、文字列関数で切り取るにも 区切りがわからないと思うのです。 ローカルドライブのDir関数なら、FileAttribute.Nomalや.Directoryの指定でファイル名だけや ディレクトリー名だけを指定して 取得することが出来るのですが、FTPサーバーの場合からの場合はどういった方法があるでしょうか。 参考程度でも構いませんので教えて頂けるとたすかります。m(__)m
- ベストアンサー
- Visual Basic
- Net::FTPを使いファイル一覧のみを取得したい
Net::FTPを使いファイル一覧のみを取得したい 以前の質問では大変お世話になりました。 「Net::FTPを使いフォルダ一覧を取得」 http://okwave.jp/qa/q5555220.html 今度は、Net::FTPを使いファイル一覧のみを取得したいと思ってます。 (ここから) use Net::FTP; my $ftp = Net::FTP->new("hoge.sav.ne.jpp", Debug => 0 , Passive => "true"); # 接続 $ftp->login("xxxx", "pass"); # ログイン my @dir = $ftp->cwd('/public_html'); my @dir = grep /^d/, $ftp->dir; # ← フォルダ一覧をdirコマンドで取得 my @dir_names_full = @dir[2..$#dir]; # 自フォルダと親フォルダ("."と"..")を除く。 my @dir_names_short = map { (split)[8] } @dir_names_full; # フォルダ名のみを取得 $ftp->quit; print "$_<br>\n" for @dir_names_full; (ここまで) my @dir = grep /^d/, $ftp->dir; # ← フォルダ一覧をdirコマンドで取得 の部分の「grep /^d/,」を削除したら、ファイルも一緒に表示させることは出来たのですが 正しく表示されませんでした。 (ここから) drwxrwx--- 2 xxxx xxxxx 48 Sep 3 14:59 Maildir drwx---r-x 2 xxxx xxxxx48 Sep 3 14:59 log -rw-r--r-- 1 xxxxnobody 2932 Oct 21 09:34 ent4.html -rw-r--r-- 1 xxxx nobody 2933 Oct 21 09:34 ent5.html -rw-r--r-- 1 xxxx nobody 2878 Oct 21 09:34 index.html (ここまで) 最終的な結果は (ここから) -rw-r--r-- 1 xxxx nobody 2932 Oct 21 09:34 ent1.html -rw-r--r-- 1 xxxx nobody 2932 Oct 21 09:34 ent2.html -rw-r--r-- 1 xxxx nobody 2933 Oct 21 09:34 ent3.html -rw-r--r-- 1 xxxx nobody 2932 Oct 21 09:34 ent4.html -rw-r--r-- 1 xxxx nobody 2933 Oct 21 09:34 ent5.html -rw-r--r-- 1 xxxx nobody 2878 Oct 21 09:34 index.html (ここまで) で表示させたいのです。 検索をしていたら、grepで出来そうなのかと思いやってみましたがうまくいきませんでした。 お手数かけます。 よろしくお願いいたします。
- ベストアンサー
- Perl
- FTPによるファイル取得について
一定の間隔であるサーバに接続し、画像ファイルを取得するプログラムを作成しています。 C言語で作成されたプログラムより、以下のようなシェルを実行し、画像ファイルを取得することを考えています。 ----------------------------- #!/bin/sh ftp -in <<EOL open 接続先IPアドレス user ユーザ名 パスワード lcd ローカルのディレクトリ cd リモートのディレクトリ mget data[ABC]_${d}.tar.gz quit EOL ----------------------------- ここで、以下のような問題に悩んでいます。 1.上記シェルを実行し、まさにFTPを行っているとき、LAN断などにより遠隔サーバとの接続が切れたときに、だんまり状態となってしまう。 2.FTPが成功した場合、取得したファイルの正当性が保証されるのか?せめてファイルサイズチェックだけでも行いたいが、FTP実行前にファイルのサイズが取得できるか?
- ベストアンサー
- Linux系OS
- ファイルの一覧が取得できません
自宅サーバーにてvsftpdでFTPサーバーを動かしています。動作確認のために友人にアクセスしてもらったのですが、ファイルの一覧を取得できずにフリーズしてしまいました。他のFTPサーバーではファイルの一覧は取得できました。また、私のPCで友人の家からアクセスしたのですが正常に接続することが出来ました。 原因と解決方法をご存知の方がいましたら回答いただけないでしょうか。 よろしくお願いします。
- 締切済み
- Linux系OS
- FTPで一覧リストを作成し取得(Get)したい
VBで、FTPサーバに接続し、指定のディレクトリーからいくつかのファイルをダウンロードしています。ダウンロードするファイル数が沢山あり、出来る事なら、そのディレクトリー内のファイル名の一覧リストがほしいのです。DOSコマンドから見るときは、'ls'や'dir'は使えるのですが、一覧の作成ができません。DOSプロンプトからFTPサーバをOPENし、dir > aaa.txt と入力すると自端末のC:\document and Settings\自分のフォルダー配下に、そのaaa.txt は作られるのですが、中身が入ってきません。ファイルの一覧がほしいとき、VBではどのようにコーディングすればいいのでしょうか。教えていただければ本当に助かります。よろしくお願いいたします。
- ベストアンサー
- オープンソース
- 【FTP】ファイル一覧の取得を中止しました. ファイル一覧の取得に失敗しました.
FTPでファイル一覧の取得ができません。 どこをなおせばよいでしょうか? 以下vsftpの設定とFFFTPのエラー内容です。 vsftp---- [m@m ~]# cat /etc/vsftpd/vsftpd.conf | grep -v ^# | grep -v ^$ anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=NO ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to blah FTP service. ls_recurse_enable=YES listen=YES pasv_enable=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES use_localtime=YES pasv_address=m.sample.jp use_localtime=YES pasv_addr_resolve=YES pasv_min_port=60000 pasv_max_port=60050 force_local_logins_ssl=NO force_local_data_ssl=NO listen=YES FFFTP---- ホスト m.sample.jp を探しています. ホスト m.sample.jp (xxx.xxx.x.xx (21)) に接続しています. 接続しました. 220 Welcome to blah FTP service. >USER user1 331 Please specify the password. >PASS [xxxxxx] 530 Login incorrect. >USER user1 331 Please specify the password. >PASS [xxxxxx] 230 Login successful. >>CD C:\Documents and Settings\a\デスクトップ >CWD / 250 Directory successfully changed. >XPWD 257 "/" >TYPE A 200 Switching to ASCII mode. >PASV 227 Entering Passive Mode (127,0,0,1,234,145) ダウンロードのためにホスト 127.0.0.1 (60049) に接続しています. 接続できません. ファイル一覧の取得を中止しました. ファイル一覧の取得に失敗しました.
- 締切済み
- Linux系OS
- FTPでファイル一覧が見れない?
今まで何の支障もなかったのですが Windows98と同時にFTPクライアントソフトを再インストールすると ファイル一覧が見れなくなりました。 DW4を使っていたのでFTPログを覗いたところ「LIST」で止まってました。 FFFTPを使ったところ、同じように「NLST -alL」で止まってしまいました。 telnetでログインしての「ls」は大丈夫なのですが ftpでログインしての「dir」と「ls」は同様に止まります。 他の無料サーバを試してみても、同様の結果でした。 これには、どういう原因が考えられるでしょうか?
- ベストアンサー
- その他(インターネット接続・通信)
- ftpでファイル追加バックアップ
ftpを利用してファイルのバックアップをしたいです。 リモート側はファイルがどんどん溜まっていきます(日に数10ファイル)。 ローカル側で同じディレクトリ内に1日1回 mget *.* でgetしてきたいのですが、普通にやると、 過去にgetしたファイルも改めて上書きでgetしてきてしまいます。 ローカルにあるファイル名とリモートにあるファイル名を見極めてローカルにあるファイル名の ファイルはgetしてこないコマンドはありませんか?
- 締切済み
- その他([技術者向] コンピューター)
お礼
出来ました!助かりました! ありがとうございました。