LOGROTATE: Запустите скрипт postrotate с повернутым файлом

Скорость передачи составляет бит в секунду, а не байтов . Обычно у вас будет больше битов, чем только из байтов данных (8 бит), поскольку данные отправляются с некоторыми накладными расходами (кадрирование). См., Например, обсуждение MathWorks .

picocom - эмулятор терминала, и ему необходимо знать скорость, с которой устройство должно работать, потому что оно может запрашивать скорость только на своей локальной стороне линии связи - она ​​должна соответствовать удаленной стороне.

2
13.09.2018, 16:25
3 ответа

Насколько я понимаю, logrotate передаст имя файла журнала сценарию в postrotate; вы можете использовать сценарий и первый параметр, а также знание того, что logrotate создал повернутые файлы с использованием формата даты -%sдля создания списка этих файлов:

import sys
import fnmatch
import os

for file in os.listdir(os.path.dirname(sys.argv[1])):
        if fnmatch.fnmatch(file, os.path.basename(sys.argv[1]) + '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'):
                print(file)

Это мой первый скрипт на Python, так что он может быть не идиоматическим, но, надеюсь, показывает идею. Функция fnmatch ()использует глобус, который должен покрывать вас в течение нескольких лет (до конца ноября 2286 года ), когда 9 999 999 999 секунд превратятся в 10 000 000 000. Вы можете «расширить» глобус так, чтобы он «просто» требовал «10 цифр, а затем что угодно»:

...
if fnmatch.fnmatch(file, os.path.basename(sys.argv[1]) + '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*'):
...
2
27.01.2020, 21:58

Вы можете добавить суффикс к вашему dateformat -%s, например X, тогда вы сможете найти уникальный файл *Xи после переименования его без X передать его вашему питону:

dateformat -%sX
postrotate
  for f in *X; do mv "$f" "${f%X}" && test.py "${f%X}"; done
endscript

Я использовал петлю for, чтобы сделать ее менее хрупкой. Возможно, вам потребуется проверить правильность прохождения через ваш /bin/sh.

2
27.01.2020, 21:58
postrotate
  python3 /opt/myapp/test.py $1-`date '+%Y%m%d'` > /dev/null
endscript

Это будет работать до тех пор, пока выполняется в тот же день.

0
03.04.2020, 18:21

Теги

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