PHP или Python в Windows отправляют команду в удаленный стек Linux - PullRequest
0 голосов
/ 31 мая 2019

Я разрабатываю веб-приложение для отправки 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.Любая помощь будет очень признательна!

1 Ответ

0 голосов
/ 05 июня 2019

Просто удалите '&&' в PHP или '\ n' в Python, тогда это будет работать

...