Я пишу сценарий оболочки для анализа файла журнала и извлечения всех случаев, когда sudo преуспел и / или потерпел неудачу.Теперь я понимаю, что это, вероятно, было бы проще с оболочкой, эквивалентной регулярному выражению, но я не хотел тратить время на копания (и теперь я плачу).В любом случае:
sudobool=0
sudoCount=0
for i in `cat /var/log/auth.log`;
do
for word in $i;
do
if $word == "sudo:"
then
echo "sudo found"
sudobool=1;
sudoCount=`expr $sudoCount + 1`;
fi
done
sudobool=0;
done
echo "There were " $sudoCount " attempts to use sudo, " $sudoFailCount " of which failed."
Итак, мое понимание написанного мною кода: читать auth.log и разбивать его построчно, которые хранятся в i.Каждое слово в i проверяется, чтобы увидеть, является ли оно sudo :, если оно есть, мы переворачиваем bool и увеличиваем его.Когда мы закончим разбор строки, сбросим bool и перейдем к следующей строке.
Однако, судя по моим выводам, оболочка пытается выполнить отдельные слова файла журнала, обычно возвращая '$слово: не найдено '.