Лучше архивировать/перемещать почту на основе mtime или ctime?

Если Вы будете искать в заголовочных файлах в Вашей системе, то Вы найдете, в каком заголовочном файле функция объявляется в Вашей системе. Это может быть трудно как иногда, функция объявляется через сложный макрос. И это только скажет Вам, какой заголовочный файл объявляет функцию в Вашей системе; это может даже быть заголовочным файлом, который Вы не можете включать непосредственно, потому что ему нужны другие заголовки, чтобы быть на первом месте.

Единственный безопасный способ найти, что заголовочный файл включать состоит в том, чтобы консультироваться с документацией библиотеки, которая обеспечивает функцию. Для стандартной библиотеки можно консультироваться:

  • Стандарт C (C89=C90, C99 или C11) определяет функции, которые доступны на каждой платформе, работающей C.
  • Стандартный / Единственный стандартный Unix Unix POSIX (POSIX:2004, POSIX:2008) определяет функции, которые доступны на каждой подобной Unix платформе.
  • Ваша платформа может иметь другие функции или может предложить дополнительные функции. Консультируйтесь с его страницами справочника (man 3 function_name или man 2 function_name — различие между 2 и 3 является в основном историческим), или другая документация (например, GNU libc руководство по Linux).

1
13.04.2017, 15:36
2 ответа

Я работаю с procmail и Dovecot, но maildir структура справедливо стандартизирована.

При попытке заархивировать по дате, можно хотеть проверить Date от заголовков. При чтении из верхней части заголовков первого свидания Вы находка должна быть очень точной. Мои сообщения имеют три поля, которые могут использоваться Delivery-Date:, Received: заголовки, и Date: заголовок. Для полученных сообщений, Delivery-Date: или сначала Received: заголовок будет иметь соответствующую дату. Для отправленных сообщений Вы, вероятно, будете иметь только Date: заголовок, который может отразить время системы, которая создала его, не Ваш почтовый сервер. Можно хотеть отметить сообщения, которые не имеют применимой даты в заголовках.

ctime должна обычно быть дата сообщения, но существуют случаи, где новая копия сообщения создается, когда это перемещено или скопировано. Обычно эти действия происходят путем пересоединения файла с корректным каталогом.Править: Этот сценарий распечатает список сообщений с первым свиданием в файле. Это соответствует на формате даты RFC. regex не может быть лучшим.

#!/usr/bin/perl

%months = ( 'Jan'=>'01', 'Feb'=>'02', 'Mar'=>'03', 'Apr'=>'04',
            'May'=>'05', 'Jun'=>'06', 'Jul'=>'07', 'Aug'=>'08',
            'Sep'=>'09', 'Oct'=>'10', 'Nov'=>'11', 'Dec'=>'12' );

foreach $filename (@ARGV) {
    open( MESSAGE, $filename);

    while (<MESSAGE>) {
        if ( m/[A-Z][a-z][a-z], ([1230][0-9]) ([A-Z][a-z][a-z]) ([12][0-9][0-9][0-9])/ ) {
            print "$3-$months{$2}-$1 $filename\n";
            last
        }

        if ( m/^$/ ) {                     # End of header
            print "-No--Date- $filename\n";
            last
        }
    }
    close MESSAGE;
}

# EOF
5
27.01.2020, 23:17
  • 1
    Привет BillThor. У Вас есть пример сценария того, как Вы обрабатываете даты в заголовках? –  timoto 25.11.2012, 16:14
  • 2
    @timoto Добавил верификатор даты, который я использую для проверки моих каталогов архива. Формат даты соответствий, а не определенные заголовки. –  BillThor 25.11.2012, 23:35
  • 3
    Спасибо за Ваш пример. Я попытаюсь выяснить, как включить это в сценарий, который я имею. Вы упомянули "сообщения, которые не имеют применимой даты в заголовках", которая часто происходит для Вас и что Вы делаете о тех, используйте mtime? –  timoto 26.11.2012, 16:58

Когда я читал отсюда, различие между ctime и mtime объяснено здесь http://cerebro.freeshell.org/log/unix-mtime-vs-ctime/. Я могу сказать Вам небольшую идею, просто присоединить метку времени к каждой почте, которую Вы храните так, чтобы, когда Вы получаете назад, у Вас была точная дата, которую она была отправлена или получена, это мы используем, чтобы сделать для наших резервных копий.

0
27.01.2020, 23:17
  • 1
    Привет harish.venkat. У Вас есть пример того, как присоединить метку времени? Как Вы присоединили бы метку времени к исторической почте? –  timoto 25.11.2012, 16:18

Теги

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