POSTMULTI(1) General Commands Manual POSTMULTI(1)

postmulti - مدیر چندنمونه‌ای Postfix

فعال‌سازی مدیریت چندنمونه‌ای:

postmulti -e init [-v]

حالت پیمایشگر:

postmulti -l [-ajRv] [-g group] [-i name]

postmulti -p [-av] [-g group] [-i name] postfix-command...

postmulti -x [-aRv] [-g group] [-i name] unix-command...

مدیریت چرخه حیات:

postmulti -e create [-av] [-g group] [-i name] [-G group] [-I name] [param=value ...]

postmulti -e import [-av] [-g group] [-i name] [-G group] [-I name] [config_directory=/path]

postmulti -e destroy [-v] -i name

postmulti -e deport [-v] -i name

postmulti -e enable [-v] -i name

postmulti -e disable [-v] -i name

postmulti -e assign [-v] -i name [-I name] [-G group]


دستور postmulti(1) به مدیر Postfix امکان می‌دهد چندین نمونهٔ Postfix را روی یک میزبان واحد مدیریت کند.

دستور postmulti(1) دو حالت عملیاتی بنیادین را پیاده‌سازی می‌کند. در حالت پیمایشگر (iterator)، دستور یکسانی را برای چندین نمونهٔ Postfix اجرا می‌کند. در حالت مدیریت چرخه حیات (life-cycle management)، یک نمونه را اضافه یا حذف کرده، یا وضعیت چندنمونه‌ایِ یک نمونه را تغییر می‌دهد.

هر حالت عملیاتی، ساختار دستور مخصوص به خود را دارد. به همین دلیل، هر حالت در بخش‌های جداگانه‌ای در زیر شرح داده شده است.

یک پیکربندی چندنمونه‌ای شامل یک نمونهٔ اصلی Postfix و یک یا چند نمونهٔ ثانویه است که مسیر دایرکتوری پیکربندی آن‌ها در فایل main.cf نمونهٔ اصلی ثبت می‌شود. نمونه‌های Postfix فایل‌های برنامه و مستندات را به اشتراک می‌گذارند، اما دایرکتوری‌های پیکربندی، صف و دادهٔ اختصاصی خود را دارند.

در حال حاضر، تنها نمونهٔ پیش‌فرض Postfix می‌تواند به عنوان نمونهٔ اصلی در یک پیکربندی چندنمونه‌ای به کار رود. دستور postmulti(1) در حال حاضر از گزینهٔ -c برای انتخاب یک نمونهٔ اصلیِ جایگزین پشتیبانی نمی‌کند، و چنانچه متغیر محیطی MAIL_CONFIG بر روی دایرکتوری پیکربندی غیرپیش‌فرض تنظیم شده باشد، با یک خطای مرگبار خارج می‌شود.

برای بررسی دقیق‌تر مدیریت چندنمونه‌ای با postmulti(1)، راهنمای MULTI_INSTANCE_README را ببینید..SH "حالت تکرارگر (ITERATOR MODE)"

در حالت تکرارگر، postmulti عملیات یکسانی را به نوبت روی تمام نمونه‌های Postfix انجام می‌دهد.

اگر پشتیبانی از چندنمونه‌ای فعال نشده باشد، دستور درخواستی تنها برای نمونهٔ اصلی اجرا می‌شود.

حالت تکرارگر گزینه‌های دستوری زیر را پیاده‌سازی می‌کند:

انجام عملیات روی همهٔ نمونه‌ها. این حالت پیش‌فرض است.
انجام عملیات تنها برای اعضای group نام‌برده.
انجام عملیات تنها برای نمونه با name مشخص‌شده. می‌توانید نام نمونه یا مسیر مطلق دایرکتوری پیکربندی نمونه را مشخص کنید. برای انتخاب نمونهٔ اصلی Postfix مقدار «-» را تعیین کنید.
معکوس کردن ترتیب تکرار. این کار ممکن است هنگام به‌روزرسانی سامانه‌های چندنمونه‌ای مناسب باشد؛ جایی که نمونه‌های مقصد («sink») پیش از نمونه‌های مبدأ («source») راه‌اندازی می‌شوند.

