- ベストアンサー
- 暇なときにでも
SolarisからWindowsへFTPするときのオプション
Solaris8上でftpコマンドに関するのシェルを作成しています。 処理概要はSolaris上にあるファイルをWindwosのFTPサーバーに送信したいのです。そのFTP処理時、FTPの一連のコマンドを記入したテキストファイルを指定して実行したいのです。Windows上でバッチ処理をするときは、以下のように処理しています。 ftp -s:xxxx.txt (ここでxxxx.txtには、ftpコマンドが記入) Solaris上でftpのオプションをmanで確認したいのですが、それらしきものがありませんでした。 よろしくお願いします。
- ai5055
- お礼率100% (26/26)
- Solaris系OS
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
- 回答No.2
- Lean
- ベストアンサー率72% (435/603)
FTPコマンドに標準入力からFTPコマンドのサブコマンドを渡してあげればいいです。 以下、実行方法の一例です。 $HOME/.netrc(パーミッション0600に必ずする)に以下のように形式で記述 (他ユーザにパスワード等を見られる事を防げるし、FTPを行うシェルスクリプトを複数作成する場合、いちいちそれぞれに記述しなくて済む。また、パスワードを変更した場合、この1ヶ所を直せば済むという利点があります) machine FTPサーバ名 login ユーザ名 passwd パスワード 記述例) machine ftpserver login ftpuser passwd ftppasswd No.1の方のようなヒアドキュメントを使うなら 実行例) ftp -i << _EOF_FTPCMD_ open ftpserver cd download mget * bye _EOF_FTPCMD_ 質問のようなファイルとしてある場合には FTP.txt -------8<-------8<-------8<-------8<------- open ftpserver cd download mget * bye -------8<-------8<-------8<-------8<------- 実行例) # cat FTP.txt | ftp -i
その他の回答 (1)
- 回答No.1
- skoma
- ベストアンサー率52% (9/17)
Unix系ではこのようにします。 ftp -v -n << EOF prompt open <HOST> user <USER> <PASSWORD> cd hogehoge get hogehoge.sh hogehoge.txt quit EOF
質問者からのお礼
ありがとうございました。 参考になりました。
関連するQ&A
- FTPの作業をWindows上のバッチでおこないたい
こんにちは。Windowsは初心者です。 あるファイルを別のサーバーにFTP(PUT)したいと考えています。 コマンドプロンプトからFTPのコマンドをたたくのではなく なにかバッチファイル?のようなもので、中に一連のFTP処理を記述し バッチファイルを起動という形で処理を行ないたいのです。 バッチファイルの作成の方法がわかりません。 またFTPの記述の仕方がわかりません。あるファイルを別のサーバに FTP(PUT)したいだけなのです。またエラーも認知したいとも思っています。 どんな本を読めば分かりますでしょうか? また具体的なコード(バッチに記述するFTPのコード)を知っていましたら 教えて下さい。
- ベストアンサー
- その他(プログラミング・開発)
- solaris7でのcompress
いつもお世話になっております。 solaris7のcompressコマンドについて質問です。 compressに -f のオプションをつけても、戻り値が2で返ってきてしまいます。(圧縮したファイルが圧縮前のファイルより容量が大きい場合)。 manでcompressコマンドを確認しても、オプションで -f を使用した場合は、戻り値が2で返ってくることはなさそうなんですが・・・・・。 > ls -l file.txt -rw-r--r-- 1 zz001 zz001 0 Mar 24 21:06 file.txt > > compress -cf file.txt > file.txt.Z > > echo $? 2 > > ls -l -rw-r--r-- 1 zz001 zz001 0 Mar 24 21:06 file.txt -rw-r--r-- 1 zz001 zz001 3 Mar 24 22:12 file.txt.Z ちなみにwhichコマンドで/usr/bin/compressでした。 Solaris8では同様の処理をすると戻り値は0でしたが、どうにもわかりません。solaris7特有の動きなのでしょうか?
- 締切済み
- Solaris系OS
- コマンドプロンプト 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失敗の場合、メールを送りたくてこのようなバッチを作成しました。
- ベストアンサー
- その他(プログラミング・開発)
- Solaris系FTPシェルについて
Solaris6or7系でFTPシェルでファイルリストから連続してダウンロードしたいと思っていますが、 シェル初心者で、ファイルからの読み込み、ループ処理など何を考慮しシェル化すれば困っています。ご教授お願い致します。 #!/bin/sh cd /ファイル保存ディレクトリ ftp -n << EOF !echo start open ダウンロードサーバ user ユーザー パスワード mput ファイルリスト aaaaa bbbbb ccccc : : 数千ファイル !echo end bye EOF 条件として ・ファイル保存先にはリストのすべてのファイルが存在する ・リスト内のファイルは重複なし ・拡張子はすべて同じもの(実際はUNIX識別番号などです) ・ファイル及び転送先ディスクの容量は考慮しない 以上よろしくお願いします
- 締切済み
- Solaris系OS
- FTPの動作の違いについて
FTP接続中のlsの振る舞いに関してお伺いしたいと思います。 サーバの環境は下記になります。 ・クライアントOS(以下"CLI_OS"):Solaris2.6 ・FTP接続先OS(以下"FTP_OS") :Solaris9 CLI_OSのBシェル内でFTP_OSに対しFTP接続を行い、下記のコマンドを実行して CLI_OS側にファイルリストを出力しようとしております。 ftp> ls ?????.txt lsresult.txt 上記につきまして、?????.txtに該当するファイルがFTP_OS側に存在しないと、 CLI_OS側にはlsresult.txtが作成されないという現象が発生しております。 lsに該当するファイルがなかった時に表示される「No such file or directory」 というメッセージがlsresult.txtに出力される事を期待していますが、その メッセージが応答されていないようです。 プログラムからでなく、コマンドラインから同じ事をしても同様の振る舞いでした。 FTPコマンド実行時の違いについて、下記のことがわかっております。 (Solaris8のところに表示されているIPは伏せてあります) ---------Solaris8がFTP_OSの時---------------------------- ftp> ls ?????.txt lsresult.txt 200 PORT command successful. 150 ASCII data connection for /bin/ls (XXX.XXX.XXX.XXX,45207) (0 bytes). 226 ASCII Transfer complete. local: lsresult.txt remote: ?????.txt 49 bytes received in 0.012 seconds (3.90 Kbytes/s) ---------Solaris9がFTP_OSの時---------------------------- ftp> ls ?????.txt lsresult.txt 200 PORT command successful. 550 ?????.txt: No such file or directory. エラーメッセージの出力に関する設定、ftpdの違い、OSの違い等、疑うところは いろいろあるのですが、ftpのlsは機種等の環境に依存してしまうものでしょうか。 上記につきまして、ご回答をお願いします。
- 締切済み
- その他(OS)
- バッチファイルからftpを実行時に処理完了を待たない方法
ある市販のjava系のアプリから時間起動でバッチファイルを起動します そのアプリは同時に複数のバッチファイルを起動できない仕様で ある外部プログラム(バッチファイル)を起動したら処理の完了を 待ってから次の処理バッチファイルを起動するのです 同時起動はできません なので最初に起動したバッチファイルがフリーズしてしまうと 次のバッチファイルが起動できずに永遠と待ち状態になってしまうんです そのソフトのメーカーに問い合わせしてみたのですが 呼び出し側はタイムアウトさせるような設定はない仕様なので 呼び出ししたプログラムのほうでタイムアウトするようにして下さい という回答でした なんとか回避しようと そのバッチファイルは ftp -s:c:\cmd.txt というようにftpコマンドを利用しているのですが (稀に何らかの原因でftpがフリーズしてしまう現象があります) ftpコマンドがフリーズしてしまったらどうしょうもないですよね・・・ この現象を回避したくて バッチファイルを start ftp -s:c:\cmd.txt exit に変更しました こうすればftpの完了を待たずにバッチファイルが終了するので たとえftpの処理が一つフリーズしてしまったとしても 別のバッチファイルの起動は問題なく行えると考えたからです しかしその市販アプリが内部的にどのようにバッチファイルを起動しているかわからないのですがテストしてみましたところ (ftpのコマンドをわざとquitしないようにして終了しないftp処理にして バッチファイルを起動してみたのです) 結果としては起動したバッチファイルが完了したとはみなしてくれず 次のバッチファイル起動ができないまま永遠に待ち状態になってしまいました・・・ バッチファイルからftpコマンドを別プロセスで起動する (ftpの完了を待たずにバッチファイルを終了させる) という事はできないでしょうか? アドバイスお願い致します
- 締切済み
- その他(プログラミング・開発)
- windows2008でftpをバッチ実行する。
windows2008サーバーでバッチファイルを作成しftpで複数ファイルを自動転送しようと思います。 今まで(OSはXP)はうまく実行していたのですが、windows2008サーバーではうまくいきません。 ちなみにバッチファイルは @echo off echo ●FTP処理 C:\Windows\System32\ftp.exe -s:d:\ftp\tohost.txt echo on @echo off echo ●終了 tohost.txtの内容は open 192.168.1.1 Uid Pwd bin put d:\ftpdata\a1.txt /afld/a2.txt bye です。 何かwindows2008による特別な方法があるのでしょうか? よろしくお願いいたします。
- 締切済み
- その他(Windows)
- ftpコマンド出力結果の取得
ftpコマンドのバッチ処理によってファイルの一覧の結果を取得したいのですが、 リダイレクション等を用いても取得できません。 どのようにすればいいか教えてください。 **************状況************* OSおよびOSレベル:AIX5.2 シェル:Kシェル コマンドファイルの中身(ftp.txt) cat << EOF | ftp -n open SERVER user USER PW cd PATH ls -l bye EOF SERVER:実際のサーバー名 USER:実際のユーザー名 PW:実際のパスワード PATH:実際のパス これを以下のように実行し、結果を取得しようとしました。 # ./cmd.ftp > log しかし、出力ファイルlogの中身はカラっぽでした。 ところが、リダイレクションを外し、コマンドファイルのみを実行すると、結果が画面に表示されます。 何故、画面には表示されるのに、リダイレクションやパイプでは結果が渡されないのかが分かりません。
- ベストアンサー
- その他(プログラミング・開発)
- FTPコマンドのputについて
AIX、Kシェルです。 ftpでputする際、相対パスは使用出来ないのでしょうか? ex) ftp -nv open HostName user User Password cd tmp/testwork/ put ../file/xxxx.txt quit 上記で実行すると、 putのところで 「200 EPRT command successful. 553 ../file/xxxx.txt: No such file or directory」 というメッセージが出ます。 lcdで作業ディレクトリーを../fileに変更して、put xxxx.txt は出来るのですが、putで相対パスは出来ないのでしょうか? お手数ですが、何卒宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- Windows マシンでFTPバッチが動かない
Windowsサーバから、UNIXサーバにFTPでファイル取得しようとすると、エラーがでてすすみません。 コマンドプロンプトで 対話的に動かす分には問題なく動作するのですが、バッチで動かすと エラーがでてしまうのです。 動かそうとしているバッチファイルとその読み込みスクリプトは以下です。 (変数部分はぼかしています) ==== myftp.bat BGN ==== set dirname=%DATE:/=% mkdir D:\master\%dirname% ftp -s:ftpcmd.txt ==== myftp.bat END ==== ==== ftpcmd.txt BGN ==== open hoge user_naem pass_word bin lcd D:\master get file.txt quit ==== ftpcmd.txt END ==== これらを動かすと、 スクリプト ファイル ftpcmd.txt を開くときにエラーが発生しました。 というエラーがでて前に進みません。 対話ベースでは、ftpcmt.txt ファイルの内容をコピペして、きちんと動くので、 何が原因がわかりかねています。 どなたか知恵を貸してください。
- 締切済み
- ネットワーク
質問者からのお礼
すばらしい。 ありがとうございました。 大変参考になりました。