Я полагаю, что XFS также записывает в журнал все транзакции с метаданными, если только вы не подкорректировали файловую систему. [118030]
У меня был следующий бит Perl, который покладывает все вложения от STDIN и возвращает STDOUT, которая может помочь:
#!/usr/bin/perl -w
use strict;
use Mail::Audit;
use Mail::Audit::Attach qw(Attach);
my $mail = Mail::Audit->new;
my $attachments = $mail->attachments;
foreach (@$attachments)
{
$_->remove;
}
$mail->print();
и, чем простой цикл по файлам в вашем Maildir, вы хотите отделить Вложения для INSNTANCE:
for filename in <list>
do
./strip.pl < "$filename" > "$filename".lock && mv "$filename".lock "$filename"
rm "$filename".lock
done
Интересная модификация может быть сначала извлечь вложения и хранить их отдельно, прежде чем удалять их из почты:
foreach (@$attachments)
{
$_->save("/path/to/attachment/dir");
$_->remove;
}
сначала сделать резервную копию;) [)
Для этого можно использовать Thunderbird и аддон AttachmentExractor. Просто добавьте почтовый аккаунт в Thunderbird, а затем запустите AttachmentExtractor. Он может удалить содержимое вложений, сохранив имя файла вложения в вашей почте.
Удалить вложения на сервере очень просто, это всего лишь (текстовые )файлы. -Выделение писем с вложением (обычно больших):
find -P /home/*/mail/*/*/* -mindepth 1 -maxdepth 1 -name "*=*" -size +2M -mtime '+367'
Работает на 100% на сервере WHM с почтовым каталогом,не тестировался с mbox
if grep -e '------=_' ${file};
#содержащие строки.... затем csplit --prefix=split4mail2clean. -z ${file} /commonstring/
Для успеха вам может понадобиться еще 3, 4 возможных условия IF и удалить, если файл содержит эту строку... Запускать этот сценарий оболочки рекомендуется из временной папки, настраивать размеры и другие критерии поиска. Да, у меня есть рабочий скрипт, протестированный на 40000 почтовых файлов, и он оставляет 0 вложений в соответствии с указанными критериями поиска и удаления.