Как запустить задачу в фоне на Debian, и писать в файл только последнюю строчку консоли?

Мне необходимо запустить скрипт python3 в фоне, и писать содержимое консоли в файл, для возможности контроля исполнения, но в этом случае он быстро наполняет файл, так как он много передает данных в сеть и в консоль, как сделать так что бы он всегда в лог файл записывал только последнюю строчку, а не копил полное содержимое с момента запуска?

/usr/bin/python3 test.py >> test.log &
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Fenrir89
/usr/bin/python3 test.py | tail -n1 >> test.log &
Ещё как вариант через grep отрезать лишнее

Мне необходимо что бы на момент открытия, я увидел в файле test.log например только 5, или 255, в зависимости от того сколько времени он проработал


Тогда так /usr/bin/python3 test.py > test.log &

>> добавление в файл
> перезапись файла
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
как сделать так что бы он всегда в лог файл записывал только последнюю строчку, а не копил полное содержимое с момента запуска?


там идет примерно 50-60 итераций в секунду, столько раз в самом скрипте делать сохранение не очень актуально наверное


Можете по-человечески сформулировать какую строчку какой секунды какой итерации вы хотите видеть в логе?

P.S. Подозреваю, что как только сформулируете нормально, сразу поймете как это самостоятельно сделать.

P.P.S.
Сделайте вывод в самом питоне в файл, без append, чтобы он писал только одну строку, и сделайте вывод в /tmp, который в большинстве линуксов это ramdrive

А еще лучше, в самом питоне сделайте вывод не каждого значения, а одного из 10 или из 100. Это ж не сложно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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