<?php
// ファイルをリモートホストにコピーします
ini_set("expect.timeout", 30);
$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");
$cases = array(
// array(パターン, パターンに一致した場合にこの関数が返す値)
array("password:", "asked for password"),
array("yes/no)?", "asked for yes/no")
);
while (true) {
switch (expect_expectl($stream, $cases)) {
case "asked for password":
fwrite($stream, "my password\n");
break;
case "asked for yes/no":
fwrite($stream, "yes\n");
break;
case EXP_TIMEOUT:
case EXP_EOF:
break 2; // switch 文だけではなく while ループも抜けます
default:
die("エラーが発生しました!");
}
}
fclose($stream);
?>
?>