由于某种原因,当我运行此命令时,它将文件发送到远程服务器(YAY),但是由于无法在连接完成之前超时,因此它无法在后台运行脚本(BOO)。不等,只是让它在免费环境中运行...有人成功使用phpseclib并将远程脚本发送到服务器并执行了吗?
谢谢!
$sftp = new Net_SFTP($vps_ip);
$attempts = 0;
while (true) {
if (10 == $attempts) {
echo "10 attempts, check user/password/ip";
return false;
}elseif(!$sftp->login($user, $vps_password)) {
echo "unable to connect to ".$server."." . PHP_EOL;
$attempts += 1;
echo "Attempts: ".$attempts. PHP_EOL;
continue;
}else{
break;
}
}
echo $sftp->pwd(). PHP_EOL;
$sftp->setTimeout(30);
$remote_file_location = $sftp->pwd().'/'.$new_script_file_name;
$sftp->put($remote_file_location, $new_script_file_location, NET_SFTP_LOCAL_FILE);
$command = "sudo bash ".$remote_file_location." ~/Tmp/".$file.".txt 2>&1 & sleep 5; head ~/Tmp/".$file.".txt";
echo $sftp->exec($command);
$sftp->disconnect();