• 締切済み

コマンドプロンプトのキー入力処理に自動的に入力する方法について

Rsyncを使ってLinuxからWindowsにファイルのコピーを使用と考えているのですが、 その際に、接続するときにパスワードの入力を求められるので、 自動化したいと考えています。 証明書を利用する方法以外で起動中のコマンドプロンプトに割り込み入力する方法など 考えているのですが、なかなかうまくいきません。何か別の方法でもよいので、良い方法はないでしょうか。 バッチプログラムとしては下記のとおりです。 --------------------- SET USER=test SET SERVERNAME=192.168.255.2 SET BACKUPDIR=/etc/backup/ SET BACKUPAFTER=backup rsync -avz -e ssh --delete %USER%@%SERVERNAME%:%BACKUPDIR% %BACKUPAFTER% > log --------------------- バッチプログラム実行時の待ちプロンプトが下記です。 このプロンプトが表示されたときに自動でパスワードを入力する方法がわかりません。 backup@10.44.202.24's password: 宜しくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.2

>下記のようにコマンドを記載したのですが、エラーがでてしまいます。 rsynで使えるプロトコルは、rsync rsh ssh とありますが、sshについては 「sshプロトコルを使うのが必須で、かつ、証明書を使わないのであれば、パスワード入力は必須」と書いたとおりです。 他のプロトコルについては、 「-e rsh でrshプロトコルを使うか、-e無しでrsyncプロトコルを使うかすれば出来そうです。 rshなら、Linux側で~/.rhostsファイルを使う。 rsyncなら、--password-file=FILE オプションを使う。」 と書いたとおりです。--password-file オプションはrsyncプロトコル専用です。rsyncデーモンと接続します。

  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

sshプロトコルを使うのが必須で、かつ、証明書を使わないのであれば、パスワード入力は必須ですよね。vbscriptでsendkeysでウィンドウへのキー入力シミュレートをすることも出来ますが、ウィンドウの内容を見ないでタイミングを計りながらなので、危ういですね。 -e rsh でrshプロトコルを使うか、-e無しでrsyncプロトコルを使うかすれば出来そうです。 rshなら、Linux側で~/.rhostsファイルを使う。 rsyncなら、--password-file=FILE オプションを使う。

football10
質問者

お礼

notnotさん ご回答ありがとうございます。 rsyncにPasswordオプションがあったんですね。 見落としていました。 下記のようにコマンドを記載したのですが、エラーがでてしまいます。 何か制限などあるのでしょうか。 ■コマンド rsync -avz --password-file=pass.txt -e ssh --delete %USER%@%SERVERNAME%:%BACKUPDIR% %BACKUPAFTER% > log ■エラーメッセージ The --password-file option may only be used when accessing an rsync daemon. rsync error: syntax or usage error (code 1) at main.c(1230) [receiver=3.0.2] 続行するには何かキーを押してください . . .

