ОШИБКА: для пакета "stp.py" требуется другой Python: 2.7.12 not in '> = 3.6, <4.0'?

Я пытаюсь установить ElastAlert на свой ubuntu 16.04, и всякий раз, когда я запускаю pip install elastalert , я все время сталкиваюсь с ошибкой. В настоящее время я использую python 2.7.12. Любая помощь будет оценена. Я новичок в этом, поэтому не уверен, что делаю не так. Сообщение об ошибке выглядит следующим образом: В контейнере 20.04 lxd 20.04 я пытаюсь запустить задание, инициированное incron. Для моего минимального ...

У меня очень странная проблема, которую я мог приготовить неправильно, но я попробовал минимальный пример:

В контейнере 20.04 lxd 20.04 я пытаюсь запустить задание. пользователя incron. В моем минимальном примере это моя строка incron:

/home/scanfiler/test    IN_CLOSE_WRITE  /home/scanfiler/test.sh &>> /tmp/log-scanfiler-test

Это мой тестовый сценарий

#!/bin/bash
logger "Starting"
touch /tmp/test/test-$(date +%s)-1
touch ~/test_out/test-$(date +%s)-1
sleep 20
touch /tmp/test/test-$(date +%s)-2
touch ~/test_out/test-$(date +%s)-2
logger "Done"

Я пишу в журнал, затем создаю один файл в домашней папке и один в папке tmp, затем я жду 20 секунд (это дает мне время проверить ВО ВРЕМЯ выполнения, на случай, если tmp каким-то образом сразу очищается), затем я пишу в другие файлы.

Вот что происходит:

scanfiler ~scanfiler # rm test/testblah && touch test/testblah
scanfiler ~scanfiler # journalctl -xe|tail
Aug 17 14:59:26 scanfiler incrond[2526]: PATH (/home/scanfiler/test) FILE (testblah) EVENT (IN_CLOSE_WRITE)
Aug 17 14:59:26 scanfiler incrond[2526]: (scanfiler) CMD (/home/scanfiler/test.sh &>> /tmp/log-scanfiler-test)
Aug 17 14:59:26 scanfiler scanfiler[1250558]: Starting
scanfiler ~scanfiler # 
scanfiler ~scanfiler # ls /tmp/test 
scanfiler ~scanfiler # ls test_out 
test-1597669166-1
scanfiler ~scanfiler # journalctl -xe|tail
Aug 17 14:59:26 scanfiler incrond[2526]: PATH (/home/scanfiler/test) FILE (testblah) EVENT (IN_CLOSE_WRITE)
Aug 17 14:59:26 scanfiler incrond[2526]: (scanfiler) CMD (/home/scanfiler/test.sh &>> /tmp/log-scanfiler-test)
Aug 17 14:59:26 scanfiler scanfiler[1250558]: Starting
scanfiler ~scanfiler # journalctl -xe|tail
Aug 17 14:59:26 scanfiler incrond[2526]: PATH (/home/scanfiler/test) FILE (testblah) EVENT (IN_CLOSE_WRITE)
Aug 17 14:59:26 scanfiler incrond[2526]: (scanfiler) CMD (/home/scanfiler/test.sh &>> /tmp/log-scanfiler-test)
Aug 17 14:59:26 scanfiler scanfiler[1250558]: Starting
Aug 17 14:59:46 scanfiler scanfiler[1250627]: Done
scanfiler ~scanfiler # ls /tmp/test       
scanfiler ~scanfiler # ls test_out                                
test-1597669166-1  test-1597669186-2
scanfiler ~scanfiler # ls /tmp/log-scanfiler-test
ls: cannot access '/tmp/log-scanfiler-test': No such file or directory

Как вы можете видеть, даже во время выполнения, tmp-файл НЕ создается, а тот, который находится в домашнем каталоге, находится там. В конце концов, там нет даже файла журнала, который должен быть в tmp. При запуске тем же пользователем в консоли все работает нормально, поэтому мои разрешения tmp, вероятно, не нарушены каким-то образом.

Кто-нибудь может дать мне подсказку, что здесь происходит? У меня есть более странные проблемы в моих скриптах (которые отлично работают при запуске в консоли), но, возможно, они связаны, поэтому я хотел бы сначала решить их.

0
задан 17 August 2020 в 16:26

1 ответ

Хорошо, как намекали в комментариях, я разобрался. Я оставляю этот ответ, потому что я не нашел в google ничего о каталогах incron (или cron) и tmp, а механизмы кажутся довольно новыми (их не было в моей старой установке 18.04).

Служба systemd для incron имеет строку

PrivateTmp=true

, которая заставляет службу иметь личный каталог tmp ниже / tmp. Я не хотел такого поведения,

0
ответ дан 21 August 2020 в 07:57

Другие вопросы по тегам:

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