решение повернуть файлы журнала

обратите внимание, что те последовательности могут отличаться от одного терминала до другого. Из Вашего текста кажется использованием терминала гнома.

# on gnome-terminal
"\e[1;5D": backward-word
"\e[1;5C": forward-word
6
17.02.2014, 15:41
3 ответа

Для вырезания журналов

'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
    If num < 10 Then
        NiceFileNumber = "0" & num
    Else
        NiceFileNumber = num
    End If
End Function

'the real function'
Sub ExportAllCharts()
    Dim i As Integer, exportCount As Integer
    Dim fileNum As String, fileBase As String
    Dim sheetObj As Worksheet
    Dim chartObj As Chart

    'current file location and name, with extension stripped'
    fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
    exportCount = 0

    'First, export all charts that are in their own sheets'
    For Each chartObj In ActiveWorkbook.Charts
        fileNum = NiceFileNumber(exportCount)
        exportCount = exportCount + 1

        'Do the export'
        chartObj.Export fileBase & "_chart" & fileNum & ".png"
    Next

    'Then, export all charts that are embedded inside normal sheets'
    For Each sheetObj In ActiveWorkbook.Worksheets
        For i = 1 To sheetObj.ChartObjects.count
            fileNum = NiceFileNumber(exportCount)
            exportCount = exportCount + 1

            'Do the export'
            sheetObj.ChartObjects(i).Activate
            ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
        Next i
    Next
End Sub

В проекте Apache есть полезная команда [11484] rotatelogs[11485], предназначенная для вращения входа, полученного через входной канал Чтение [11486] о roatelogs

, а также [11488] cronolog[11489] лучшая обработка времени. [11490]Кронологический сайт

Но если вы также вращаетесь, то стоит подумать о логротате, но логротату нужен механизм для запуска нового лог-файла, (посылать сигнал, перезапускать программу, ...). Именно здесь может появиться rotatelogs/cronolog, если Вы протоколируете stdout и не хотите перезапускать процесс.

.
7
27.01.2020, 20:22

Большинство современных дистрибутивов Linux включают утилиту [11508] logrotate[11509], которую операционная система затем использует для поддержки каталога [11510]/var/log[11511]. Вы также можете использовать его. Он запускается через [11512]cron[11513], так что если вы хотите, чтобы лог вращался с определенной частотой, вам нужно настроить cronjob, который будет работать так часто.

Примеры

Это позволит вращать 2 файла [11514]access.log[11515] и [11516]error.log[11517], сохраняя максимум 5 (текущий + 4 вращения). После перемещения текущего лог-файла, [11518]killall -HUP httpd[11519] посылает сигнал "Повесить трубку" работающему демону, чтобы инициировать создание нового лог-файла для начала протоколирования с этого момента в оригинальные именованные файлы [11520]access.log[11521] и [11522]error.log[11523]. Он также будет вращать лог-файлы, если их размер превышает 100k.

Он будет вращать лог-файлы под директорией [11524]/var/log/news/*[11525] montly, сохраняя 2 (текущий + 1). Этот набор правил сохранит лог-файлы в их исходном состоянии, а не будет сжиматься ([11526].gz[11527]), что является поведением по умолчанию.

Должен ли я посылать kill -HUP?

Нет, это не обязательно, только если ваше приложение этого требует. Это то, что запускает ваше приложение, чтобы остановить запись в текущий лог-файл (после того, как он будет переименован с скажем [11528]access.log[11529] на [11530]access.log.1[11531]) и снова начать запись в исходное имя, [11532]access.log[11533].

References

HowTo: Ultimate Logrotate Command Tutorial с 10 примерами

5
27.01.2020, 20:22

для полноты я также хотел бы упомянуть опцию [11550]copytruncate[11551] для [11552]logrotate[11553]:

копитрунтат Усечь исходный лог-файл до нуля после создавая копию, вместо того, чтобы перемещать старый лог-файл и по желанию, создавая новую. Она может быть использована, когда какая-либо программа не может быть сказано закрыть его журнал и, таким образом, может продолжаться. запись (добавление) в предыдущий лог-файл навсегда. Обратите внимание, что между копированием существует очень маленький промежуток времени. файл и его усечение, так что некоторые протоколирующие данные могут быть потеряны. Когда эта опция используется, опция *create* не будет иметь никакого эффекта, так как старый лог-файл остается на месте.

2
27.01.2020, 20:22

Теги

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