проверка файлов журнала

Я бы использовал getoptвместоgetopts:

#!/usr/bin/env bash

OPT=$(getopt \
    --options a:c:d:De:rs: \
    --name "$0" \
    -- "$@"
)

if [ $? -ne 0 ]; then
    echo You are doing it wrong!
    exit 1
fi

eval set -- "${OPT}"

while true; do
    case "$1" in
        -a)  app=${2}; shift 2;;
        -c)  cmd=${2}; shift 2;;
        -d)  domain=${2}; shift 2;;
        -D)  Debug=1; shift;;
        -e)  env=${2}; shift 2;;
        -r)  Doit=1; shift;;
        -s)  subapp=${2}; shift 2;;
        --)  break;;
    esac
done

echo "Env:    ${env}"
echo "App:    ${app}"
echo "Subapp: ${subapp}"
echo "Cmd:    ${cmd}"
echo "Doit:   ${Doit}"
echo "Debug:  ${Debug}"

$./mwctl -a weblogic -c start -s admin -e trn -r -D
> Env:    trn
> App:    weblogic
> Subapp: admin
> Cmd:    start
> Doit:   1
> Debug:  1

$./mwctl -D -a weblogic -c start admin -e trn -r   
> Env:    trn
> App:    weblogic
> Subapp: 
> Cmd:    start
> Doit:   1
> Debug:  1

Обратите внимание, что когда вы гуглите getoptsпо сравнению с getopt, вы обнаружите, что многие люди жалуются на getopt. Насколько я могу судить, речь всегда идет о более старой версии getopt, которая действительно содержала много ошибок. По моему опыту, getoptимеет больше возможностей, а также более надежен, чем getopts.

Чтобы проверить, установлена ​​ли у вас расширенная версия getopt, вы можете запустить

getopt -T
echo $?

Если на выходе 4, у вас есть расширенная версия.

-2
13.09.2018, 17:33
1 ответ

Используя CRON или AT, вы можете настроить расписание для запуска сценария или программы в соответствии с любым желаемым расписанием, например, в определенное время, повторяющееся каждый день или один раз в неделю.

Найдите linux CRON иcrontab -e

, а также Linux AThttps://linux.die.net/man/1/at

Что касается скрипта или программы, которую нужно запустить, то это зависит от вас. Не нужно быть сложным, просто выполните поиск слов в определенном файле журнала, если найдете, то сделайте что-нибудь.

что-то можно отправить по электронной почте с сообщением о том, что найдено, или просто создать текстовый файл с надписью «НЕ НАЙДЕНО» или «НАЙДЕНО {с подробным описанием}»

вы хотели бы изучить сценарии оболочки BASH.

Первое, что приходит на ум, это линуксgrep -l "word_pattern" filename

Если команда grepне находит шаблон вашего слова в файле, она ничего не возвращает, и это можно использовать в сценарии оболочки BASH в качестве условия не найдено .

-1
28.01.2020, 05:18

Теги

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