.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH DS-LOGPIPE.PY 1 "March 31, 2017" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH "نام (NAME)" ds-logpipe.py \- ایجاد و خواندن از یک لوله نام‌گذاری‌شده به‌جای فایل گزارش .SH "خلاصه دستور (SYNOPSIS)" .B ds\-logpipe.py /full/path/to/namedpipe [\fI-m maxlinestobuffer\fR] [\fI-u userid\fR] [\fI-s serverpidfile\fR] [\fI-t servertimeout\fR] [\fI--plugin=/path/to/pluginfile.py\fR] [\fIpluginfile.arg=value\fR] .PP .SH "توضیحات (DESCRIPTION)" اسکریپت Named Pipe Log به شما امکان می‌دهد یک فایل گزارش را با یک لوله نام‌گذاری‌شده (named pipe) متصل به یک اسکریپت جایگزین کنید. سپس سرور می‌تواند خروجی لاگ را به‌جای یک فایل گزارش، به یک اسکریپت بفرستد. این کار امکان انجام کارهای متنوعی را فراهم می‌کند؛ از جمله: * ثبت فقط وقایع خاص، مانند اتصالات ناموفق bind، اتصالات از نشانی‌های IP مشخص و غیره. * ثبت فقط خطوطی که با الگوی خاصی مطابقت دارند. * ثبت فقط N خط آخر \- مفید برای فعال‌سازی سطوح خطایابی (debug) کامل error log در محیط‌های عملیاتی. * ارسال یک ایمیل یا اعلان دیگر در زمان تشخیص رویدادی مشخص. این اسکریپت با python نوشته شده است و از افزونه‌ها پشتیبانی می‌کند. به‌طور پیش‌فرض، اسکریپت N خط آخر را ثبت می‌کند (پیش‌فرض ۱۰۰۰ خط است). دو افزونه به‌همراه آن ارائه شده است \- یکی برای ثبت فقط تلاش‌های ناموفق bind، و دیگری برای ثبت تنها خطوطی که با عبارات باقاعده داده‌شده همخوانی دارند. .PP .\" TeX users may be more comfortable with the \fB\fP and .\" \fI\fP escape sequences to invode bold face and italics, .\" respectively. .SH "گزینه‌ها (OPTIONS)" خلاصه‌ای از گزینه‌ها در زیر آمده است. .TP .B /full/path/to/namedpipe الزامی \- مسیر کامل و نام فایل لوله نام‌گذاری‌شده. اگر وجود نداشته باشد، ایجاد خواهد شد. اگر وجود داشته باشد و یک لوله نام‌گذاری‌شده باشد، اسکریپت از آن استفاده خواهد کرد. اگر وجود داشته باشد و لوله نباشد، اسکریپت لغو خواهد شد. مالکیت آن مشابه کاربری خواهد بود که اسکریپت را اجرا می‌کند (یا گزینه \-u در زیر را ببینید). .TP .B \-m|\-\-maxlines=N تعداد خطوط برای نگهداری در بافر \- مقدار پیش‌فرض ۱۰۰۰ است. .TP .B \-u|\-\-userid=user مالکیت pipe و هر فایل دیگری که توسط این اسکریپت ایجاد شود، با ()chown به این userid تغییر خواهد یافت. این مقدار می‌تواند یک رشته حاوی نام userid یا یک مقدار عددی userid باشد. .TP .B \-s|\-\-serverpidfile=/path/to/servername.pid اگر می‌خواهید اسکریپت هنگام خروج یک سرور دایرکتوری خاص خارج شود، مسیر کامل فایل حاوی pid سرور را مشخص کنید. مقدار پیش‌فرض معمولاً چیزی شبیه به /var/run/dirsrv/slapd-.pid است که در آن معمولاً نام میزبان (hostname) است. .TP .B \-t|\-\-servertimeout=N از آنجا که ممکن است هنگام اجرای اسکریپت هنوز serverpidfile وجود نداشته باشد، اسکریپت به‌طور پیش‌فرض ۶۰ ثانیه منتظر ایجاد فایل pid و راه‌اندازی سرور می‌ماند. از این گزینه برای مشخص کردن زمان انقضای (timeout) متفاوت استفاده کنید. گزینه \-t فقط هنگام استفاده از \-s یا \-\-serverpid اعمال می‌شود؛ در غیر این صورت هیچ کاری انجام نمی‌دهد. .TP .B \-\-serverpid=P اگر سروری که می‌خواهید دنبال کنید از قبل در حال اجرا است، می‌توانید آن را با استفاده از این آرگومان مشخص کنید. اگر pid مشخص‌شده معتبر نباشد، اسکریپت لغو خواهد شد. .TP .B \-p|\-\-plugin=/full/path/to/pluginname.py مشخص کردن یک افزونه برای استفاده. این افزونه باید یک فایل python باشد و نام آن به \fI.py\fR ختم شود. باید تابعی با نام \fIplugin\fR در آن تعریف شده باشد و می‌تواند توابعی به نام‌های \fIpre\fR و \fIpost\fR را نیز تعریف کند. .TP .B pluginname.arg1=value ... pluginname.argN=value می‌توانید آرگومان‌های افزونه‌ها را در خط فرمان مشخص کنید. اگر افزونه‌ای به‌صورت \-\-plugin=/full/path/to/pluginname.py مشخص شده باشد، آرگومان‌های آن افزونه به‌صورت \fIpluginname.argname=value\fR تعیین می‌شوند. اسکریپت این آرگومان‌ها را تجزیه کرده و آن‌ها را به‌صورت یک dict پایتون به تابع \fIpre\fR افزونه ارسال می‌کند. اگر بیش از یک آرگومان با نام \fIpluginname.argname\fR وجود داشته باشد، مقادیر به‌صورت یک list پایتون ارسال می‌شوند. .SH "نکات سرور دایرکتوری (DIRECTORY SERVER NOTES)" معمولاً سرور دایرکتوری باید طوری پیکربندی شود که به‌جای فایل گزارش معمولی، در یک named pipe گزارش‌گیری کند. برای نمونه، از LDIF زیر استفاده کنید تا به سرور بگویید برای گزارش دسترسی از فایل \fIaccess.pipe\fR استفاده کند: dn: cn=config changetype: modify replace: nsslapd-accesslog-maxlogsperdir nsslapd-accesslog-maxlogsperdir: 1 - replace: nsslapd-accesslog-logexpirationtime nsslapd-accesslog-logexpirationtime: \-1 - replace: nsslapd-accesslog-logrotationtime nsslapd-accesslog-logrotationtime: \-1 - replace: nsslapd-accesslog nsslapd-accesslog: /var/log/dirsrv/slapd-localhost/access.pipe - replace: nsslapd-accesslog-logbuffering nsslapd-accesslog-logbuffering: off نکته: پیش از انجام این کار، باید پیکربندی فعلی خود را ذخیره کنید تا بتوانید بعداً آن را بازیابی نمایید. ldapsearch ... \-s base \-b "cn=config" nsslapd-accesslog-maxlogsperdir nsslapd-accesslog-logexpirationtime \ nsslapd-accesslog-logrotationtime nsslapd-accesslog > savedaccesslog.ldif گزارش‌های خطا (error log) و حسابرسی (audit log) ویژگی‌های پیکربندی با نام مشابه دارند؛ برای نمونه nsslapd-errorlog و nsslapd-auditlog. توجه داشته باشید که audit log به‌طور پیش‌فرض غیرفعال است \- برای فعال‌سازی آن از nsslapd-auditlog-logging-enabled: on استفاده کنید. .br .SH "نویسندگان (AUTHORS)" ds-logpipe.py توسط 389 Project نوشته شده است. .SH "گزارش باگ‌ها (BUGS)" گزارش باگ‌ها به https://github.com/389ds/389-ds-base/issues/new .SH "کپی‌رایت و تکثیر (COPYRIGHT)" Copyright \(co 2018 Red Hat, Inc. .br این یک نرم‌افزار آزاد است. شما می‌توانید نسخه‌های آن را تحت شرایط مجوز Directory Server موجود در فایل LICENSE این بسته نرم‌افزاری بازتوزیع کنید. این مجوز اساساً همان GNU General Public License نسخه ۲ به‌همراه یک استثنا برای توزیع افزونه‌ها (plug-in) است.