Я разрабатываю веб-приложение для отправки G-кода в 3dprinter.Этот 3dprinter имеет стек Linux.Я мог бы сделать это в приложении Ubuntu на Win, используя следующую команду
ssh root@ip
password
python3 /usr/share/griffin/command_util.py
sendgcode G28
после ввода python3 /usr/share/griffin/command_util.py
, он будет перенастроен (Cmd) type command here
Я пыталсяиспользуйте ssh2 в PHP, части соединения и аутентификации работают.Кроме того, list
, cd \usr\share\griffin && list
также возвращают тот же результат, что и в Windows cmd.Но в следующем коде после запуска py-файла в стеке linux возвращается только (Cmd)
.Ничего не произошло с sendgcode G28
.
<?php
set_include_path('C:/xampp/htdocs/phpseclib1.0.15');
include('Net/SSH2.php');
$ssh = new Net_SSH2('ip');
if (!$ssh->login('root', 'password')) {
exit('Login Failed');
}
echo $ssh->exec('python3 /usr/share/griffin/command_util.py && sendgcode G28');
?>
Следующий код в Python не получит никакого значения повторения
#
import paramiko
# realize transport
trans = paramiko.Transport(('ip', 22))
# connection
trans.connect(username='root', password='ultimaker')
# Specify the transport of the sshclient object as the above trans
ssh = paramiko.SSHClient()
ssh._transport = trans
# execute command
stdin, stdout, stderr = ssh.exec_command('python3 /usr/share/griffin/command_util.py \n sendgcode G28')
print(stdout.read().decode())
# close connection
trans.close()
Стек Linux показывает, что команда sendgcode недокументирована.Я не понимаю, почему я мог использовать его в Windows cmd, но не в PHP или Python.Любая помощь будет очень признательна!