実現したいこと
expectを使ってリモート先のファイルコピーを自動化しようとしています。
発生している問題・エラーメッセージ
以下のエラーが出力されています。
bash: sudo cp /var/log/maillog /home/user/: No such file or directory
該当のソースコード
expect部分のみですがソースは以下のとおりです。
=============
expect -c '
set timeout 3600
spawn env LANG=C ssh -i /home/user/.ssh/id_rsa user@hostname 'sudo cp /var/log/maillog /home/user/'
expect '/home/user/.ssh/id_rsa':
send "${Password}\n"
expect "$"
=============
試したこと
expectを使用せずssh単体で以下コマンドを実行したところ、ファイルのコピーに成功しました。
よって、sshのコマンド自体に問題はないことがわかります。
ssh -i /home/user/.ssh/id_rsa user@hostname 'sudo cp /var/log/maillog /home/user/'
expect内のsshコマンドで、コピー先ファイル名を指定していなかったので、「/home/user/maillog」とコマンドを修正して再度実行しましたが、「No such file or directory」が出力されました。
私の知らないexpectの制約があるのかと思いましたがそれを見つけられず、ここに質問した次第です。
ぜひご協力をお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/18 01:36