Я занимаюсь разработкой php-скрипта, который работает в системе apache Linux. Он должен выполнить несколько команд для меня. В зависимости от того, какую команду я выполнял в своем пользовательском интерфейсе php.
До сих пор мне удавалось успешно реализовать это с помощью различных команд shell_exec.
Теперь я хочу выполнить следующую команду через скрипт php exec в системе Linux.
Оболочка AdminTool $ IP $ USER $ ПАРОЛЬ
Обычно, когда я ввожу эту команду в самой системе Linux, она открывает соединение и запускает оболочку, предоставленную производителем оборудования.
Теперь я хочу запустить эту оболочку с помощью php exec и запустить следующую команду в этой оболочке производителя. Зависит от того, что я выбрал через мой пользовательский интерфейс PHP.
Оболочка предоставляет различные команды внутри.
Кто-нибудь знает, может ли это работать? И если да, то как?
Оболочка — это просто интерпретатор командной строки.
Команды — это (большинство из них) имена исполняемых файлов программ, и, вызывая их (используя команду), вы указываете оболочке проверить, существует ли исполняемый файл по предопределенному пути (пути среды) и выполняет ли он программу.
Я просто догадываюсь, но то, что вы запускаете с оболочкой AdminTool $ IP $ USER $ PASSWORD, — это программа, которая запускается в интерфейсе командной строки, если указан параметр «shell».
Вы не можете использовать php exec с интерфейсом командной строки программы.
Ваши варианты:
Вы можете выполнять задачи, которые необходимо выполнить с программой, передавая параметры команды, например,
AdminTools $ ip $ user $ пароль dotaskone
AdminTools $ ip $ user $ password dotasktwo
Но, глядя на первые три параметра, которые вы передаете, я думаю, что вы устанавливаете соединение с сервером.
Зависит от сложности того, что вы делаете с этой программой (если она построена так, чтобы принимать параметры в качестве команд), это означает, что выполняется много программ — поэтому много соединений с тем сервером, к которому она подключается.
Других решений пока нет …