این گزینه نمی‌تواند همراه با -p استفاده شود.

تولید خروجی JSON. بخش JSON OBJECT FORMAT را در ادامه ببینید.

این قابلیت در نسخهٔ 3.11 و بالاتر Postfix در دسترس است.

فهرست کردن نمونه‌های Postfix همراه با نام نمونه، نام گروه نمونه، وضعیت فعال/غیرفعال بودن و دایرکتوری پیکربندی آن‌ها.

فراخوانی postfix(1) برای اجرای postfix-command. این گزینه رابط postfix-wrapper(5) را پیاده‌سازی می‌کند.
  • در دستورهای شبیه به «start»، دستور «postfix check» برای نمونه‌هایی که فعال نیستند اجرا می‌شود. فهرست کامل دستورها با پارامتر postmulti_start_commands مشخص می‌شود.
  • در دستورهای شبیه به «stop»، ترتیب تکرار معکوس شده و از نمونه‌های غیرفعال صرف‌نظر می‌شود. فهرست کامل دستورها با پارامتر postmulti_stop_commands مشخص می‌شود.
  • در دستور «reload» و سایر دستورهایی که به یک نمونهٔ در حال اجرا نیاز دارند، از نمونه‌های غیرفعال صرف‌نظر می‌شود. فهرست کامل دستورها با پارامتر postmulti_control_commands مشخص می‌شود.
  • در دستور «status» و سایر دستورهایی که نیازی به نمونهٔ در حال اجرا ندارند، دستور برای همهٔ نمونه‌ها اجرا می‌شود.
گزینهٔ -p همچنین می‌تواند به‌صورت تعاملی برای شروع/توقف/غیره در یک نمونه یا گروه نمونهٔ مشخص استفاده شود. برای نمونه، جهت شروع تنها نمونه‌های حاضر در گروه «msa»، دستور postmulti(1) را به‌صورت زیر اجرا کنید:
# postmulti -g msa -p start

اجرای unix-command مشخص‌شده برای همهٔ نمونه‌های Postfix. این دستور با متغیرهای محیطی مناسب برای MAIL_CONFIG،‏ command_directory،‏ daemon_directory، config_directory،‏ queue_directory،‏ data_directory، multi_instance_name،‏ multi_instance_group و multi_instance_enable اجرا می‌شود..SH "سایر گزینه‌ها"
فعال‌سازی ثبت گزارش مشروح (verbose) برای مقاصد اشکال‌زدایی. استفاده مکرر از گزینه -v میزان جزئیات گزارش‌های نرم‌افزار را افزایش می‌دهد.

با گزینه -e می‌توان از postmulti(1) برای افزودن یا حذف یک نمونه Postfix و مدیریت وضعیت چندنمونه‌ای یک نمونه موجود استفاده کرد.

گزینه‌های زیر پیاده‌سازی شده‌اند:

هنگام ایجاد یا وارد کردن یک نمونه، نمونه جدید را در ابتدای فهرست نمونه‌های ثانویه قرار می‌دهد.
هنگام ایجاد یا وارد کردن یک نمونه، نمونه جدید را قبل از نخستین نمونه ثانویه‌ای که عضو گروه مشخص‌شده است قرار می‌دهد.
هنگام ایجاد یا وارد کردن یک نمونه، نمونه جدید را پیش از نمونه ثانویه منطبق قرار می‌دهد.

در سایر عملیات‌های چرخه حیات، عملیات را بر روی نمونه موجودِ نام‌برده اعمال می‌کند. برای انتخاب نمونه اصلی Postfix، مقدار «-» را مشخص کنید.

تخصیص name مشخص‌شده به یک نمونه موجود، نمونه تازه ایجادشده یا یک نمونه واردشده. نام‌های نمونه به جز «-» (که نمونه را «بی‌نام» می‌کند) باید با «postfix-» آغاز شوند. این محدودیت احتمال تداخل نام با فایل‌های سیستم را کاهش می‌دهد.
تخصیص نام group مشخص‌شده به یک نمونه موجود یا به یک نمونه تازه ایجادشده یا واردشده.

