- ベストアンサー
バッチでFTPコマンド
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
proc_openという双方向のパイプを使うことで実現可能です。 当方はftp環境がないので例はmysqlですが、ftpコマンドも似た感じですね。 ftp起動後にoコマンドで接続し、ユーザパスを入力していく感じです。 $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("file", "/tmp/error-output.txt", "a") ); $cwd = '/tmp'; $process = proc_open('mysql -u root', $descriptorspec, $pipes, $cwd ); if (is_resource($process)) { fwrite($pipes[0], 'use データベースとか;'); fwrite($pipes[0], 'show tables;'); fclose($pipes[0]); $ret = stream_get_contents($pipes[1]); fclose($pipes[1]); $return_value = proc_close($process); } print_r($ret); しかし、運用面から見るとコマンド変更などに柔軟な対応が出来ないと思います。 そういう意味で、私はNo.1の方のやり方のとおり外部でコマンドを定義すべきと思います。
その他の回答 (4)
- saintandre
- ベストアンサー率31% (194/607)
fopenは試してみましたか? $handle = fopen("ftp://[ユーザー名]:[パスワード]@[ホスト]/[ファイル名]", "w"); 最近はセキュリティの問題からできないことが多いですが。
- yambejp
- ベストアンサー率51% (3827/7415)
PC-UNIX系であれば ncftp(ncftpget/ncftpput)などが便利ですね
- slate
- ベストアンサー率41% (14/34)
FTP バッチなどでいくつも検索出てきますよ。 Winだったら。 http://www.atmarkit.co.jp/fwin2k/win2ktips/270ftpscript/ftpscript.html
- iyomante
- ベストアンサー率60% (14/23)
スクリプト書いてもダメですか? 参考URLより ファイル名 : ftpCom.txt --------------------------- open www.rhythm-cafe.com user xxxx xxxx cd log binary get access.log bye --------------------------- ※一つ目のxxxx→ユーザ、二つ目のxxxx→パス exec("ftp -n < ftpCom.txt"); のような感じで。
関連するQ&A
- FTPの作業をWindows上のバッチでおこないたい
こんにちは。Windowsは初心者です。 あるファイルを別のサーバーにFTP(PUT)したいと考えています。 コマンドプロンプトからFTPのコマンドをたたくのではなく なにかバッチファイル?のようなもので、中に一連のFTP処理を記述し バッチファイルを起動という形で処理を行ないたいのです。 バッチファイルの作成の方法がわかりません。 またFTPの記述の仕方がわかりません。あるファイルを別のサーバに FTP(PUT)したいだけなのです。またエラーも認知したいとも思っています。 どんな本を読めば分かりますでしょうか? また具体的なコード(バッチに記述するFTPのコード)を知っていましたら 教えて下さい。
- ベストアンサー
- その他(プログラミング・開発)
- FTPのバッチファイル
ローカルPCからサーバーのPCへ毎日決まったファイルをFTPで伝送したいと思っています。今はFFFTPで、毎日手動でファイルをアップロードしていますが、DOS窓からFTP接続するコマンドをバッチファイルにすることってできないのでしょうか? できれば、そのバッチファイルをタスクスケジューラーに登録して日々自動でアップロードしたいと考えています。 ftp open 接続先 ユーザーID パスワード put ファイル名 といった内容をバッチファイルにしたいのですが、やり方をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?
- ベストアンサー
- その他([技術者向] コンピューター)
- コマンドプロンプト FTPコマンドについて
こんばんわ。 今回はコマンドプロンプトのFTPコマンドについて質問させてください。 処理概要 Windowsバッチにて、サーバA(Windows)からサーバB(UNIX)にFTPでファイルを複数送りたい その際、FTPが成功したか失敗したかをログファイルに出力したい。 以下プログラム set logDir=C:\hogehoge\log\ set settingFileName=C:\hogehoge\upload.ftp set execDate=%date:~-10,4%%date:~-5,2%%date:~-2,2% set logFileName=%logDir%log_%execDate%.txt echo FTPバッチ起動 >> "%logFileName%" cd C:\hogehoge echo FTP開始 >> "%logFileName%" ftp -s:"%settingFileName% >> "%logFileName%" upload.ftpというファイルには以下のように記述しております。 ftp open サーバIP ポート ログインID パスワード binary prompt mput *.csv bye この2種類のファイルで、FTPは出来るのですが、 どうにかして成功/失敗を判断したいです。 どなたかわかる方、ご教授お願いいたします。 補足 UNIX上のバッチ処理(Cシェル)でもファイルがあるかどうか判断していますが、 WindowsでFTP失敗の場合、メールを送りたくてこのようなバッチを作成しました。
- ベストアンサー
- その他(プログラミング・開発)
- コマンドプロンプトでFTPでエラー
FTPコマンドプロンプトについてお聞きしたいです。 フォルダの中に 01.bat、01.txt、index.htmlが入っています バッチの中身は ftp -s:ftp00.txt テキストの中身は open サーバー名 ユーザー名 パスワード asc put index.html disconnect bye これを実行したら以下の様になったのですが、なにが原因なのでしょうか? スクリプト ファイル ftp00.txt を開くときにエラーが発生しました。 それともう一つ質問があるのですが、 手動でFTP情報をコマンドプロンプトに入力していったら ホスト接続完了→ユーザー名完了→パス入力のところで なぜかキーボードが入力できなくなってしまいます。 なぜでしょうか? osはvistaです。
- 締切済み
- Windows Vista
- FTPについて
お世話になっております。 現在、自宅サーバを作成しております。OSはDebianを使用しております。FTPサーバを構築したいと思い、aptitudeコマンドを利用しProFTPdをインストールしました。 ◎インストール後 ProFTPdのインストールのみを行い、FFFTPを利用し接続の確認を実施したところ接続が途絶してしまいました。 FFFTPでの接続設定に誤りがあるのかと思い、ユーザー設定を以下のように行いました。 1、ホストの設定名:FTPサーバ 2、ホスト名(アドレス):サーバのIPアドレスを記述 3、ユーザー名:user 4、パスワード/パスフレーズ:userのパスワードを記述 その他:「PASVモードを使う」にチェックをし、「LISTコマンドでファイル一覧を取得」にチェックを付けました。 ○結果 接続ができませんでした。と、接続することができませんでした。 また、FFFTPのユーザー名は「root」を記述し、スーパーユーザーのパスワード/パスフレーズを入力し接続を試しましたが「接続できませんでした。」と返答が帰ってきてしまいました。 コマンドプロンプトでftp [IPアドレス]を入力しましたが、こちらも接続できませんのような返答が帰ってきてしまいました。 一体、原因がなんなのかわからず、困っております。 もし、原因が不明だった場合、他のFTPサーバを検討予定です。 ご教授の程、よろしくお願いいたします。
- ベストアンサー
- Linux系OS
- バッチファイルからftpコマンドを使って不特定のファイルをダウンロードしたい。
バッチファイル上のftpコマンドを使ってftpサーバーにあるカレントディレクトリー以下のファイルを一切合切ダウンロードしたいのですが、なんかいい方法ありませんか? ↓ここをなんとかしたいのですが dir|mget ※[]は各設定を入れる ↓バッチファイル ----------------------------------- ftp open [127.0.0.1] [User] [Password] dir | mget by --------------------------------
- ベストアンサー
- その他(ITシステム運用・管理)
- FTPのバッチファイルで日付を引数で与えたい
いつもお世話になっております。 FTPのバッチファイルに引数を与える良い方法をご存知ありませんか。 FTPの中では環境変数は使えないとのことですし、悩んでいます。 取得するファイルは日付毎のディレクトリに入っていて、取得後も日付毎のディレクトリに保管するので日付の指定が必要なのですが。 [ftpget.bat]------------------------------------------ ftp-s:ftpget.bat open ホスト名 ユーザー名 パスワード bin prompt cd /~対象ホストのディレクトリ~/YYYYMMDD/host1 !mkdir C:\YYYYMMDD lcd C:\YYYYMMDD mget *.txt quit ---------------------------------------------------- このYYYYMMDDの部分を、『ftpget.bat 20081125』のようにバッチを流す時の引数で与えたいです。 日付は3日前だったり昨日だったり今日だったりします。 今は直接ファイルを編集してYYYYMMDDの部分3箇所を手で直してからバッチファイルを叩いています。 よろしくお願いいたします。
- ベストアンサー
- Windows系OS
- バッチファイルからiniファイルを読み込みftpを行いたい
バッチファイルからftpを行い他のサーバにput(mput?)を行いたいのですが、idとパスワードを*.ini(名前は決めていません)から 取ってきたいのです。 どうすればいいのでしょうか?他のファイルを呼ぶにはcall分を使うと記述してあったのですが、*iniファイルでも大丈夫なのでしょうか? dosコマンドとかWindws環境に弱いので教えてください。お願いします。
- 締切済み
- Windows系OS
- コマンドファイルからのFTP転送の実行について
運用サーバからバックアップファイルを他のサーバに転送したく、 PHPからコマンドを実行する方法という下記のサイトを参考にPHPから実行 できないか模索しております。 http://piyopiyocs.blog115.fc2.com/blog-entry-760.html ftp.shで保存しておき、実行用のPHPに下記を記述し、 「<?php exec("/bin/sh ftp.sh"); ?>」 ftp.shと同じ階層にアップロードしてからphpファイルをブラウザから、 呼び出してみたものの、6GBあるはずのファイルが2GBほどしかアップロードされません。 ターミナルから、ftp.shを実行した場合は、 6GBでアップロードできております。 ●実行結果 ・PHP→ftp.sh:2GB(×) ・ターミナル→ftp.sh:6GB(○) ●PHP→ftp.shとターミナル→ftp.sh共に共通して、 ?Invalid commandという出力が行われます。 ?Invalid commandが出力されてはおりますが、 一応はファイルの転送が実行はされております。 PHPからの実行の場合は、PHPの容量制限かなにかが反映されてしまうのでしょうか。 PHPからの実行でアップロードファイルが途中で止まる現象を回避する方法は、ありますでしょうか。 ?Invalid commandというのは、正常に処理が行われている場合でも 出力されるのでしょうか。
- ベストアンサー
- Linux系OS
- FTPコマンドでバッチ処理をする際の解凍方法
FTPコマンド初挑戦中の者です。 FTPコマンドでバッチ処理をする時に、webサーバー上でZIPファイルを解凍する方法はありますか? ZIPファイルのアップロードまではできたのですが、解凍方法がわかりません。 自分なりに調べて、色々とやってみたのですが、うまくいきません。 どなたかご教授いただけますと幸いです。
- 締切済み
- その他([技術者向] コンピューター)