Запустите команду для элементов в файле, используя Ansible - PullRequest
0 голосов
/ 28 января 2020

Я ищу способ запуска такой команды, как smartctl, в файле, содержащем имена устройств, такие как / dev / sda; (по одному в строке). ansible playbook должен уметь читать каждую строку и делать ее аргументом для команды.

1 Ответ

0 голосов
/ 28 января 2020

Вы ищете что-то подобное?

<file_with_smartctl_args xargs -n1 smartctl

Замените file_with_smartctl_args на файл (полный путь!), Который содержит имена файлов (аргументы), которые вы хотите передать в smartctl. Это будет запускать «smartctl» один раз для КАЖДОЙ строки (аргументов) в файле.

Пример:

Если файл / usr / me / smartctl_args содержит следующий текст:
file1
file2
file3

Команда:

</usr/me/smartctl_args xargs -n1 smartctl

Запустится smartctl 3 раза (так как файл содержит 3 строки), например:

smartctl file1
smartctl file2
smartctl file3

Начальная <</em> сообщает оболочке Unix, что ваш "стандартный ввод" будет исходить из имени файла, которое следует ( / usr / me / smartctl_args ). Затем xargs преобразует «стандартный ввод» в аргументы команды, опция -n1 заставляет xargs выполнить команду ( smartctl ) один раз для каждого аргумента.

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