«ویرایش» نمونه‌های تحت مدیریت. کنش‌های زیر پشتیبانی می‌شوند:
این دستور پیش از آنکه بتوان از postmulti(1) برای مدیریت نمونه‌های Postfix استفاده کرد الزامی است. دستور «postmulti -e init» فایل main.cf نمونه اصلی را با تنظیم موارد زیر به‌روزرسانی می‌کند:
multi_instance_wrapper =
        ${command_directory}/postmulti -p --
multi_instance_enable = yes
در صورت تمایل، می‌توانید این مقادیر را از روش‌های دیگری تنظیم کنید.
یک نمونه جدید Postfix ایجاد کرده و آن را به پارامتر multi_instance_directories در نمونه اصلی اضافه می‌کند. استفاده از گزینه «-I name» توصیه می‌شود تا نام کوتاهی به نمونه داده شود که برای ساخت مقادیر پیش‌فرض دایرکتوری‌های اختصاصی نمونه جدید به‌کار می‌رود. گزینه «-G group» ممکن است برای انتساب نمونه به یک گروه مشخص شود؛ در غیر این صورت، نمونه جدید عضو هیچ گروهی نخواهد بود.

فایل main.cf نمونه جدید همان main.cf خام (پیش‌فرض) است، همراه با پارامترهایی که مکان فایل‌های اشتراکی در آن‌ها از نمونه اصلی شبیه‌سازی (clone) شده‌اند. برای نمونه‌های «بی‌نام»، باید مقدار «syslog_name» را به‌صورت دستی طوری تنظیم کنید تا یک «logtag» یکتا که با «postfix-» آغاز می‌شود تولید کند و نمونه را در گزارش‌های پستی به‌طور منحصربه‌فرد شناسایی نماید. اختصاص دادن یک نام کوتاه به نمونه با گزینه «-I name» روش ساده‌تری است.

آرگومان‌های اختیاری «name=value» دایرکتوری‌های config_directory، queue_directory و data_directory نمونه را مشخص می‌کنند. به عنوان مثال:

# postmulti -I postfix-mumble \
        -G mygroup -e create \
        config_directory=/my/config/dir \
        queue_directory=/my/queue/dir \
        data_directory=/my/data/dir
اگر هر یک از این مسیرها ارائه نشود، برنامه تلاش می‌کند تا مسیر(های) مفقود را با در نظر گرفتن مسیر متناظر در نمونه اصلی و جایگزین کردن آخرین جزء مسیر با مقدار گزینه -I تولید کند.

اگر دایرکتوری پیکربندی نمونه از قبل موجود باشد و شامل هر دو فایل main.cf و master.cf باشد، create نمونه را همان‌طور که هست «وارد» (import) می‌کند. برای نمونه‌های موجود، create و import یکسان هستند.

وارد کردن یک نمونه موجود به فهرست نمونه‌های مدیریت‌شده توسط مدیر چندنمونه‌ای postmulti(1). این کار نمونه را به فهرست multi_instance_directories نمونه اصلی اضافه می‌کند. در صورت ارائه گزینه «-I name»، این گزینه نام جدیدی را برای نمونه مشخص می‌کند و برای تعیین مکان پیش‌فرض دایرکتوری پیکربندی نمونه (مانند create در بالا) استفاده می‌شود. گزینه «-G group» ممکن است برای انتساب نمونه به یک گروه به‌کار رود. برای لغو مسیر پیش‌فرضی که بر پایه «-I name» ساخته می‌شود، آرگومان «config_directory=/path» را اضافه کنید.
نابود کردن یک نمونه ثانویه Postfix. برای اینکه نمونه‌ای واجد شرایط نابودی باشد، باید غیرفعال و متوقف شده و صف آن عاری از هرگونه پیام باشد. تلاش برای نابود کردن نمونه اصلی Postfix منجر به بروز خطای مهلک (fatal error) شده و نمونه نابود نخواهد شد.

