Мне нужно запустить удаленный скрипт в нашей сети для импорта файлов. Я настроил plink и работал, когда это необходимо, если я запускаю его вручную.Невозможно запустить сценарий с CFThread, CFExecute и Plink
палить имя @ LocalServer -ssh -i myKey.ppk /home/here/scriptName.sh
Мы пишем код в ColdFusion так что это будет работать в CFThread с использованием CFExecute. cfexecute не является ошибкой, когда я запускаю его через код, который он просто не запускает сценарий.
В моих исследованиях я обнаружил людей, говорящих, что cfexecute имеет некоторые проблемы с строкой аргумента, и лучшая идея заключается в создании командного файла и использовании cfexecute для запуска командного файла.
поэтому я создал командный файл. import.bat
C:\inetpub\wwwroot\myapp\plink\plink.exe [email protected] -ssh -i myKey.ppk /home/here/scriptName.sh)
снова, если я запустить пакетный файл вручную он работает.
import.bat
но если я запускаю его через cfexecute он ничего не делает.
Для проверки cfexecute у меня есть две команды: первая, что мне нужно для работы, а второе - тест. второй работает по мере необходимости. первый из них не является ошибкой для экрана или файла журнала. Это произошло, если я ввел плохой синтаксис. Второй записывает файл по мере необходимости.
(код ниже)
starting
<cfoutput>
<cfexecute name = "C:\inetpub\wwwroot\myapp\plink\import.bat" errorfile="C:\inetpub\wwwroot\myapp\logs\#timeformat(now(),"HHMMSS") #.log" ></cfexecute>
<cfexecute name = "C:\WinNT\System32\netstat.exe"
arguments = "-e"
outputFile = "C:\Temp\#timeformat(now(),"HHMMSS") #.txt"
timeout = "1">
</cfexecute>
</cfoutput>
the end
<cfabort>
любые мысли были бы весьма признателен ...
Спасибо, Brian
Вы пробовали работает либо Plink команды или командного файла во время входа в систему как пользователь, работающий в ColdFusion? Звучит как проблема с разрешением. –
Вы также можете запустить 'cmd c: \ path \ to \ batchfile.bat args', поскольку я не уверен, что cfexecute выполнит такой пакетный файл. Я думаю, вам нужно запустить интерпретатор команд и сказать, что для запуска пакетного файла. – barnyr
Используйте errorVariable = "foo", чтобы вернуть ошибку в переменную, а затем вывести foo. –