アプリ版:「スタンプのみでお礼する」機能のリリースについて

別サーバーに存在するファイルを、scpでダウンロードしています。
これをcronを使用して自動実行させたいのですが、パスフレーズ入力の自動化で悩んでいます。
expectを使ってみましたが、以下のようにエラーもなく、反応でした。
expectの書き方が悪いのだと思いますが、ご教授いただけましたら助かります。


○やりたいこと
サーバーA(linux)から、サーバーB(linux, 192.168.1.100)のファイルをデイリーで自動ダウンロードしたい。
以下のtest.shを作って実行してみましたが、エラーも無く無反応です。
expectは導入されています。


○環境
・サーバーAからサーバーBへは、SSHでアクセスできる。
・秘密鍵を/home/testuser/.ssh/に置いている。 
・サーバーBへは、パスフレーズを入力するだけでsshでログインできる。
・パスワードでの認証はdisable



■手入力では、このようにファイルをダウンロードできています。
$ scp 192.168.1.100:/home/testuser/test.txt ./
Enter passphrase for key '/home/testuser/.ssh/id_dsa': ★ここでパスフレーズを手入力★
test.txt 100% 5 0.0KB/s 00:00


■test.sh -----------
#!/bin/sh

FILE=192.168.1.100:/home/testuser/test.txt
TARGET=/home/testuser/
PASSWORD=hogehoge

expect -c "
set timeout 20
spawn scp $FILE $TARGET
#expect \"Enter passphrase for key '/home/testuser/.ssh/id_dsa':\" ;
#send \"$PASSWORD\r\";
"

■実行結果(エラー表示無し。ファイルはダウンロードされない)
$ sh test.sh
spawn scp 192.168.1.100:/home/testuser/test.txt /home/testuser/
$

以上、よろしくお願いします。

A 回答 (1件)

秘密鍵作成時にパスワード無しで作っとけばいいと思うんですが、だめですか?



うちのデータセンターのシステムでは、ファイル転送ユーザ(実際にはロックされたアカウントです)はパスワード無しでscpできるようにしています。
心配ならscponlyを入れておけばさらに安心と思いますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
お礼が遅くなってすみません。
今回はパスフレーズ無し秘密鍵を作ることにします。

お礼日時:2008/01/08 19:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!