Предполагая, что имя файла (связано с )именем хоста, которое вы упомянули, вы можете сделать что-то подобное в цикле for
:
...
for i in $file
do
if diff -c $i $master > "/etc/ansible/difference/diff_$i" ;then
echo "$i is the same as $master"
else
echo "$i is different from $master"
fi
done
diff
успешно завершает работу (статус = 0 ), если файлы совпадают, и завершает работу с ошибкой (статус = 1 ), если файлы разные, так что вы можете использовать это для проверки с помощью if-else-fi
, как указано выше. Этот код предполагает отсутствие проблем :, он не проверяет, не произошла ли какая-либо другая ошибка.
Вы можете тривиально изменить сообщения, которые программа распечатывает, на сообщения csv и перенаправить вывод в файл, подобный этому:
...
echo "Hostname, comments" > output.csv
for i in $file
do
if diff -c $i $master > "/etc/ansible/difference/diff_$i" ;then
echo "$i, no change"
else
echo "$i, some change"
fi
done >> output.csv
Оказывается, проблема была в sshguard
Я не знал, что работает sshguard, и предпринял несколько неудачных попыток между малинами. В журналах неудачных попыток входа в систему существовала эта строка:
Blocking 192.168.1.7:4 for >630secs: 40 danger in 4 attacks over 2 seconds (all: 40d in 1 abuses over 2s)
Похоже, что sshguard блокирует весь трафик ipv4 от предполагаемых злоумышленников, и оказывается, что злоумышленником был я