• ベストアンサー
  • すぐに回答を!

SFTPからのmput、mgetエラー

SFTPでファイルの受信、転送をしようとしています。 複数のファイルが対象のため、mget、mputコマンドを使用したのですが、 Invalid Command と出力され、実行できません。 get、putはできるのですが。。。 何がおかしいのかわかりません。 どこか調べるところがあれば教えて頂けますでしょうか。 再導入が必要でしたら方法も教えて頂けると助かります。 OSはSolaris9です。 よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1763
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • hyter
  • ベストアンサー率73% (31/42)

sftpにログイン後に「help」か「?」と打ってみてください。 mget/mputが出なければ非対応かと。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

helpを打ったところ、mget、mputは表示されませんでした。 非対応なようですね。 どうもありがとうございました。

関連するQ&A

  • Linux ,sftpでファイルをつくる

    Linux超初心者です。 sftpでたとえば、stestと言うディレクトリを作って、それにsampleというファイルを作りたいんですが、どんなコマンドで作ったらよいでしょうか? cat > sampleでは、できないし、touchだったでしょうか? putやgetがいまいち理解できないんですが、これだったらどう使えば よいのでしょうか?sftpのコマンドがよくわからないので。 よろしくお教えください。

  • sftpで、mget * とした時にメッセージを表示しない方法

    sftp -b commnand_file XXX.XXX.XXX.XXX として、 command_file内で、mget * とした時に、 ファイルがないとエラーメッセージを表示されます。 このエラーメッセージをなくしたいのですが、 どのような方法があるでしょうか?

  • SFTP ハッシュコマンドについて

    現在、LinuxでFTPサーバを構築しております。 通常のFTPコマンドによるサーバへの接続の場合、ファイル転送状況を視覚的に確認 出来る方法として、hashをonにする方法がありますが、SFTPコマンドでサーバに 接続した場合、hashコマンドが存在しておらず、Invalid command.となってしまいます。 これば、サーバ側(VSFTPDなど)の設定による問題で解決出来るのでしょうか? あるいは、仕様によりコマンドがサポートされていないのでしょうか? 解決方法があれば、教えてください。宜しくお願い致します。

その他の回答 (1)

  • 回答No.1
  • Wr5
  • ベストアンサー率53% (2177/4070)

ええっと…そのSFTPサーバ自体にmget/mputコマンドが実装されているんでしょうか? openssh-5.7p1のsftp-serverには実装されていなさそうですが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

opensshではなく、OSのsshが入っているようです。 mget、mputは入っていないようです。 どうもありがとうございました。

