Создать скрипт для перезагрузки компьютеров, на которых имена хостов находятся в текстовом файле. - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь создать скрипт для запуска команды перезапуска компьютеров, имена хостов которых находятся в текстовом файле .txt. Я запускаю это на Jenkins, так что в идеале это должно быть в Groovy, однако сценарий оболочки будет работать.

Я пытался использовать Groovy для создания этого кода. Моя цель - найти файл .txt и применить к нему эту команду CMD

String fileContent = new File("C:/Users/omr/Documents/Temp/test.txt").text
println fileContent

"cmd /c shutdown -r -t 0".execute(fileContent)

Пока что мне не повезло, я много исследовал, как выполнять команды cmd из Groovy, и все они указывают .execute (), однако я не чувствую, что это правильно.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Для удаленного запуска вы можете использовать psexec . Чтобы прочитать тестовый файл в Groovy, у вас есть два следующих решения:

String fileContents = new File('/path/to/file').text

Если вам нужно указать кодировку символов, используйте следующее:

String fileContents = new File('/path/to/file').getText('UTF-8')

Если вам нужен прочитанный файл Line Bye Line.

File file1 = new File("C:\path\to\file\myTestfile.txt");
for (def i=0;i<=30;i++) // specify how many line need to read eg.. 30
{
 log.info file1.readLines().get(i)

}

Вы также можете использовать cmd для чтения текстового файла.

FOR /F %i IN (file.txt) DO @echo %i
0 голосов
/ 15 января 2019

Если вам нужно сделать это в Windows, попробуйте утилиту PsShutdown или NirCmd , чтобы перезагрузить удаленный компьютер. И пакетный файл для циклического перебора ваших имен хостов:

@echo off
for /F "tokens=*" %%A in (test.txt) do (
  echo psshutdown -r -t 0 \\%%A
)

Я не думаю, что Java / Groovy здесь действительно нужен, возможно, только как оболочка для скрипта оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...