expectを使う
6月7日のエントリでインストールしたexpect。scpのパスワード認証で特定ディレクトリ以下の複数ファイルを転送するのに使っています。
作ったスクリプトがこんなの。
#!/bin/bash DATADIR=/home/hogehoge/ for i in `find $DATADIR -ctime -2 -type f -print` do /usr/local/bin/expect -c " spawn scp $i account_name@hostname:/export/home/account_name expect { \"Are you sure you want to continue connecting (yes/no)\" { send \"yes\r\" expect \"Password:\" send \"PASSWORD\r\" } \"Password:\" { send \"PASSWORD\r\" } } expect eof " done
scpで初めてのホストにつなぐと鍵ストアに入れますかってのがでるので、その分岐があります。最初に使うときだけにしか通らないけど。
findで見つけたファイル名の数だけscpが動作してしまうのがちょっとダサいところ。