Сценарий оболочки для чтения файла журнала из последней прочитанной строки

Несколько возможных проблем:

  • Когда вы создали свою оригинальную виртуальную среду, вы указали --no-site-packages, если ваш пакет не может использовать элементы из системы.
  • Некоторые пакеты полагаются на установленные системой библиотеки, которые могут отсутствовать в вашей целевой системе
  • . На вашем сервере работает аналогичный набор аппаратных средств вашей системы разработки с той же ОС - если не ваш виртуальный вероятно, не будет работать без повторной установки пакетов, поскольку любые расширения C / C ++ будут созданы для неправильного оборудования / ОС и не будут работать.

Дело в том, что virtualenv не является пакетом (посмотрите на pyinstaller для этого), а скорее среду разработки и тестирования, когда вы переходите к распространению своего кода на новую платформу, тогда, если вы начнете с --no-site-пакетов, вы можете легко узнать, какие пакеты вы используете вам нужно узнать, что вам нужно установить на новую цель.

Итак, в основном - Да, вы, или, скорее всего, системный администратор , делает нужно run pip install flask и, возможно, несколько других вещей!

-1
задан user2705120 5 March 2019 в 03:17
поделиться

2 ответа

ниже может помочь вам начать:

tail -f your_file | while read line
do case "$line" in
        *"string_to_search"*) echo "" | mutt -s "Guilty string found" a_mail@mail.com       
;;
   esac
done 
0
ответ дан funkyjelly 5 March 2019 в 03:17
поделиться

Я использую timeout для тайм-аута tail и использую некоторый файл сохранения для сохранения позиции строки, которую мы проанализировали:

# statefile where we save the number of parsed already lines
statefile=/tmp/statefile.txt

# initialize count variable - to zero, or from statefile
if [ -e "$statefile" ]; then
    count=$(<"$statefile")
else
    count=0
fi

# we timeout for 1 seconds outputting the lines
# the better timeout would be like 10 seconds for big file
# the `tail` command needs to jump `$count` lines inside the input file
timeout 1 tail -n +$count input_log_file |
# tee is used to pass the input to the updating part
tee >(
     # read number of parsed lines with `wc -l`
     # increment the count of parsed lines and save to statefile
     echo $(( count + $(wc -l) )) >"$statefile"
) |
# grep for the searched string
grep --line-buffered string_to_search |
# do the action if string_to_search is found
do_some_action_example_send_mail
0
ответ дан Kamil Cuk 5 March 2019 в 03:17
поделиться
Другие вопросы по тегам:

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