Статус службы через ansible playbook

Вы можете комбинировать bashарифметику с командой rename:

i=0
find. -maxdepth 1 -type f -name '*.txt' |
sort -nt_ -k2,2 -k7,7 |
while read filename ; do
    rename -v "s/[0-9]+_Image/$((i%5+1))_I/" ${filename}
    i=$((i+1))
done

Попробуйте это с опцией -nкоманды rename, которая просто показывает, что делается.

ПРЕДУПРЕЖДЕНИЕ:

Имена файлов берутся из входных данных по каналу, а переменная filenameустанавливается с помощью встроенного здесь read. Это БУДЕТ прервано, если ваши имена файлов не соответствуют формату, который вы указали в своем вопросе, например. имена файлов с пробелами, новыми строками и т. д. Так что имейте в виду, что вам нужно будет использовать другой подход, например. Опция find-print0в сочетании с xargs -0.

В этом случае используется вспомогательный файл для счетчика и ?используется как замена переменной:

echo -1 > file_counter
find -name '*txt' -print0 |
sort -znt_ -k2,2 -k7,7 |
xargs -I ? -0 bash -c '
     i=$(($(cat file_counter)+1))
     rename -n -v "s/[0-9]+_Image/$(($i%5+1))/"  ?
     echo $i > file_counter
'
0
17.05.2021, 12:39
1 ответ

Что касается вашего вопроса «... есть ли способ получить эти данные... », чтобы получить статус службы через Ansible Playbooks, вы можете использовать модульservice_facts.

- name: Gathering Service Facts
  service_facts:
  tags: snmp

Вы можете записать состояние в файл журнала на основе условий и фактов.

- name: Write SNMP service status
   ...
  when: ("snmp.service" in services)
  tags: snmp
0
21.09.2021, 08:31

Теги

Похожие вопросы