関連するQ&A

  • sftpのディレクトリ制限について

    sftpのディレクトリ制限についてので質問です。 友人とのファイルのやり取りにSFTPを考えています。 そこで、ChrootDirectoryを使用してディレクトリ制限をかけたいと思っているのですが、 Webサイトなどを参考に設定してみましたが、うまく出来ません。 /etc/ssh/ssd_config ~略~ Subsystem sftp internal-sftp Match group sftponly ForceCommand internal-sftp ChrootDirectory /chroot/ X11Forwarding no AllowTcpForwarding no と設定し、 /etc/group sftponly:x:300: /etc/passwd user:x:300:300::/:/sbin/nologin とユーザーグループを作成し。 ls -l / drwxr-x---. 3 root sftponly 4096 1月 9 07:51 2013 chroot ls -l /chroot drwxrwxrwx. 2 user sftponly 4096 1月 9 07:51 2013 share を作成しました。 以上の設定をしていざsftpで接続してみると、 # sftp user@localhost Connecting to localhost... user@localhost's password: sftp> pwd Remote working directory: / sftp> ls Couldn't get handle: Permission denied sftp> cd share sftp> pwd Remote working directory: /share sftp> put a Uploading a to /share/a Couldn't get handle: Permission denied sftp> と上記の様にcdでのディレクトリ移動などはできますがファイルの一覧取得は権限がなくできませんでした。 ディレクトリ制限をしたユーザでsftpでファイルのやり取りをするためにはあとどのような設定が必要でしょうか? よろしくお願いします。 環境 OS:CentOS 6.3 openssh-5.3p1-81.el6_3.x86_64

  • FTPコマンドで複数ファイルをアップロードする

    どうか、お力をお貸しください。 テキストファイルに命令文を書いて、それをFTPコマンドで実行しています。 以下、テキストに書いたものです。 これは1ファイル用ですが、これを実行するとhogeというディレクトリに『123.csv』がアップロードされます。 open IPアドレス ユーザー名 パスワード put C:/123.csv /hoge/123.csv close quit 私がやりたいのは、指定のディレクトリ内の全てのファイルを転送することです。 複数ファイルの転送は、mputコマンドを使う、ワイルドカードで同一拡張子のファイルを全て転送できる、確認のプロンプトを出さない仕掛けが必要 ・・らしいことは分かったのですが、上手くいきません。 以下のように書いてはみましたが、失敗しました。 ftp -i open IPアドレス ユーザー名 パスワード mput C:/*.csv /hoge/*.csv close quit mput以下、どのように記述すればよいのでしょうか? くだらない質問かもしれません、申し訳ありません。 どうかお力をお貸しください、宜しくお願い致します!

  • shell lftpでsftp接続

    Shellのスクリプトの中で次のコマンドを記述しています。 lftp -u "user","pass" sftp://IP 操作対象ファイルがあるDIRに移動後↓ >mv *.csv home/oracle/work/ のように拡張子がCSVのファイルをすべてworkに移動したいのですが、 これをsh -x で実行すると、 Access fairure: No such file (*.csv) と出力されてしまいます。 複数ファイルのディレクトリ移動はできないのでしょうか? どなたかご存知の方がいればご教示いただきたく存じます。

  • VB6.0でFTPでのファイルの送受信

    VB6.0でFTPでのファイルの送受信(下記(1))をしようと考えております。 尚、コンポーネントは、インターネットトランスファコントロール(Inet)を使用しております。 (1)"リモートサーバーに対して、複数件のファイルを送信し、無事転送が完了したら(リモートサーバー の指定フォルダに送信された複数件のファイルがあるのを確認後)、  クライアント側のファイル(リモートサーバーに送信が済んだファイル)を消す" という処理を考えております。 ここで、質問なのですが (1)vbを使ったFTP転送で、複数件のファイルを一括転送(mputコマンドの使用)は、可能か?  (2)もし、(1)が不可能の場合、    "送信するファイルをputコマンドで1つ送って、リモート側にそのファイルがあるのを    getコマンドで確認して、もしgetであれば、クライアント側のそのファイルを消す" という処理を送信するファイル数分繰り返すことになるんですか?        1つのファイルの場合に、Inet1_State_Changeイベントで、ループさせstate = 12 の時( リモート側に正常に送信されたと考えて)、クライアント側のファイルを消していいのでしょうか?    VBのヘルプを見ると、state = 12 は、get処理で使用するというようなことを書いてありますが。     以上 

  • FTPのコマンド「mput」について

    FTPで、ファイルを一括して、サーバーに送りたいのですが、その際に 「mput *.* *.*」などとすると、それぞれのファイルが2回putされます。これは、仕様でしょうか。 例えば、1つのファイル「A.txt」を mput した場合と、put した場合では、下記のようになります。 <mput> ************************ ftp> mput A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.00Seconds 159232000.00Kbytes/sec. ************************ <put> ************************ ftp> put A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. ************************

  • さくらVPSの一般ユーザーにようるSFTP

    さくらVPSを利用しています(CentOS 5.7)。 SFTPでファイルをアップロードする段階で先に進めないでいます。 rootのSSHのログインを禁止し一般ユーザーで秘密鍵を使いログインしています。 一般ユーザーexsampleを作成しました。一般ユーザーexsampleはmkdir,rmなどはできません(Permission deniedが発生します)。 調べるとsudoを使うと良いとあるので設定を行いました。 ■グループwheelを設定 id exsampleは下記のようになりました。 uid=500(exsample) gid=500(exsample) groups=500(exsample),10(exsample) ■visudoでグループwheelにsudoを設定 #%wheel ALL=(ALL) ALL → %wheel ALL=(ALL) ALL ■exsampleユーザーにパスを設定 exsampleユーザーの.bash_profileにパスを通しました。 これでsudo mkdir, sudo rmコマンドを実行できるようになりました。 sshでログインしてコマンド操作をするさいはsudoを使うので良いのですが 一般ユーザーexsampleでFTPクライアントからSFTPでファイルを転送するときにエラーが発生します。 SFTPでサーバーへの接続は正常にできています。サーバー上にディレクトリやファイルを作成するさいPermission deniedが発生します。 エラーの発生は当然だと思うのですがいろいろ調べるとrootでのログインは禁止するのが良いと有ります。 パスワード認証も止めて秘密鍵で認証がよいともありそのようにしています。 SFTPを一般ユーザーで利用してファイルを転送することは可能でしょうか(FTPクライアントはFileZillaを使っています)。可能でしたら方法をお教えください。 ユーザーrootで行うしか無いのでしょうか。 ご回答よろしくお願い致します。

  • コマンドファイルからの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というのは、正常に処理が行われている場合でも 出力されるのでしょうか。

  • ftp処理でmove(移動)を行いたい

    バッチ処理でデータをftp受信しています。 --------------------------- ユーザ名 パスワード prompt mget abc*.log mdelete abc*.log bye --------------------------- このようなコマンドを行っています。 ftpサーバにはさまざまなファイルが随時生成されます。 この処理では定期的に abcで始まる全てのログファイルをgetし、 abcで始まる全てのログファイルをdeleteしています。 ところが、abcで始まるファイルの生成がランダムのため、 偶然mgetが終わった後でファイルが生成され、 mdeleteを行うと、getしていないファイルまで削除される恐れがあるのです。 そのため、一件ずつ移動を行いたいのですが、 調べてもmoveのようなコマンドがftpで見当たらないのですが なにか、moveに置き換わるような処理はないでしょうか? *windows同士の通信です。

  • shでftp⇒接続切らずに成否確認して削除可?

    ftpで多数のファイルを転送(put)したいです。 転送した後に転送エラーがないか確認し、 転送エラーがなければローカルのファイルを削除する、 ということを1ファイルずつ行いたいです。 ftpコマンドをヒアドキュメントやコマンドファイルを使用して実行する場合、 転送エラーがあったかどうかは、ftpの出力結果を見ないと分からないので、 いったんftpコマンドを終了する必要があると思います。 そうすると、1ファイルずつftpのコネクションを張りなおさないとならないので、 WAN経由での接続を考慮すると相当効率が悪いと思うのですが、 接続を切らずに実現することは可能でしょうか。 理想案: 転送先にftp接続 すべての対象ファイルに対し、  ┣ファイルをput  ┗putが成功したら   ┗ファイルを削除 ftp接続を切断 現実案: すべての対照ファイルに対し、  ┣転送先にftp接続  ┣ファイルをput  ┣ftp接続を切断  ┗putが成功したら   ┗ファイルを削除 現実案の実装だと、こんな感じかと思います。 実際に動かしてないので、間違いあるかもですが。 for file in `ls` do  ftp -n ${hostname} > ftp.log << _EOF   user ${user} ${pass}   put ${file}   bye  _EOF  if [ `grep "err" ftp.log` ]; then   exit 1;  else   rm -f ${file}  fi done  

  • PostgreSQL リストアエラー

    CentOS5.5×2 PostgreSQL8.4.4×2 リストア時にinvalid command \Nというエラーが出ます insertコマンドであれば普通に通るのですが、 出力ファイルが10G近くありダンプ+アップロード+リストアで一日半近く掛ってしまいます エディタで内容を確認しようにもファイルが大きすぎるため開けません どのようにすればリストアできますでしょうか