関連するQ&A

  • コマンドプロンプト 入力値を格納したい

    作成したバッチファイルを起動し、パスワードを要求しますが、以降は要求せずに、最初にコマンドプロンプトで入力された値をセットして起きたいのですが、どうしたらよいか教えてください。ちなみに、コマンドプロンプトでパスワードを入力する際は、値は表示されないようにしたいです。

    • ベストアンサー
    • MySQL
  • コマンドプロンプト(パスワード自動入力)

    コマンドプロンプトにてついて教えてください。 start /min "" "C:\Program Files\xxxxxxxxxxxxxxxxx\xxxxxxxxxxxxxxx.exe" 上記により、プログラムを自動起動するとIDとパスワードの入力画面が表示されます。 このIDとパスワードを自動で入力させるにはどうすればいいでしょうか?

  • コマンドプロンプト(2000)で入力値によって処理を変えたい

    コマンドプロンプト(bat)プログラムの途中で ユーザからの入力を促して入力された値を 変数としてセットし、その値をif文などで 評価することにより分岐させて入力された値によって 様々な処理を行わすことは可能でしょうか。 シェルスクリプトであればreadコマンドのような ものに変わるコマンドを期待しています。 宜しくお願いいたします。

  • ssh + rsync でパスワードを聞かれなくする方法

    SSH + rsync(rsync -e ssh ・・・で ssh 回線で同期)でファイルをコピーする時に、パスワードを聞かれなくする方法はないでしょうか? http://www.okweb.ne.jp/kotaeru.php3?q=323149 などを参考に、公開鍵を作りログイン先のauthorized_keysに登録しました。(公開鍵を作るときにパスフレーズを入力してません。) こうすると、たしかに"パスフレーズ"は聞かれないのですが、"ログインパスワード"は毎回聞かれます。これは仕方がないのでしょうか? ●ファイルのコピー先がファイアーウォールで ssh のポートくらいしか空いていないので、 ssh + rsync を使おうと思っています。 ●同期したいフォルダは複数あるので、スクリプトを作って rsync -avz -e ssh フォルダAを同期 ・・・ rsync -avz -e ssh フォルダBを同期 ・・・ ・・・ という感じで一気に同期できれば便利だな と思っていました。 ところが今のままでは、rsync コマンド一回ごとに ログインパスワードを入力することになってしまいます。

  • コマンドプロンプトで処理時間をカウント

    こんばんは。バッチ処理についてお教え下さい。 例えばあるexeを起動するバッチを1行で書くとします。 そのバッチを実行するとコマンドプロンプトが表示され起動しおわったらプロンプトは閉じます。 プロンプトが消えるまで、「.」を1こつづ増やしていきたいと思います。 Forループを使えばいいような気がするのですが、どのように文を書けばよいかわかりません。 やりたいことは、プロンプトが表示されている時、ユーザーは正しく動いているのかわかりません。 そこで「.」を1こづつ増やせばプログラムが動いていることがユーザーにわかると思うので、そのようにしたいです。 ご教授お願いいたします。

  • DOSプロンプトからFTP接続処理を自動化したい

    iPhoneからのため、カテゴリ違いご容赦ください。 Windows7です。 下記の処理をバッチスクリプトにて自動化したいです 1.DOSプロンプトからFTPサーバへFTP接続 2.FTPプロンプトからDOSプロンプトに戻る(切断ではなく、FTP接続を保ったまま) 3.以降にも自動化したい処理はありますが、今回は質問用のため省略します 2.を実現する方法として、FTPプロンプトで"! [コマンド]"が使えるとのことだったので、 それを利用して作成したものを実行したところ、 2.を実行し終えたところでバッチが止まってしまいます。 (フリーズ・操作不能ではなく、プロンプトのままユーザからの入力待ち状態) 何故このようになってしまうのでしょうか。 また、2.より先も自動化するためにはどう修正すればいいでしょうか。 ただし、今回は環境上、DOSコマンドとFTPサーバのftpコマンド以外は使用できません。 (その代わり、多少強引でも構いません)

  • コマンドプロンプトについて

    あるAPを自動起動させいのですが、普通にスタートアップにそのAPのショートカットを設定すると 「ほかのプログラムがビジー状態のため、この作業を完了できません。[切り替え]を選んでビジー状態のプログラムに移り、問題を解消してください。」 と出てきて、まともに起動できませんでした。そこで、sleepを入れてAPの立上げ時間を遅らせようと思い、バッチファルを作りました。 でも、バッチファイルを走らせるとコマンドプロンプトのWindowがひらくんですよね。 これをデスクトップ上に開かないでバッチファイルを起動する方法はありませんか? ショートカットの場合、プロパティを開いてリンク先に「/AutoWait」とすると、デスクトップにデカデカと表示されずに、ツールバーにこっそりアイコンができるじゃないですか。そんな感じでコマンドプロンプトが起動してバッチファイルが走る方法を教えてください。

  • rsyncやSSH接続ができません。

    ■rsyncがRSHでなく必ずSSH接続になってしまいます。 環境変数RSYNC_RSHもないのですが何故でしょうか? なおPort番号は22ではなく220をSSHにしています。 rsync -avz /home/test backup-server:/home/backup ssh: connect to host backup-server port 22: Connection refused rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(359) ■仕方なくSSHで接続しようと試みましたが今度はパーミッションエラーでした。 SSHのバージョンはサーバーは2で、クライアントはCentOS4.1ですがSSHの バージョンがわからない状態です。 SSHのバージョンはどう調べれば良いでしょうか? sync -avz -e "ssh -p 220 -oHostKeyAlias=test-server" /home/backup backup-server:/home/backup Permission denied (publickey). rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(359) なお、authorized_keysは、id_rsa.pubからコピーしてあり、644。 known_hostsには、test-serverは入っていて、644です。

  • コマンドプロンプトでパスワード入力をするには?

    タイトルの通り、コマンドプロンプトでパスワード入力をさせるプログラムを作りたいのですが、一般的に入力時に使用されているInputStreamReaderやBufferedReaderを組み合わせた方法では入力した文字がそのまま出力されてしまいますのでパスワードとして問題がありますよね。そこで、どのような文字を入力しても「アスタリスク(*)を出力する」あるいは「何も出力しない」ようにする方法を調べているのですがなかなかうまくいきません。これを実現するにはどのようにすればよいのでしょうか?

    • ベストアンサー
    • Java
  • コマンドプロンプトでコマンドが認識されません

    コマンドプロンプトへ種々のコマンドを入力すると、 全部下記のような文字がでてきます。 「”convert”は内部コマンドまたは外部コマンド、操作 可能なプログラムまたはバッチファイルとして認識されていません」 その後は、又入力待ち画面になります。 ご教示の程宜しくお願い致します。

専門家に質問してみよう