نمونه از پارامتر alternate_config_directories در فایل main.cf نمونه اصلی حذف شده و دایرکتوری‌های داده، صف و پیکربندی آن از فایل‌ها و دایرکتوری‌های ایجادشده توسط سیستم Postfix پاک‌سازی می‌شوند. فایل‌های main.cf و master.cf حتی در صورت تغییر پس از ایجاد اولیه، از دایرکتوری پیکربندی حذف خواهند شد. در پایان، نمونه از فهرست نمونه‌های تحت مدیریت «اخراج» (deport) می‌شود.

اگر فایل‌های دیگری در دایرکتوری‌های اختصاصی نمونه وجود داشته باشند، ممکن است دایرکتوری‌ها به‌طور کامل حذف نشوند؛ در این صورت هشداری برای آگاه‌سازی مدیر سیستم در گزارش‌ها ثبت می‌شود. انتظار می‌رود نمونه‌ای که با دایرکتوری‌های «تازه» از طریق کنش create ساخته شده است، توسط کنش destroy به‌طور کامل حذف شود (به شرطی که ابتدا غیرفعال شده باشد). اگر دایرکتوری‌های پیکربندی و صف نمونه با فایل‌های اضافی (جداول دسترسی و بازنویسی، محتوای محیط ایزوله chroot و غیره) پر شده باشند، دایرکتوری‌های نمونه به‌طور کامل حذف نخواهند شد.

کنش destroy عملیات بالقوه خطرناک حذف فایل را فعال می‌کند. اطمینان حاصل کنید که دایرکتوری‌های داده، صف و پیکربندی نمونه به‌درستی تعیین شده‌اند و شامل هیچ فایل ارزشمندی نیستند.

اخراج یک نمونه ثانویه از فهرست نمونه‌های تحت مدیریت. این دستور دایرکتوری پیکربندی نمونه را از فهرست multi_instance_directories نمونه اصلی حذف می‌کند، اما هیچ فایل یا دایرکتوری‌ای را پاک نمی‌کند.
تخصیص یک نام نمونه جدید یا نام گروه جدید به نمونه انتخاب‌شده. از «-G -» برای مشخص کردن «بدون گروه» و از «-I -» برای مشخص کردن «بدون نام» استفاده کنید. اگر تصمیم گرفتید یک نمونه را «بی‌نام» کنید، مقدار syslog_name مناسبی را در فایل main.cf متناظر تنظیم نمایید.
علامت‌گذاری نمونه انتخاب‌شده به عنوان فعال. این کار صرفاً مقدار پارامتر multi_instance_enable را در فایل main.cf نمونه به «yes» تغییر می‌دهد.
علامت‌گذاری نمونه انتخاب‌شده به عنوان غیرفعال. این بدان معناست که نمونه با دستوراتی مانند «postfix start»، «postmulti -p start» و نظایر آن راه‌اندازی و اجرا نخواهد شد. با این حال نمونه همچنان می‌تواند با «postfix -c config-directory start» راه‌اندازی شود..SH "سایر گزینه‌ها (OTHER OPTIONS)"
فعال‌سازی گزارش‌دهی با جزئیات بیشتر (verbose) برای اهداف عیب‌یابی. تکرار گزینه -v نرم‌افزار را بیش از پیش پرحرف می‌کند.

خروجی شامل دنباله‌ای از خطوط است. هر خط شامل یک شیء JSON است که تنظیمات موجود در فایل main.cf نمونه متناظر را نشان می‌دهد.

اعضای شیء دارای مقادیر رشته‌ای هستند، مگر آنکه خلاف آن ذکر شده باشد. برنامه‌ها باید اعضایی را که در اینجا فهرست نشده‌اند نادیده بگیرند، زیرا ممکن است در طول زمان اعضای جدیدی اضافه شوند.

مقدار پارامتر multi_instance_name متناظر، یا «-» در صورتی که هیچ نامی مشخص نشده باشد.
مقدار پارامتر multi_instance_group متناظر، یا «-» در صورتی که هیچ گروهی مشخص نشده باشد.
بسته به اینکه مقدار پارامتر multi_instance_enable متناظر برابر با «yes» یا «no» باشد، مقدار آن «y» یا «n» خواهد بود.

نکته: هنگامی که پشتیبانی از چندنمونه‌ای (multi-instance) فعال نباشد، این مقدار برای نمونه اصلی «y» گزارش می‌شود.

