.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "QMAIL2DLF.IN 1" .TH QMAIL2DLF.IN 1 2025-09-28 "Lire 2.1.1" "LogReport's Lire Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" qmail2dlf \- تبدیل لاگ‌های سرویس ایمیل qmail به فرمت لاگ استاندارد Lire DLF .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBqmail2dlf\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBqmail2dlf\fR لاگ‌های qmail\-send را از ورودی استاندارد (stdin) می‌خواند، فرمت dlf را در خروجی استاندارد (stdout) می‌نویسد و در صورت بروز خطا، پیام‌های مربوطه را در خطای استاندارد (stderr) ارسال می‌کند. .SH "برچسب‌های زمانی (TIMESTAMPS)" .IX Header "TIMESTAMPS" در فایل لاگ، انتظار برچسب‌های زمانی شبیه به \`977359048.466280500\*(Aq می‌رود: تعداد ثانیه‌های سپری‌شده از مبدا زمان (epoch) با هر دقتی. فایل لاگ باید شامل خطوطی با ساختاری شبیه به نمونه زیر باشد: .PP .Vb 2 \& 982584201.511524 info msg 6426: bytes 3537 from \& qp 21089 uid 70 .Ve .PP ابزار \&\fIsplogger\fR که همراه با qmail توزیع می‌شود، یک «برچسب زمانی عددی» مانند 972802273.627578 می‌نویسد که بیانگر ثانیه‌ها و نانوثانیه‌ها از ابتدای سال ۱۹۷۰ است. .PP ابزار \&\fImultilog\fR که همراه با daemontools (\&\fIhttp://cr.yp.to/daemontools.html\fR) توزیع می‌شود، در صورت فراخوانی با عمل \fIt\fR، یک نویسه \`@\*(Aq و یک برچسب زمانی با فرمت \fItai64n\fR می‌نویسد. این برچسب‌های زمانی شبیه به 4000000039ef8532346bb35c هستند. توجه داشته باشید که 0x400000000000000000000000 برابر با 2^62 است. .PP می‌توان زمان جاری را در فرمت \fItai64\fR با اجرای دستور زیر دریافت کرد: .PP .Vb 1 \& echo 40000000\`(echo obase = 16; date +%s) | bc\`00000000 .Ve .PP (با فرض نصب بودن GNU date) .PP برای تبدیل \fItai64n\fR به برچسب‌های زمانی عددی، می‌توان از ابزار tai64nfraq نوشته Russ Allbery استفاده کرد. این ابزار در مالکیت عمومی (Public Domain) قرار دارد و از نشانی \&\fIhttp://www.qmail.org/tai64nfrac\fR در دسترس است. .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" برای پردازش لاگ تولیدشده توسط splogger: .PP .Vb 1 \& $ lr_desyslog qmail < mail.log | qmail2dlf .Ve .PP برای پردازش لاگ تولیدشده توسط multilog: .PP .Vb 1 \& $ tai64nfrac < current | qmail2dlf .Ve .PP دستور \&\fBqmail2dlf\fR\|(1) به‌ندرت به‌تنهایی استفاده می‌شود و معمولاً توسط lr_log2report فراخوانی می‌گردد: .PP .Vb 2 \& $ tai64nfrac < /service/qmail\-send/log/main/current | \e \& lr_log2report qmail .Ve .SH "اشکالات (BUGS)" .IX Header "BUGS" این برنامه پیام‌های برگشتی (bounce) را مدیریت نمی‌کند: .PP .Vb 3 \& email qmail none qmail2dlf info skipping line \*(Aq986244190.800217 bounce msg \& 6306 qp 28445\*(Aq: first field should be one of \*(Aqnew\*(Aq, \*(Aqinfo\*(Aq, \*(Aqstarting\*(Aq, \& \*(Aqdelivery\*(Aq, \*(Aqend\*(Aq or \*(Aqstatus:\*(Aq, not \*(Aqbounce\*(Aq .Ve .PP برنامه qmail2dlf از اطلاعات موجود در لاگ‌های \&\fBqmail\-smtpd\fR\|(1) استفاده نمی‌کند. (این لاگ‌ها ساختاری شبیه به نمونه زیر دارند: .PP .Vb 2 \& 2002\-06\-16 09:34:57.798038500 tcpserver: pid 19385 from 100.61.24.7 \& 2002\-06\-16 09:34:58.114198500 tcpserver: ok 19385 foo.example.com:100.163.25.11:25 logreport.iae.nl:212.61.24.7:postfix:1189 .Ve .PP \&.) .SH "نسخه (VERSION)" .IX Header "VERSION" \&\f(CW$Id:\fR qmail2dlf.in,v 1.24 2006/07/23 13:16:34 vanbaal Exp $ .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر \(co 2000, 2001 متعلق به بنیاد Stichting LogReport است LogReport@LogReport.org .PP این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) منتشرشده توسط بنیاد نرم‌افزارهای آزاد، ویرایش ۲ یا (به انتخاب خودتان) هر ویرایش بالاتر بازتوزیع کرده یا تغییر دهید. .PP این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید. .PP شما باید به همراه این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید (فایل COPYING را ببینید)؛ در غیر این صورت به نشانی http://www.gnu.org/copyleft/gpl.html مراجعه نمایید. .SH "نویسنده (AUTHOR)" .IX Header "AUTHOR" Joost van Baal