Как указать местоположение папки с помощью команды `cd` внутри функции exe c? - PullRequest
0 голосов
/ 31 марта 2020

Вместо указания root файла для выполнения на удаленном сервере, как мы можем использовать команду cd в exec() в nodejs. Что я сделал, это так.

         var command_part1 = `ssh -p 22 root@ip`;
         var command_part2 = `python3 test.py ${input}`;
         var folderPath    = `/root/folder/`;
         var child         = exec(`${command_part1} && cd ${folderPath} && ${command_part2}` , function (error, stdout, stderr) {
          if (error !== null) {
           callback(error)
          } else {
           callback();
          }
        });

Но этот код не работает, когда я выполняю эту команду локально, s sh только вход в систему происходит, дальнейшие команды не работают. Как я могу заставить это работать? Я не хочу указывать путь к папке, например python3 /root/folder/test.py ${input};

Спасибо Inadvance

1 Ответ

0 голосов
/ 01 апреля 2020

Попробуйте этот код,

 `var command =  `sshpass -p givePassword ssh -o "StrictHostKeyChecking no" root@ip "cd ${folderPath} && ${command_part2}"`

sshpass - это простой и легкий инструмент командной строки, который позволяет нам вводить пароль (неинтерактивная аутентификация по паролю) для самой командной строки, так что автоматическая оболочка скрипты могут быть выполнены

...