مقدار پارامتر config_directory متناظر.

دستور postmulti(1) متغیرهای محیطی زیر را پیش از اجرای command درخواستی برای یک نمونه مشخص، صادر (export) می‌کند:

این متغیر زمانی که گزینه خط فرمان -v مشخص شده باشد، تنظیم می‌شود.
مکان دایرکتوری پیکربندی نمونه مورد نظر.

مکان پیش‌فرض فایل‌های پیکربندی main.cf و master.cf در Postfix.
دایرکتوری حاوی برنامه‌های کمکی و دیمن‌های (daemon) مربوط به Postfix.
فهرست متغیرهای محیطی که یک فرآیند ممتاز Postfix از فرآیند والد غیر-Postfix خود وارد (import) می‌کند، یا بازنویسی‌های متغیرهای محیطی به صورت name=value.
فهرستی اختیاری از دایرکتوری‌های پیکربندی غیرپیش‌فرض Postfix؛ این دایرکتوری‌ها متعلق به نمونه‌های اضافی Postfix هستند که فایل‌های اجرایی و مستندات Postfix را با نمونه پیش‌فرض به اشتراک می‌گذارند و همراه با نمونه پیش‌فرض Postfix راه‌اندازی، متوقف و غیره می‌شوند.
نام اختیاری گروه نمونه برای این نمونه Postfix.
نام اختیاری نمونه برای این نمونه Postfix.
اجازه دادن به این نمونه Postfix برای شروع، توقف و غیره توسط یک مدیر چندنمونه‌ای (multi-instance manager).
دستورات postfix(1) که مدیر نمونه postmulti(1) آن‌ها را به عنوان دستورات «شروع» (start) در نظر می‌گیرد.
دستورات postfix(1) که مدیر نمونه postmulti(1) آن‌ها را به عنوان دستورات «توقف» (stop) در نظر می‌گیرد.
دستورات postfix(1) که مدیر نمونه postmulti(1) آن‌ها را به عنوان دستورات «کنترلی» (control) در نظر می‌گیرد و بر روی نمونه‌های در حال اجرا عمل می‌کنند.
تسهیلات سامانه (facility) مربوط به گزارش‌دهی Postfix در syslog.
پیشوندی که در رکوردهای syslog به ابتدای نام فرآیند اضافه می‌شود، به طوری که برای مثال «smtpd» به «prefix/smtpd» تبدیل می‌شود.

موجود در Postfix 3.0 و نسخه‌های بعدی:

مکان فایل‌های غیرقابل‌اجرایی که میان چندین نمونه Postfix به اشتراک گذاشته می‌شوند، مانند postfix-files، dynamicmaps.cf و فایل‌های الگوی چندنمونه‌ای main.cf.proto و master.cf.proto.
مکان کتابخانه‌های پیوندیافته پویا (dynamically-linked) در Postfix ‏(libpostfix-*.so)، و مکان پیش‌فرض افزونه‌های پایگاه‌داده Postfix ‏(postfix-*.so) که دارای مسیر نسبی در فایل dynamicmaps.cf هستند..SH "فایل‌ها (FILES)"
$meta_directory/main.cf.proto، فایل پیکربندی پیش‌فرض
$meta_directory/master.cf.proto، فایل پیکربندی پیش‌فرض
$daemon_directory/postmulti-script، برنامه کمکی چرخه حیات

postfix(1)، برنامه کنترل Postfix
postfix-wrapper(5)، واسط برنامه‌نویسی (API) چندنمونه‌ای Postfix

از "postconf readme_directory" یا "postconf html_directory" برای یافتن محل این اطلاعات استفاده کنید.

MULTI_INSTANCE_README، مدیریت چندنمونه‌ای Postfix



دستور postmulti(1) با نسخه 2.6 نرم‌افزار Postfix معرفی شد.

مجوز Secure Mailer باید همراه با این نرم‌افزار توزیع شود.

Victor Duchovni
Morgan Stanley
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
Wietse Venema
Google, Inc.
111 8th Avenue
New York, NY 10011, USA