当我尝试在我的 debian 上从 php5 执行程序时,网页卡住并且程序什么也不做。 当我从命令行调用它时,该脚本有效。安全模式被禁用。 Echo 标准输出不起作用(因为卡住)。 我在谷歌中阅读了一些关于 www 权限的答案,但如果这里有人有快速简单的回复......
如何调试?
php调用
exec("expect scripts/sshtest.exp $module");
脚本代码(我在这里找到 http://bash.cyberciti.biz/security/expect-ssh-login-script/ )
#!/usr/bin/expect -f
# set Variables
set module [lrange $argv 0 0]
set timeout -1
# rsync
spawn rsync -aCb --progress --delete --backup-dir=/var/www/blabla.com/rsyncBackups/BackupedFilesFromServer23_on_ /var/www/blabla/$module -e ssh root@10.10.10.10:/root/$module
match_max 1000000
# Look for passwod prompt
expect "*?assword:*"
# Send password
send -- "THEPASSWORD\r"
# send blank line (\r) to make sure we get back to gui
send -- "\r"
expect eof
最佳答案
尝试
passthru("expect scripts/sshtest.exp $module 2>&1");
2>&1
将 stderr
重定向到 stdout
并使用 passthru
而不是 exec
将为您提供所有输出。
关于php - 如何使用来自 php 网页的 expect 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1026607/