必要なときにパスワードを自動的に送信するリモートサーバーからSCPファイルにexpect/spawnとsendコマンドを使用してシェルを実現しました。
スクリプトはUNIXターミナルで正常に動作します。
それでも、C++プロセスでこのスクリプトを使用しようとしました。これは、system()またはpopen()関数によって呼び出されましたが成功しませんでした。このエラーが返されます: "ioctl(raw):I / O error"誰かが手がかりを持っている可能性がありますか?
これは私のスクリプトです:
#!/bin/bash
targetHost=$1
password=$2
sourceFile=$3
destRep=$4
expect -c "
spawn /usr/bin/scp -q $targetHost:$sourceFile $destRep
expect -i $spawn_id {
"*password:*" { send -i $spawn_id $password\r\n; interact }
eof { exit }
}
exit
"