'\" t .TH LOGROTATE 8 "3.22.0" "Linux" "راهنمای مدیر سیستم" .\" Per groff_man(7), the TQ macro should be copied from an-ext.tmac when .\" not running under groff. That's not quite right; not all groff .\" installations include this macro. So bring it in with another name .\" unconditionally. .\" Continuation line for .TP header. .de tq . br . ns . TP \\$1\" no doublequotes around argument! .. .SH "نام (NAME)" logrotate \- چرخش، فشرده‌سازی و ارسال لاگ‌های سیستم .SH "خلاصه دستور (SYNOPSIS)" \fBlogrotate\fR \fR[\fB\-\-force\fR] \fR[\fB\-\-debug\fR] \fR[\fB\-\-state\fR \fIfile\fR] \fR[\fB\-\-skip-state-lock\fR] \fR[\fB\-\-wait-for-state-lock\fR] \fR[\fB\-\-verbose\fR] \fR[\fB\-\-log\fR \fIfile\fR] \fR[\fB\-\-mail\fR \fIcommand\fR] \fIconfig_file\fR \fR[\fIconfig_file2 ...\fR] .SH "توضیحات (DESCRIPTION)" برنامه \fBlogrotate\fR برای تسهیل مدیریت سیستم‌هایی که تعداد زیادی فایل لاگ تولید می‌کنند طراحی شده است. این برنامه امکان چرخش خودکار، فشرده‌سازی، حذف و ارسال فایل‌های لاگ از طریق ایمیل را فراهم می‌سازد. هر فایل لاگ می‌تواند به صورت روزانه، هفتگی، ماهانه یا زمانی که حجم آن بیش از حد بزرگ شود مدیریت گردد. .P به طور معمول، \fBlogrotate\fR به عنوان یک وظیفه روزانه cron اجرا می‌شود. این برنامه یک فایل لاگ را بیش از یک بار در روز تغییر نمی‌دهد، مگر اینکه معیار آن لاگ بر اساس اندازه فایل باشد و \fBlogrotate\fR بیش از یک بار در روز اجرا شود، یا اینکه از گزینه \fB\-f\fR یا \fB\-\-force\fR استفاده شده باشد. .P می‌توان هر تعداد فایل پیکربندی را در خط فرمان مشخص کرد. فایل‌های پیکربندی بعدی می‌توانند گزینه‌های مشخص‌شده در فایل‌های پیشین را بازنویسی کنند؛ بنابراین ترتیبی که فایل‌های پیکربندی \fBlogrotate\fR در آن فهرست می‌شوند اهمیت دارد. معمولاً باید از یک فایل پیکربندی واحد استفاده شود که سایر فایل‌های پیکربندی مورد نیاز را در بر گیرد (include کند). برای کسب اطلاعات بیشتر درباره نحوه استفاده از دستورالعمل \fBinclude\fR، به بخش‌های بعدی مراجعه کنید. اگر یک دایرکتوری در خط فرمان مشخص شود، هر فایلی در آن دایرکتوری به عنوان فایل پیکربندی به کار گرفته می‌شود. .P اگر هیچ آرگومانی در خط فرمان داده نشود، \fBlogrotate\fR اطلاعات نسخه و حق رونوشت (copyright) را به همراه خلاصه‌ای کوتاه از نحوه استفاده نمایش می‌دهد. اگر در حین چرخش لاگ‌ها خطایی رخ دهد، \fBlogrotate\fR با وضعیتی غیر از صفر خارج می‌شود، هرچند فایل وضعیت به‌روزرسانی خواهد شد. .SH "گزینه‌ها (OPTIONS)" .TP \fB\-f\fR, \fB\-\-force\fR به \fBlogrotate\fR می‌گوید که چرخش لاگ‌ها را اجباری کند، حتی اگر تشخیص دهد که نیازی به این کار نیست. گاهی این گزینه پس از افزودن مدخل‌های جدید به یک فایل پیکربندی \fBlogrotate\fR، یا در صورتی که فایل‌های لاگ قدیمی به صورت دستی حذف شده باشند مفید است، چرا که فایل‌های جدید ساخته می‌شوند و ثبت لاگ به درستی ادامه خواهد یافت. .TP \fB\-d\fR, \fB\-\-debug\fR فعال‌سازی حالت اشکال‌زدایی؛ بدین معنا که هیچ تغییری در لاگ‌ها ایجاد نمی‌شود و فایل وضعیت \fBlogrotate\fR به‌روزرسانی نمی‌گردد. فقط پیام‌های اشکال‌زدایی چاپ می‌شوند. .TP \fB\-s\fR, \fB\-\-state\fR \fIstatefile\fR به \fBlogrotate\fR می‌گوید از یک فایل وضعیت جایگزین استفاده کند. این گزینه زمانی سودمند است که \fBlogrotate\fR با کاربری دیگری برای مجموعه‌های متفاوتی از فایل‌های لاگ اجرا شود. به منظور جلوگیری از اجرای موازی، \fBlogrotate\fR به طور پیش‌فرض یک قفل روی فایل وضعیت ایجاد می‌کند؛ اگر دریافت قفل ممکن نباشد، \fBlogrotate\fR با مقدار ۳ خارج می‌شود. فایل وضعیت پیش‌فرض \fI/var/lib/logrotate.status\fR است. اگر \fI/dev/null\fR به عنوان فایل وضعیت داده شود، \fBlogrotate\fR تلاشی برای قفل کردن یا نوشتن در فایل وضعیت نخواهد کرد. .TP \fB\-\-skip-state-lock\fR قفل نکردن فایل وضعیت؛ برای نمونه زمانی که قفل‌گذاری پشتیبانی نمی‌شود یا مجاز نیست. .TP \fB\-\-wait-for-state-lock\fR صبر کردن تا زمانی که قفل روی فایل وضعیت توسط یک فرآیند دیگر logrotate آزاد شود. این گزینه ممکن است باعث شود logrotate تا ابد در انتظار بماند. با احتیاط استفاده کنید. .TP \fB\-v\fR, \fB\-\-verbose\fR فعال کردن حالت پرگو؛ مثلاً برای نمایش پیام‌ها در حین چرخش. .TP \fB\-l\fR, \fB\-\-log\fR \fIfile\fR به \fBlogrotate\fR می‌گوید که خروجی پرگو را در \fIfile\fR ثبت کند. خروجی پرگوی ثبت‌شده در آن فایل مانند خروجی هنگام اجرای \fBlogrotate\fR با سوییچ \fB\-v\fR است. این فایل لاگ با هر بار اجرای \fBlogrotate\fR بازنویسی می‌شود. .TP \fB\-m\fR, \fB\-\-mail\fR \fIcommand\fR به \fBlogrotate\fR می‌گوید هنگام ارسال ایمیل لاگ‌ها از چه دستوری استفاده کند. این دستور باید آرگومان‌های زیر را بپذیرد: .IP ۱) موضوع پیام که با '\-s subject' داده می‌شود .br ۲) گیرنده پیام. .IP سپس دستور باید پیامی را از ورودی استاندارد بخواند و به گیرنده ایمیل کند. دستور پیش‌فرض ارسال ایمیل \fI/usr/bin/mail\fR است. .TP \fB\-\-usage\fR پیام کوتاهی درباره نحوه استفاده چاپ می‌کند. .TP \fB\-?\fR, \fB\-\-help\fR پیام راهنما را نمایش می‌دهد. .TP \fB\-\-version\fR نمایش اطلاعات نسخه. .SH "فایل‌های پیکربندی (CONFIGURATION FILE)" \fBlogrotate\fR تمام اطلاعات مربوط به فایل‌های لاگی را که باید مدیریت شوند از مجموعه‌ای از فایل‌های پیکربندی ارائه‌شده در خط فرمان می‌خواند. هر فایل پیکربندی می‌تواند گزینه‌های سراسری را تنظیم کند (تعاریف محلی بر تعاریف سراسری اولویت دارند، و تعاریف بعدی تعاریف قبلی را بازنویسی می‌کنند) و فایل‌های لاگ را برای چرخش مشخص نماید. گزینه‌های سراسری بر دستورالعمل‌های include قبلی تأثیری ندارند. یک فایل پیکربندی ساده شبیه به این است: .nf .ta +8n # sample logrotate configuration file compress /var/log/messages { rotate 5 weekly postrotate /usr/bin/killall \-HUP syslogd endscript } "/var/log/httpd/access.log" /var/log/httpd/error.log { rotate 5 mail recipient@example.org size 100k sharedscripts postrotate /usr/bin/killall \-HUP httpd endscript } /var/log/news/* { monthly rotate 2 olddir /var/log/news/old missingok sharedscripts postrotate kill \-HUP $(cat /var/run/inn.pid) endscript nocompress } ~/log/*.log {} .fi .PP چند سطر اول گزینه‌های سراسری را تنظیم می‌کنند؛ در این مثال، لاگ‌ها پس از چرخش فشرده می‌شوند. توجه داشته باشید که توضیحات (کامنت‌ها) می‌توانند در هر کجای فایل پیکربندی قرار گیرند، تا زمانی که اولین نویسه غیرفاصله در سطر یک علامت \fB#\fR باشد. مقادیر توسط فاصله و/یا یک علامت = اختیاری از دستورالعمل‌ها جدا می‌شوند. اعداد باید در قالبی مشخص شوند که برای \fBstrtoul\fR(3) قابل فهم باشد. بخش بعدی فایل پیکربندی نحوه مدیریت فایل لاگ \fI/var/log/messages\fR را تعریف می‌کند. لاگ قبل از حذف شدن، پنج بار چرخش هفتگی را طی می‌کند. پس از چرخش فایل لاگ (اما قبل از فشرده‌سازی نسخه قدیمی لاگ)، دستور \fI/usr/bin/killall \-HUP syslogd\fR اجرا خواهد شد. بخش بعدی پارامترها را برای هر دو فایل \fI/var/log/httpd/access.log\fR و \fI/var/log/httpd/error.log\fR تعریف می‌کند. هر کدام هر زمان که حجمشان از ۱۰۰ کیلوبایت بیشتر شود چرخانده می‌شوند و فایل‌های لاگ قدیمی پس از گذراندن ۵ چرخش به جای حذف شدن، به صورت فشرده‌نشده به آدرس recipient@\:example.org ایمیل می‌شوند. گزینه \fBsharedscripts\fR به این معنی است که اسکریپت \fBpostrotate\fR تنها یک بار برای این بخش اجرا می‌شود، نه یک بار برای هر لاگی که چرخانده شده است. توجه داشته باشید که نام فایل‌های لاگ می‌تواند در میان علامت نقل‌قول قرار گیرد (و اگر نام شامل فاصله باشد، استفاده از نقل‌قول الزامی است). قوانین معمول نقل‌قول شل اعمال می‌شوند و نویسه‌های \fB'\fR، \fB"\fR و \fB\e\fR پشتیبانی می‌شوند. بخش بعدی پارامترها را برای تمام فایل‌های موجود در \fI/var/log/news\fR مشخص می‌کند. هر فایل بر اساس یک دوره ماهانه چرخانده می‌شود. بخش آخر از بسط تیلدا برای چرخش فایل‌های لاگ در دایرکتوری خانگی کاربر جاری استفاده می‌کند. این قابلیت تنها در صورتی در دسترس است که کتابخانه glob شما از بسط تیلدا پشتیبانی کند. کتابخانه GNU glob از آن پشتیبانی می‌کند. لطفاً از نویسه‌های عام با احتیاط استفاده کنید. اگر * را مشخص کنید، \fBlogrotate\fR همه فایل‌ها، از جمله فایل‌هایی را که قبلاً چرخانده شده‌اند می‌چرخاند. راهکار این موضوع استفاده از دستورالعمل \fBolddir\fR یا یک نویسه عام دقیق‌تر (مانند ‎*.log‎) است. لطفاً توجه داشته باشید که به طور پیش‌فرض هنگام استفاده از \fBsystemd\fR(1)، گزینه \fIProtectSystem=full\fR در فایل \fIlogrotate.service\fR تنظیم شده است. این امر مانع از دستکاری لاگ‌ها در \fI/etc\fR و \fI/usr\fR توسط \fBlogrotate\fR می‌شود. در اینجا اطلاعات بیشتری در مورد دستورالعمل‌هایی که ممکن است در یک فایل پیکربندی \fBlogrotate\fR گنجانده شوند آمده است: .SH "دستورالعمل‌های فایل پیکربندی (CONFIGURATION FILE DIRECTIVES)" این دستورالعمل‌ها ممکن است در یک فایل پیکربندی \fBlogrotate\fR گنجانده شوند: .SS "چرخش (Rotation)" .TP \fBrotate \fIcount\fR فایل‌های لاگ پیش از حذف یا ارسال به آدرس مشخص‌شده در یک دستورالعمل \fBmail\fR، به تعداد \fIcount\fR بار چرخانده می‌شوند. اگر \fIcount\fR برابر ۰ باشد، نسخه‌های قدیمی به جای چرخش حذف می‌شوند. اگر \fIcount\fR برابر \-1 باشد، لاگ‌های قدیمی اصلاً حذف نمی‌شوند، به جز مواردی که تحت تأثیر \fBmaxage\fR قرار گیرند (با احتیاط استفاده شود، زیرا ممکن است باعث اتلاف کارایی و فضای دیسک گردد). مقدار پیش‌فرض ۰ است. .TP \fBolddir \fIdirectory\fR لاگ‌ها برای چرخش به دایرکتوری \fIdirectory\fR منتقل می‌شوند. این \fIdirectory\fR باید روی همان دستگاه فیزیکی فایل لاگی که چرخانده می‌شود قرار داشته باشد، مگر اینکه از گزینه‌های \fBcopy\fR، \fBcopytruncate\fR یا \fBrenamecopy\fR استفاده شود. فرض می‌شود که \fIdirectory\fR نسبت به دایرکتوری نگه‌دارنده فایل لاگ نسبی است، مگر اینکه یک نام مسیر مطلق مشخص شده باشد. هنگام استفاده از این گزینه، تمام نسخه‌های قدیمی لاگ در \fIdirectory\fR قرار می‌گیرند. این گزینه را می‌توان با گزینه \fBnoolddir\fR لغو کرد. .TP \fBnoolddir\fR لاگ‌ها در همان دایرکتوری که معمولاً در آن قرار دارند چرخانده می‌شوند (این گزینه، گزینه \fBolddir\fR را لغو می‌کند). .TP \fBsu \fIuser\fR \fIgroup\fR چرخش فایل‌های لاگ با کاربر و گروه مشخص‌شده به جای استفاده از کاربر/گروه پیش‌فرض (معمولاً root). آرگومان \fIuser\fR کاربر مورد استفاده برای چرخش و \fIgroup\fR گروه مورد استفاده برای چرخش را مشخص می‌کند (برای جزئیات به بخش \fBکاربر و گروه\fR مراجعه کنید). اگر کاربر/گروهی که در اینجا مشخص می‌کنید دسترسی کافی برای ساخت فایل‌هایی با مالکیتی که در دستورالعمل \fBcreate\fR تعیین کرده‌اید نداشته باشد، منجر به بروز خطا می‌شود. اگر \fBlogrotate\fR با دسترسی ریشه اجرا می‌شود، توصیه می‌شود برای چرخش فایل‌ها در دایرکتوری‌هایی که مستقیماً یا غیرمستقیم تحت کنترل کاربران فاقد دسترسی ریشه هستند، از دستورالعمل \fBsu\fR استفاده کنید. .SS "بسامد (Frequency)" .TP \fBhourly\fR فایل‌های لاگ هر ساعت چرخانده می‌شوند. توجه داشته باشید که معمولاً \fBlogrotate\fR به گونه‌ای پیکربندی می‌شود که روزانه توسط cron (یا توسط \fIlogrotate.timer\fR هنگام استفاده از \fBsystemd\fR(1)) اجرا گردد. شما باید این پیکربندی را تغییر دهید و \fBlogrotate\fR را به صورت ساعتی اجرا کنید تا بتوانید لاگ‌ها را واقعاً ساعتی بچرخانید. .TP \fBdaily\fR فایل‌های لاگ هر روز چرخانده می‌شوند. .TP \fBweekly\fR [\fIweekday\fR] فایل‌های لاگ یک بار در هر \fIweekday\fR، یا در صورتی که تاریخ حداقل ۷ روز نسبت به آخرین چرخش جلوتر رفته باشد (با صرف‌نظر از ساعت دقیق) چرخانده می‌شوند. تفسیر \fIweekday\fR به این صورت است: ۰ به معنای یکشنبه، ۱ به معنای دوشنبه، \&.\|.\|.\|\&، ۶ به معنای شنبه است؛ مقدار ویژه ۷ به معنای هر ۷ روز یک بار، صرف‌نظر از روز هفته است. در صورت حذف آرگومان \fIweekday\fR، مقدار پیش‌فرض ۰ است. .TP \fBmonthly\fR فایل‌های لاگ در اولین باری که \fBlogrotate\fR در یک ماه اجرا می‌شود چرخانده می‌شوند (این حالت معمولاً در روز اول ماه است). .TP \fByearly\fR فایل‌های لاگ در صورتی که سال جاری با سال آخرین چرخش یکسان نباشد چرخانده می‌شوند. .TP \fBsize \fIsize\fR فایل‌های لاگ تنها در صورتی چرخانده می‌شوند که حجم آنها از \fIsize\fR بایت بزرگ‌تر شود. اگر به دنبال \fIsize\fR حرف \fIk\fR بیاید، اندازه بر حسب کیلوبایت در نظر گرفته می‌شود. اگر از \fIM\fR استفاده شود، اندازه بر حسب مگابایت و اگر از \fIG\fR استفاده شود، اندازه بر حسب گیگابایت است. بنابراین \fIsize 100\fR، \fIsize 100k\fR، \fIsize 100M\fR و \fIsize 100G\fR همگی معتبر هستند. این گزینه با گزینه‌های بازه زمانی مانعةالجمع است و در صورت تعیین پس از معیارهای زمانی، باعث می‌شود فایل‌های لاگ بدون توجه به زمان آخرین چرخش چرخانده شوند (آخرین گزینه مشخص‌شده اولویت دارد). .SS "انتخاب فایل (File selection)" .TP \fBmissingok\fR اگر فایل لاگ وجود نداشته باشد، بدون صدور پیام خطا به سراغ فایل بعدی برود. همچنین \fBnomissingok\fR را ببینید. .TP \fBnomissingok\fR اگر یک فایل لاگ وجود نداشته باشد، یک پیام خطا صادر کند. این حالت پیش‌فرض است. .TP \fBignoreduplicates\fR نادیده گرفتن هرگونه تطابق بعدی یک فایل لاگ. .TP \fBifempty\fR چرخش فایل لاگ حتی در صورتی که خالی باشد، که گزینه \fBnotifempty\fR را بازنویسی می‌کند (\fBifempty\fR پیش‌فرض است). .TP \fBnotifempty\fR عدم چرخش لاگ در صورتی که خالی باشد (این گزینه، گزینه \fBifempty\fR را لغو می‌کند). .TP \fBminage\fR \fIcount\fR لاگ‌هایی را که کمتر از روز قدمت دارند نچرخاند. .TP \fBmaxage\fR \fIcount\fR حذف لاگ‌های چرخانده‌شده‌ای که قدمت آنها بیش از روز است. سن فایل تنها در صورتی بررسی می‌شود که فایل لاگ قرار باشد چرخانده شود. گزینه \fBrotate \-1\fR مانع حذف نمی‌شود. در صورت پیکربندی \fBmaillast\fR و \fBmail\fR، فایل‌ها به آدرس تنظیم‌شده ایمیل می‌شوند. .TP \fBminsize\fR \fIsize\fR فایل‌های لاگ زمانی چرخانده می‌شوند که از \fIsize\fR بایت بزرگ‌تر شوند، اما نه پیش از بازه زمانی تعیین‌شده اضافی (\fBdaily\fR، \fBweekly\fR، \fBmonthly\fR یا \fByearly\fR). گزینه مرتبط \fBsize\fR مشابه است، به جز اینکه با گزینه‌های بازه زمانی مانعةالجمع است و اگر پس از معیارهای زمانی مشخص شود، باعث چرخش فایل‌های لاگ بدون در نظر گرفتن زمان آخرین چرخش می‌شود (آخرین گزینه مشخص‌شده اولویت دارد). هنگامی که از \fBminsize\fR استفاده می‌شود، هم اندازه و هم برچسب زمانی فایل لاگ در نظر گرفته می‌شوند. .TP \fBmaxsize\fR \fIsize\fR فایل‌های لاگ زمانی که از \fIsize\fR بایت بزرگ‌تر شوند حتی پیش از بازه زمانی تعیین‌شده اضافی (\fBdaily\fR، \fBweekly\fR، \fBmonthly\fR یا \fByearly\fR) چرخانده می‌شوند. گزینه مرتبط \fBsize\fR مشابه است، به جز اینکه با گزینه‌های بازه زمانی مانعةالجمع است و اگر پس از معیارهای زمانی مشخص شود، باعث چرخش فایل‌های لاگ بدون توجه به زمان آخرین چرخش می‌گردد (آخرین گزینه مشخص‌شده اولویت دارد). هنگامی که از \fBmaxsize\fR استفاده می‌شود، هم اندازه و هم برچسب زمانی یک فایل لاگ در نظر گرفته می‌شوند. .TP \fBtabooext\fR [+] \fIlist\fR فهرست پسوندهای ممنوعه جاری تغییر داده می‌شود (برای اطلاعات درباره پسوندهای ممنوعه، به دستورالعمل \fBinclude\fR مراجعه کنید). اگر علامت + پیش از فهرست پسوندها بیاید، فهرست پسوندهای ممنوعه جاری گسترش می‌یابد، در غیر این صورت جایگزین می‌شود. در زمان راه‌اندازی، فهرست پسوندهای ممنوعه شامل موارد زیر است: .IR ,v ، .IR .bak ، .IR .cfsaved ، .IR .disabled ، .IR .dpkg\-bak ، .IR .dpkg\-del ، .IR .dpkg\-dist ، .IR .dpkg\-new ، .IR .dpkg\-old ، .IR .dpkg\-tmp ، .IR .new ، .IR .old ، .IR .orig ، .IR .rhn\-cfg\-tmp\-* ، .IR .rpmnew ، .IR .rpmorig ، .IR .rpmsave ، .IR .swp ، .IR .ucf\-dist ، .IR .ucf\-new ، .IR .ucf\-old ، .I ~ .TP \fBtaboopat\fR [+] \fIlist\fR فهرست الگوهای تطبیق (glob) ممنوعه جاری تغییر داده می‌شود (برای اطلاعات درباره پسوندها و الگوهای ممنوعه به دستورالعمل \fBinclude\fR مراجعه کنید). اگر یک + پیش از فهرست الگوها قرار گیرد، فهرست الگوهای ممنوعه جاری گسترش می‌یابد، در غیر این صورت جایگزین می‌شود. در زمان راه‌اندازی، فهرست الگوهای ممنوعه خالی است. .SS "فایل‌ها و پوشه‌ها (Files and Folders)" .TP \fBcreate \fImode\fR \fIowner\fR \fIgroup\fR, \fBcreate \fIowner\fR \fIgroup\fR بلافاصله پس از چرخش (پیش از اجرای اسکریپت \fBpostrotate\fR) فایل لاگ (با همان نام فایلی که تازه چرخانده شده) ایجاد می‌شود. آرگومان \fImode\fR حالت دسترسی فایل لاگ را در مبنای هشت (مشابه \fBchmod\fR(2)) مشخص می‌کند، \fIowner\fR کاربری را که مالک فایل خواهد بود مشخص می‌نماید و \fIgroup\fR گروهی را که فایل لاگ به آن تعلق خواهد داشت تعیین می‌کند (برای جزئیات به بخش \fBکاربر و گروه\fR مراجعه کنید). هر یک از ویژگی‌های فایل لاگ را می‌توان حذف کرد، که در این صورت ویژگی‌های محذوف برای فایل جدید از مقادیر فایل لاگ اصلی استفاده خواهند کرد. این گزینه را می‌توان با گزینه \fBnocreate\fR غیرفعال کرد. .TP \fBnocreate\fR فایل‌های لاگ جدید ساخته نمی‌شوند (این گزینه، گزینه \fBcreate\fR را لغو می‌کند). .TP \fBcreateolddir \fImode\fR \fR[\fIowner\fR \fR[\fIgroup\fR]\fR], \fBcreateolddir \fR[\fIowner\fR \fR[\fIgroup\fR]\fR] اگر دایرکتوری مشخص‌شده با دستورالعمل \fBolddir\fR وجود نداشته باشد، ایجاد می‌شود. آرگومان \fImode\fR حالت دسترسی دایرکتوری \fBolddir\fR را در مبنای هشت (مشابه \fBchmod\fR(2))، \fIowner\fR کاربر مالک دایرکتوری \fBolddir\fR و \fIgroup\fR گروه دایرکتوری \fBolddir\fR را مشخص می‌کند (برای جزئیات به بخش \fBکاربر و گروه\fR مراجعه کنید). اگر \fImode\fR مشخص نشود، \fB0755\fR فرض می‌شود. این گزینه را می‌توان با استفاده از گزینه \fBnocreateolddir\fR غیرفعال کرد. .TP \fBnocreateolddir\fR دایرکتوری \fBolddir\fR در صورت عدم وجود توسط \fBlogrotate\fR ایجاد نمی‌شود. .TP \fBcopy\fR تهیه یک نسخه کپی از فایل لاگ، بدون اعمال هیچ تغییری در فایل اصلی. از این گزینه می‌توان برای مثال برای تهیه یک رونوشت لحظه‌ای (snapshot) از فایل لاگ جاری، یا زمانی که ابزار دیگری نیاز به خالی کردن یا پردازش فایل دارد استفاده کرد. هنگام استفاده از این گزینه، گزینه \fBcreate\fR هیچ اثری نخواهد داشت، زیرا فایل لاگ قدیمی در جای خود باقی می‌ماند. گزینه \fBcopy\fR اجازه می‌دهد فایل‌های لاگ چرخانده‌شده با استفاده از دستورالعمل \fBolddir\fR روی دستگاه‌های دیگری ذخیره شوند. .TP \fBnocopy\fR فایل لاگ اصلی کپی نمی‌شود و در جای خود باقی می‌ماند (این گزینه، گزینه \fBcopy\fR را لغو می‌کند). .TP \fBcopytruncate\fR خالی کردن اندازه فایل لاگ اصلی در جای خود به صفر پس از تهیه یک نسخه کپی، به جای جابجایی فایل لاگ قدیمی و احیاناً ایجاد یک فایل جدید. این گزینه زمانی قابل استفاده است که نتوان برنامه‌ای را وادار به بستن فایل لاگ خود کرد و در نتیجه ممکن است برنامه برای همیشه به نوشتن (الحاق) در فایل لاگ پیشین ادامه دهد. توجه داشته باشید که یک برش زمانی بسیار کوتاه بین کپی کردن فایل و خالی کردن آن وجود دارد، بنابراین ممکن است مقداری از داده‌های لاگ‌گیری از دست برود. هنگام استفاده از این گزینه، گزینه \fBcreate\fR هیچ تأثیری نخواهد داشت، زیرا فایل لاگ قدیمی در جای خود باقی می‌ماند. گزینه \fBcopytruncate\fR امکان ذخیره‌سازی فایل‌های لاگ چرخانده‌شده را روی دستگاه‌های مختلف با استفاده از دستورالعمل \fBolddir\fR ممکن می‌سازد. گزینه \fBcopytruncate\fR به طور ضمنی شامل \fBnorenamecopy\fR است. .TP \fBnocopytruncate\fR پس از تهیه کپی، فایل لاگ اصلی را در جای خود خالی نمی‌کند (این گزینه، گزینه \fBcopytruncate\fR را لغو می‌کند). .TP \fBrenamecopy\fR فایل لاگ با افزودن پسوند ".tmp" به نامی موقت در همان دایرکتوری تغییر نام می‌یابد. پس از آن، اسکریپت \fBpostrotate\fR اجرا شده و فایل لاگ از نام موقت به نام نهایی کپی می‌شود. در انتها، نام فایل موقت حذف می‌گردد. گزینه \fBrenamecopy\fR اجازه ذخیره لاگ‌های چرخانده‌شده روی دستگاه‌های متفاوت را از طریق دستورالعمل \fBolddir\fR می‌دهد. گزینه \fBrenamecopy\fR به طور ضمنی شامل \fBnocopytruncate\fR است. .TP \fBnorenamecopy\fR فایل لاگ اصلی را تغییر نام نداده و کپی نمی‌کند (این گزینه، گزینه \fBrenamecopy\fR را لغو می‌کند). .TP \fBshred\fR حذف فایل‌های لاگ با استفاده از \fBshred\fR \-u به جای ()unlink. این کار تضمین می‌کند که لاگ‌ها پس از حذف زمان‌بندی‌شده دیگر قابل خواندن نباشند؛ این قابلیت به طور پیش‌فرض غیرفعال است. همچنین \fBnoshred\fR را ببینید. .TP \fBnoshred\fR عدم استفاده از \fBshred\fR هنگام حذف فایل‌های لاگ قدیمی. همچنین \fBshred\fR را ببینید. .TP \fBshredcycles\fR \fIcount\fR از GNU \fBshred\fR(1) می‌خواهد فایل‌های لاگ را پیش از حذف، به تعداد \fBcount\fR بار رونویسی کند. بدون این گزینه، مقدار پیش‌فرض \fBshred\fR به کار گرفته می‌شود. .TP \fBallowhardlink\fR چرخش فایل‌هایی که چندین پیوند سخت (hard link) دارند؛ این گزینه به طور پیش‌فرض غیرفعال است. فایل مقصد ممکن است تخلیه شود، به عنوان مثال با \fBshred\fR یا \fBcopytruncate\fR. با احتیاط استفاده شود، به ویژه زمانی که فایل‌های لاگ به عنوان ریشه (root) چرخانده می‌شوند. .TP \fBnoallowhardlink\fR فایل‌هایی با چندین پیوند سخت را نمی‌چرخاند. همچنین \fBallowhardlink\fR را ببینید. .SS "فشرده‌سازی (Compression)" .TP \fBcompress\fR نسخه‌های قدیمی فایل‌های لاگ به طور پیش‌فرض با \fBgzip\fR(1) فشرده می‌شوند. همچنین \fBnocompress\fR را ببینید. .TP \fBnocompress\fR نسخه‌های قدیمی فایل‌های لاگ فشرده نمی‌شوند. همچنین \fBcompress\fR را ببینید. .TP \fBcompresscmd\fR مشخص می‌کند از چه دستوری برای فشرده‌سازی فایل‌های لاگ استفاده شود. پیش‌فرض \fBgzip\fR(1) است. همچنین \fBcompress\fR را ببینید. .TP \fBuncompresscmd\fR مشخص می‌کند از چه دستوری برای باز کردن فایل‌های لاگ فشرده استفاده شود. پیش‌فرض \fBgunzip\fR(1) است. .TP \fBcompressext\fR در صورت فعال بودن فشرده‌سازی، پسوند مورد استفاده برای فایل‌های لاگ فشرده‌شده را مشخص می‌کند. پیش‌فرض از دستور فشرده‌سازی تنظیم‌شده تبعیت می‌کند. .TP \fBcompressoptions\fR در صورت استفاده از برنامه فشرده‌سازی، می‌توان گزینه‌های خط فرمان را به آن ارسال کرد. پیش‌فرض برای \fBgzip\fR(1) مقدار "\-6" است (تمایل به فشرده‌سازی بالا به بهای کاهش سرعت). اگر از دستور فشرده‌سازی دیگری استفاده می‌کنید، ممکن است نیاز باشد \fBcompressoptions\fR را متناسب با آن تغییر دهید. .TP \fBdelaycompress\fR به تعویق انداختن فشرده‌سازی فایل لاگ قبلی تا چرخه بعدی چرخش. این گزینه تنها زمانی اثر دارد که همراه با \fBcompress\fR به کار رود. این گزینه می‌تواند زمانی استفاده شود که نتوان به برنامه‌ای گفت فایل لاگ خود را ببندد و در نتیجه ممکن است تا مدتی به نوشتن در فایل لاگ پیشین ادامه دهد. .TP \fBnodelaycompress\fR فشرده‌سازی فایل لاگ قبلی را به چرخه بعدی موکول نمی‌کند (این گزینه، گزینه \fBdelaycompress\fR را لغو می‌کند). .SS "نام فایل‌ها (Filenames)" .TP \fBextension \fIext\fR فایل‌های لاگ با پسوند \fIext\fR می‌توانند این پسوند را پس از چرخش حفظ کنند. اگر از فشرده‌سازی استفاده شود، پسوند فشرده‌سازی (معمولاً \fI.gz\fR) پس از \fIext\fR ظاهر می‌شود. به عنوان مثال، شما یک فایل لاگ با نام mylog.foo دارید و می‌خواهید آن را به جای mylog.foo.1.gz به mylog.1.foo.gz بچرخانید. .TP \fBaddextension \fIext\fR پس از چرخش، به فایل‌های لاگ پسوند نهایی \fIext\fR داده می‌شود. اگر فایل اصلی از قبل با \fIext\fR تمام شده باشد، پسوند تکرار نمی‌شود بلکه صرفاً به انتها منتقل می‌گردد؛ یعنی هر دو نام \fBfilename\fR و \fBfilename\fIext\fR به filename.1\fIext\fR چرخانده می‌شوند. اگر از فشرده‌سازی استفاده شود، پسوند فشرده‌سازی (معمولاً \fB.gz\fR) بعد از \fIext\fR قرار می‌گیرد. .TP \fBstart \fIcount\fR عددی است که به عنوان پایه برای چرخش استفاده می‌شود. برای مثال، اگر ۰ را مشخص کنید، لاگ‌ها با چرخش از فایل‌های لاگ اصلی با پسوند ‎.0 ایجاد می‌شوند. اگر ۹ را مشخص کنید، فایل‌های لاگ با ‎.9 ساخته می‌شوند و از ۰ تا ۸ رد می‌شوند. فایل‌ها همچنان به تعداد دفعات مشخص‌شده با دستورالعمل \fBrotate\fR چرخانده خواهند شد. .TP \fBdateext\fR بایگانی نسخه‌های قدیمی فایل‌های لاگ با افزودن پسوند تاریخ مانند YYYYMMDD به جای اضافه کردن یک عدد. این پسوند می‌تواند با استفاده از گزینه‌های \fBdateformat\fR و \fBdateyesterday\fR پیکربندی شود. .TP \fBnodateext\fR عدم بایگانی نسخه‌های قدیمی فایل‌های لاگ با پسوند تاریخ (این گزینه، گزینه \fBdateext\fR را لغو می‌کند). .TP \fBdateformat\fR \fIformat_string\fR مشخص کردن پسوند برای \fBdateext\fR با استفاده از نشانه‌گذاری مشابه تابع \fBstrftime\fR(3). تنها مشخص‌کننده‌های %Y %m %d %H %M %S %V %s و %z مجاز هستند. مقدار پیش‌فرض ‎\-%Y%m%d است، به جز برای ساعتی (hourly) که از ‎\-%Y%m%d%H به عنوان مقدار پیش‌فرض استفاده می‌کند. توجه داشته باشید نویسه‌ای که نام لاگ را از پسوند جدا می‌کند نیز بخشی از رشته dateformat است. ساعت سیستم باید پس از ۹ سپتامبر ۲۰۰۱ تنظیم شده باشد تا %s به درستی کار کند. توجه داشته باشید برچسب‌های زمانی تولیدشده با این قالب باید از نظر واژگانی قابل مرتب‌سازی باشند (یعنی ابتدا سال، سپس ماه و پس از آن روز؛ مثلاً ۲۰۰۱/۱۲/۰۱ درست است، اما ۰۱/۱۲/۲۰۰۱ درست نیست، زیرا ۰۱/۱۱/۲۰۰۲ با وجود اینکه بعداً رخ داده، در رتبه پایین‌تری قرار می‌گیرد). این بدان دلیل است که هنگام استفاده از گزینه \fBrotate\fR، برنامه \fBlogrotate\fR تمام نام‌های فایل‌های چرخانده‌شده را مرتب می‌کند تا متوجه شود کدام لاگ‌ها قدیمی‌تر هستند و باید حذف شوند. .TP \fBdateyesterday\fR استفاده از تاریخ دیروز به جای تاریخ امروز برای ایجاد پسوند \fBdateext\fR، تا فایل لاگ چرخانده‌شده تاریخی در نام خود داشته باشد که با برچسب‌های زمانی درون آن یکسان است. .TP \fBdatehourago\fR استفاده از یک ساعت قبل به جای تاریخ فعلی برای ساخت پسوند \fBdateext\fR، تا فایل لاگ چرخانده‌شده ساعتی در نام خود داشته باشد که مشابه برچسب‌های زمانی درون آن است. همراه با چرخش \fBhourly\fR مفید است. .SS "ایمیل (Mail)" .TP \fBmail \fIaddress\fR هنگامی که یک لاگ بر اثر چرخش از دور خارج و حذف می‌شود، به \fIaddress\fR ایمیل می‌گردد. اگر نباید هیچ ایمیلی برای یک لاگ خاص تولید شود، می‌توان از دستورالعمل \fBnomail\fR استفاده کرد. .TP \fBnomail\fR عدم ارسال ایمیل فایل‌های لاگ قدیمی به هر آدرسی. .TP \fBmailfirst\fR هنگام استفاده از دستور \fBmail\fR، فایلی که به تازگی چرخانده شده است ایمیل شود، به جای فایلی که در شرف انقضا است. .TP \fBmaillast\fR هنگام استفاده از دستور \fBmail\fR، فایلی که در شرف انقضا است ایمیل شود، به جای فایلی که به تازگی چرخانده شده است (این حالت پیش‌فرض است). .SS "فایل‌های پیکربندی اضافی (Additional config files)" .TP \fBinclude \fIfile_or_directory\fR فایل ارائه‌شده به عنوان آرگومان را به گونه‌ای می‌خواند که گویی در محل ظاهر شدن دستورالعمل \fBinclude\fR به صورت درون‌خطی گنجانده شده است. اگر یک دایرکتوری داده شود، اکثر فایل‌های موجود در آن دایرکتوری به ترتیب الفبایی پیش از ادامه پردازش فایل دربرگیرنده خوانده می‌شوند. تنها فایل‌هایی نادیده گرفته می‌شوند که فایل عادی نیستند (مانند دایرکتوری‌ها و لوله‌های نام‌گذاری‌شده) و فایل‌هایی که نام آنها با یکی از پسوندها یا الگوهای ممنوعه پایان می‌یابد، همان‌گونه که به ترتیب توسط دستورالعمل‌های \fBtabooext\fR یا \fBtaboopat\fR مشخص شده است. مسیر ارائه‌شده می‌تواند با \fB~/\fR آغاز شود تا نسبت به دایرکتوری خانگی کاربر در حال اجرا سنجیده شود. به دلایل امنیتی، فایل‌های پیکربندی نباید توسط گروه یا همگان قابل نوشتن باشند. .SS "اسکریپت‌ها (Scripts)" .TP \fBsharedscripts\fR به طور معمول، اسکریپت‌های \fBprerotate\fR و \fBpostrotate\fR به ازای هر لاگی که چرخانده می‌شود اجرا می‌گردند و مسیر مطلق فایل لاگ به عنوان نخستین آرگومان به اسکریپت فرستاده می‌شود. این بدان معناست که یک اسکریپت ممکن است برای مدخل‌های فایل لاگی که با چندین فایل تطابق دارند (مانند مثال \fI/var/log/news/*\fR) چندین بار اجرا شود. اگر \fBsharedscripts\fR مشخص شود، اسکریپت‌ها صرف‌نظر از تعداد لاگ‌هایی که با الگوی دارای نویسه عام مطابقت دارند تنها یک بار اجرا می‌شوند و کل الگو به آنها ارسال می‌گردد. با این حال، اگر هیچ‌یک از لاگ‌های موجود در الگو نیازی به چرخش نداشته باشند، اسکریپت‌ها اصلاً اجرا نخواهند شد. اگر اسکریپت‌ها با خطا خارج شوند (یا چرخش هر لاگی با شکست مواجه شود)، اقدامات باقی‌مانده برای هیچ لاگی انجام نخواهد شد. این گزینه، گزینه \fBnosharedscripts\fR را لغو می‌کند. .TP \fBnosharedscripts\fR اجرای اسکریپت‌های \fBprerotate\fR و \fBpostrotate\fR برای هر فایل لاگی که چرخانده می‌شود (این حالت پیش‌فرض است و گزینه \fBsharedscripts\fR را لغو می‌کند). مسیر مطلق فایل لاگ به عنوان اولین آرگومان به اسکریپت داده می‌شود. مسیر مطلق فایل لاگ نهایی چرخانده‌شده به عنوان آرگومان دوم به اسکریپت \fBpostrotate\fR داده می‌شود. اگر اسکریپت‌ها با خطا خارج شوند، اقدامات باقی‌مانده تنها برای همان لاگ مربوطه اجرا نخواهد شد. .tq \fBfirstaction\fR .tq \ \ \ \ \fIscript\fR .tq \fBendscript\fR اسکریپت \fIscript\fR یک بار پیش از چرخش تمام فایل‌های لاگی که با الگوی نویسه عام مطابقت دارند، قبل از اجرای اسکریپت prerotate و تنها در صورتی که حداقل یک لاگ واقعاً چرخانده شود، اجرا می‌شود. این دستورالعمل‌ها تنها می‌توانند درون تعریف یک فایل لاگ قرار گیرند. کل الگو به عنوان اولین آرگومان به اسکریپت داده می‌شود. اگر اسکریپت با خطا خارج شود، هیچ پردازش دیگری انجام نخواهد شد. همچنین \fBlastaction\fR و بخش \fBاسکریپت‌ها\fR را ببینید. .tq \fBlastaction\fR .tq \ \ \ \ \fIscript\fR .tq \fBendscript\fR اسکریپت \fIscript\fR یک بار پس از چرخش تمام فایل‌های لاگی که با الگوی نویسه عام مطابقت دارند، بعد از اجرای اسکریپت postrotate و تنها در صورتی که حداقل یک لاگ چرخانده شود، اجرا می‌شود. این دستورالعمل‌ها فقط می‌توانند درون تعریف یک فایل لاگ قرار گیرند. کل الگو به عنوان اولین آرگومان به اسکریپت تحویل داده می‌شود. اگر اسکریپت با خطا خارج شود، فقط یک پیام خطا نشان داده می‌شود (زیرا این آخرین اقدام است). همچنین \fBfirstaction\fR و بخش \fBاسکریپت‌ها\fR را ببینید. .tq \fBprerotate\fR .tq \ \ \ \ \fIscript\fR .tq \fBendscript\fR اسکریپت \fIscript\fR قبل از اینکه فایل لاگ و لاگ‌های قدیمی آن چرخانده شوند، و فقط در صورتی که لاگ واقعاً قرار باشد چرخانده شود، اجرا می‌شود. این دستورالعمل‌ها تنها می‌توانند درون تعریف یک فایل لاگ باشند. به طور معمول، مسیر مطلق فایل لاگ به عنوان آرگومان اول به اسکریپت تحویل داده می‌شود. اگر \fBsharedscripts\fR تعیین شده باشد، کل الگو به اسکریپت داده می‌شود. همچنین \fBpostrotate\fR و بخش \fBاسکریپت‌ها\fR را ببینید. برای مدیریت خطا، به \fBsharedscripts\fR و \fBnosharedscripts\fR مراجعه کنید. .tq \fBpostrotate\fR .tq \ \ \ \ \fIscript\fR .tq \fBendscript\fR اسکریپت \fIscript\fR پس از چرخش فایل لاگ و پیش از فشرده‌سازی آن اجرا می‌شود. این دستورالعمل‌ها تنها می‌توانند درون تعریف یک فایل لاگ قرار گیرند. به طور معمول، مسیر مطلق فایل لاگ به عنوان آرگومان اول و مسیر مطلق فایل لاگ نهایی چرخانده‌شده به عنوان آرگومان دوم به اسکریپت تحویل داده می‌شود. اگر \fBsharedscripts\fR تعیین شده باشد، کل الگو به عنوان آرگومان اول به اسکریپت ارسال می‌شود و آرگومان دوم حذف می‌گردد. همچنین \fBprerotate\fR و بخش \fBاسکریپت‌ها\fR را ببینید. برای مدیریت خطا، به \fBsharedscripts\fR و \fBnosharedscripts\fR مراجعه کنید. .tq \fBpreremove\fR .tq \ \ \ \ \fIscript\fR .tq \fBendscript\fR اسکریپت \fIscript\fR فقط یک بار درست قبل از حذف یک فایل لاگ اجرا می‌شود. \fBlogrotate\fR نام فایلی را که به زودی حذف می‌شود به عنوان اولین آرگومان به اسکریپت ارسال می‌کند. همچنین \fBfirstaction\fR و بخش \fBاسکریپت‌ها\fR را ببینید. .SH "اسکریپت‌ها (SCRIPTS)" سطرهای بین کلیدواژه آغازین (مانند \fBprerotate\fR) و \fBendscript\fR (که هر دو باید به تنهایی در سطرهایی مجزا قرار گیرند) با استفاده از \fB/bin/sh\fR اجرا می‌شوند. اسکریپت برخی از ویژگی‌ها را از فرآیند \fBlogrotate\fR به ارث می‌برد، از جمله stderr، stdout، دایرکتوری جاری، متغیرهای محیطی (environment) و ماسک دسترسی (umask). اسکریپت‌ها با کاربر و گروه فراخواننده اجرا می‌شوند، صرف‌نظر از هر دستورالعمل \fBsu\fR که ممکن است تعیین شده باشد. اگر سوییچ \fB\-\-log\fR مشخص شده باشد، توصیف‌گر فایل شماره ۳ همان فایل لاگ خواهد بود. دایرکتوری کاری جاری نامشخص است. .SH "کاربر و گروه (USER AND GROUP)" شناسه‌های کاربر و گروه ابتدا با ارزیابی نمایش متنی آنها تعیین می‌شوند و در صورت ناموفق بودن، پس از آن از طریق مقدار عددی آنها ارزیابی می‌گردند. .SH "فایل‌ها (FILES)" .TS tab(:); l l l. \fI/var/lib/logrotate.status\fR:فایل وضعیت پیش‌فرض. \fI/etc/logrotate.conf\fR:گزینه‌های پیکربندی. .TE .SH "همچنین ببینید (SEE ALSO)" .BR chmod (2), .BR gunzip (1), .BR gzip (1), .BR mail (1), .BR shred (1), .BR strftime (3), .BR strtoul (3), .SH "نویسندگان (AUTHORS)" .nf Erik Troan, Preston Brown, Jan Kaluza. .fi