expectを利用して、sshやscpにおけるIDとパスワードを自動入力させる方法は、いろいろなサイトで公開されています。
今回、この記事を記載した理由は「password:」で止まってしまう現象が発生しました。
多くのサイトで記載されている方法では、この「password:」で止まってしまう現象を回避出来なかったため、その方法を記載します。
実際に使用したコマンドは以下の通りです。
# expect -c "spawn scp a.txt user@127.0.0.1:/home/user ; expect password: ; send passwd\r ; expect $ ; exit"
a.txtファイルを127.0.0.1のサーバ(今回は自分自身のサーバ)にあるuserというユーザの/home/userディレクトへコピーしています。
パスワードは「passwd」なのですが、その後ろに「\r」を追加することが肝でした。
これにたどり着くまでが長かった。。。(^^ゞ
でもこれで問題なく解決しました。
環境によって、この「\r」が必要ではない場合もあると思いますが、一応これも方法の一つと考えていただければ幸いです。