.\" -*- nroff -*- .\" -*- nroff -*- .\" ovs.tmac .\" .\" کتابخانه ماکروهای troff برای Open vSwitch . . .\" خط ادامه برای .IP. .de IQ . br . ns . IP "\\$1" .. . .\" معرفی یک زیر-زیربخش .de ST . PP . RS -0.15in . I "\\$1" . RE .. . .\" محتوای بین خطوط زیر برگرفته از an-ext.tmac در groff .\" نسخه 1.21 است، همراه با برخی تغییرات. .\" ---------------------------------------------------------------------- .\" an-ext.tmac .\" .\" نوشته‌شده توسط Eric S. Raymond .\" Werner Lemberg .\" .\" نگارش 2007-Feb-02 .\" .\" کپی‌رایت (C) 2007, 2009, 2011 Free Software Foundation, Inc. .\" شما می‌توانید آزادانه از این فایل استفاده کرده، آن را تغییر دهید یا توزیع کنید. .\" .\" .\" کد زیر ماکروهای الحاقی را برای بسته ماکروی `man' فراهم می‌کند. .\" دقت شده است تا کد سازگار و قابل‌حمل باشد؛ افزونه‌های groff به درستی .\" پنهان شده‌اند تا تمام پیاده‌سازی‌های troff بتوانند بدون تغییر .\" از آن استفاده کنند. .\" .\" در groff، این فایل توسط خود بسته ماکروی `man' فراخوانی می‌شود. .\" نویسندگان صفحات راهنما که نگران سازگاری هستند، ممکن است ماکروهای .\" استفاده‌شده را مستقیماً به ابتدای صفحه(های) راهنما اضافه کنند. . . .\" قرارداد: ماکروها و ثبات‌های کمکی با `m' و به دنبال آن .\" یک حرف بزرگ یا رقم آغاز می‌شوند. . . .\" اعلان شروع خلاصه دستور. تنظیم تورفتگی معلق. .de SY . ie !\\n(mS \{\ . nh . nr mS 1 . nr mA \\n(.j . ad l . nr mI \\n(.i . \} . el \{\ . br . ns . \} . . HP \w'\fB\\$1\fP\ 'u . B "\\$1" .. . . .\" پایان خلاصه دستور. بازیابی تراز. .de YS . in \\n(mIu . ad \\n(mA . hy \\n(HY . nr mS 0 .. . . .\" اعلان گزینه اختیاری. .de OP . ie \\n(.$-1 \ . RI "[\fB\\$1\fP" "\ \\$2" "]" . el \ . RB "[" "\\$1" "]" .. . . .\" شروع نشانی اینترنتی (URL). .de UR . ds m1 \\$1\" . nh . if \\n(mH \{\ . \" شروع diversion در یک محیط جدید. . do ev URL-div . do di URL-div . \} .. . . .\" پایان نشانی اینترنتی (URL). .de UE . ie \\n(mH \{\ . br . di . ev . . \" آیا یک یا چند خط ورودی برای متن پیوند وجود داشته است؟ . ie \\n(dn \{\ . do HTML-NS "" . \" بله، خط جدید انتهایی diversion را حذف کرده و آن را درج کن. . do chop URL-div . do URL-div \c . do HTML-NS . \} . el \ . do HTML-NS "\\*(m1" \&\\$*\" . \} . el \ \\*(la\\*(m1\\*(ra\\$*\" . . hy \\n(HY .. . . .\" شروع نشانی ایمیل. .de MT . ds m1 \\$1\" . nh . if \\n(mH \{\ . \" شروع diversion در یک محیط جدید. . do ev URL-div . do di URL-div . \} .. . . .\" پایان نشانی ایمیل. .de ME . ie \\n(mH \{\ . br . di . ev . . \" آیا یک یا چند خط ورودی برای متن پیوند وجود داشته است؟ . ie \\n(dn \{\ . do HTML-NS "" . \" بله، خط جدید انتهایی diversion را حذف کرده و آن را درج کن. . do chop URL-div . do URL-div \c . do HTML-NS . \} . el \ . do HTML-NS "\\*(m1" \&\\$*\" . \} . el \ \\*(la\\*(m1\\*(ra\\$*\" . . hy \\n(HY .. . . .\" خط ادامه برای سرآیند .TP. .de TQ . br . ns . TP \\$1\" بدون نقل‌قول دوتایی در اطراف آرگومان! .. . . .\" شروع مثال. .de EX . nr mE \\n(.f . nf . nh . ft CR .. . . .\" پایان مثال. .de EE . ft \\n(mE . fi . hy \\n(HY .. . .\" پایان فایل (EOF) .\" ---------------------------------------------------------------------- .TH ovsdb\-client 1 "4.0.0" "Open vSwitch" "راهنمای Open vSwitch" .\" نام این برنامه: .ds PN ovsdb\-client ..SH "نام (NAME)" ovsdb\-client \- واسط خط فرمان برای \fBovsdb-server\fR(1) . .SH "خلاصه دستور (SYNOPSIS)" .IP "دستورهای سطح سرور:" \fBovsdb\-client\fR [\fIoptions\fR] \fBlist\-dbs\fR [\fIserver\fR] .IP "دستورهای شمای پایگاه‌داده:" \fBovsdb\-client\fR [\fIoptions\fR] \fBget\-schema\fR [\fIserver\fR] [\fIdatabase\fR] .br \fBovsdb\-client\fR [\fIoptions\fR] \fBlist\-tables\fR [\fIserver\fR] [\fIdatabase\fR] .br \fBovsdb\-client\fR [\fIoptions\fR] \fBlist\-columns\fR [\fIserver\fR] [\fIdatabase\fR] [\fItable\fR] .IP "دستورهای مدیریت نسخه پایگاه‌داده:" \fBovsdb\-client \fR[\fIoptions\fR] \fBconvert \fR[\fIserver\fR] \fIschema\fR .br \fBovsdb\-client \fR[\fIoptions\fR] \fBneeds\-conversion \fR[\fIserver\fR] \fIschema\fR .br \fBovsdb\-client\fR [\fIoptions\fR] \fBget\-schema\-version\fR [\fIserver\fR] [\fIdatabase\fR] .IP "دستورهای مدیریت داده:" \fBovsdb\-client\fR [\fIoptions\fR] \fBtransact\fR [\fIserver\fR] \fItransaction\fR .br \fBovsdb\-client\fR [\fIoptions\fR] \fBquery\fR [\fIserver\fR] \fItransaction\fR .br \fBovsdb\-client\fR [\fIoptions\fR] \fBdump\fR [\fIserver\fR] [\fIdatabase\fR] [\fItable\fR [\fIcolumn\fR...]] .br \fBovsdb\-client\fR [\fIoptions\fR] \fBbackup\fR [\fIserver\fR] [\fIdatabase\fR] \fB> \fIsnapshot\fR .br \fBovsdb\-client\fR [\fIoptions\fR] [\fB\-\-force\fR] \fBrestore\fR [\fIserver\fR] [\fIdatabase\fR] \fB< \fIsnapshot\fR .br \fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\fR [\fIserver\fR] [\fIdatabase\fR] \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]... .br \fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\fR [\fIserver\fR] [\fIdatabase\fR] \fBALL\fR .br \fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\-cond\fR [\fIserver\fR] [\fIdatabase\fR] \fIconditions \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]... .br \fBovsdb\-client\fR [\fIoptions\fR] \fBmonitor\-cond\-since\fR [\fIserver\fR] [\fIdatabase\fR] [\fIlast-id\fR] \fIconditions \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]... .br \fBovsdb\-client \fR[\fIoptions\fR] \fBwait\fR \fR[\fIserver\fR] \fIdatabase\fR \fIstate\fR .IP "دستورهای آزمایشی:" \fBovsdb\-client\fR [\fIoptions\fR] \fBlock\fR [\fIserver\fR] \fIlock\fR .br \fBovsdb\-client\fR [\fIoptions\fR] \fBsteal\fR [\fIserver\fR] \fIlock\fR .br \fBovsdb\-client\fR [\fIoptions\fR] \fBunlock\fR [\fIserver\fR] \fIlock\fR .br .IP "سایر دستورها:" \fBovsdb\-client help\fR .IP "گزینه‌های خوشه:" [\fB\-\-no\-leader\-only\fR] .IP "گزینه‌های قالب‌بندی خروجی:" [\fB\-\-format=\fIformat\fR] [\fB\-\-data=\fIformat\fR] [\fB\-\-no-headings\fR] [\fB\-\-pretty\fR] [\fB\-\-bare\fR] [\fB\-\-timestamp\fR] .IP "گزینه‌های دیمن:" [\fB\-\-pidfile\fR[\fB=\fIpidfile\fR]] [\fB\-\-overwrite\-pidfile\fR] [\fB\-\-detach\fR] [\fB\-\-no\-chdir\fR] [\fB\-\-no\-self\-confinement\fR] .IP "گزینه‌های ثبت وقایع:" [\fB\-v\fR[\fImodule\fR[\fB:\fIdestination\fR[\fB:\fIlevel\fR]]]]\&... .br [\fB\-\-verbose[=\fImodule\fR[\fB:\fIdestination\fR[\fB:\fIlevel\fR]]]]\&... .br [\fB\-\-log\-file\fR[\fB=\fIfile\fR]] .IP "گزینه‌های زیرساخت کلید عمومی:" [\fB\-\-private\-key=\fIprivkey.pem\fR] .br [\fB\-\-certificate=\fIcert.pem\fR] .br [\fB\-\-ca\-cert=\fIcacert.pem\fR] .br [\fB\-\-ssl\-server\-name=\fIservername\fR] .br [\fB\-\-bootstrap\-ca\-cert=\fIcacert.pem\fR] .IP "گزینه‌های اتصال SSL/TLS:" [\fB\-\-ssl\-protocols=\fIprotocols\fR] .br [\fB\-\-ssl\-ciphers=\fIciphers\fR] .br [\fB\-\-ssl\-ciphersuites=\fIciphersuites\fR] .br .IP "گزینه‌های بازپخش:" [\fB\-\-record\fR[\fB=\fIdirectory\fR]] [\fB\-\-replay\fR[\fB=\fIdirectory\fR]] .IP "گزینه‌های عمومی:" [\fB\-h\fR | \fB\-\-help\fR] [\fB\-V\fR | \fB\-\-version\fR] ..SH "توضیحات (DESCRIPTION)" برنامهٔ \fBovsdb\-client\fR یک کلاینت خط فرمانی برای تعامل با یک فرآیند در حال اجرای \fBovsdb\-server\fR است. هر دستور به \fIserver\fR تعیین‌شدهٔ OVSDB متصل می‌شود، که می‌تواند یک روش اتصال فعال (active) یا غیرفعال (passive) در OVSDB باشد، همان‌طور که در \fBovsdb\fR(7) شرح داده شده است. سرور پیش‌فرض \fBunix:/run/openvswitch/db.sock\fR و \fIdatabase\fR پیش‌فرض \fBOpen_vSwitch\fR است. .PP \fBovsdb\-client\fR از نحو \fImethod1\fB,\fImethod2\fB,\fR...\fB,\fImethodN\fR که در \fBovsdb\fR(7) برای اتصال به یک کلاستر شرح داده شده است، پشتیبانی می‌کند. هنگام استفاده از این نحو، \fBovsdb\-client\fR اعضای کلاستر را به ترتیب تصادفی امتحان می‌کند تا زمانی که رهبر (leader) کلاستر را پیدا کند. گزینهٔ \fB\-\-no\-leader\-only\fR را برای پذیرش هر سروری که به کلاستر متصل است، مشخص کنید. .PP برای آشنایی با OVSDB و پیاده‌سازی آن در Open vSwitch، به \fBovsdb\fR(7) مراجعه کنید. .PP بخش‌های زیر دستورهایی را شرح می‌دهند که \fBovsdb\-client\fR پشتیبانی می‌کند. .SS "دستورهای سطح سرور (Server-Level Commands)" اکثر دستورهای \fBovsdb\-client\fR با یک پایگاه‌دادهٔ منفرد کار می‌کنند، اما این دستورها بر کل یک سرور پایگاه‌داده اعمال می‌شوند. . .IP "\fBlist\-dbs\fR [\fIserver\fR]" به \fIserver\fR متصل می‌شود، فهرست پایگاه‌های دادهٔ شناخته‌شده را دریافت کرده و آن‌ها را در هر خط یکی چاپ می‌کند. این نام‌های پایگاه‌داده مواردی هستند که سایر دستورها می‌توانند برای \fIdatabase\fR استفاده کنند. . .SS "دستورهای شمای پایگاه‌داده (Database Schema Commands)" .PP این دستورها شما (schema) را از یک پایگاه‌داده دریافت کرده و آن یا بخشی از آن را چاپ می‌کنند. . .IP "\fBget\-schema\fR [\fIserver\fR] [\fIdatabase\fR]" به \fIserver\fR متصل می‌شود، شمای مربوط به \fIdatabase\fR را دریافت کرده و آن را در قالب JSON چاپ می‌کند. . .IP "\fBlist\-tables\fR [\fIserver\fR] [\fIdatabase\fR]" به \fIserver\fR متصل می‌شود، شمای مربوط به \fIdatabase\fR را دریافت کرده و جدولی شامل نام هر جدول درون پایگاه‌داده را چاپ می‌کند. . .IP "\fBlist\-columns\fR [\fIserver\fR] [\fIdatabase\fR] \fItable\fR" به \fIserver\fR متصل می‌شود، شمای مربوط به \fIdatabase\fR را دریافت کرده و جدولی شامل نام و نوع هر ستون را چاپ می‌کند. اگر \fItable\fR مشخص شده باشد، تنها ستون‌های آن جدول فهرست می‌شوند؛ در غیر این صورت، جدول‌ها شامل ستون‌های تمام جدول‌ها خواهند بود. . .SS "دستورهای مدیریت نسخهٔ پایگاه‌داده (Database Version Management Commands)" .PP یک شمای OVSDB دارای یک شماره نسخهٔ شما است، و یک پایگاه‌دادهٔ OVSDB نسخهٔ خاصی از یک شمای OVSDB را در خود جای داده است. این شماره‌های نسخه به صورت \fIx\fB.\fIy\fB.\fIz\fR هستند، مانند \fB1.2.3\fR. پیاده‌سازی OVSDB طرح شماره‌گذاری نسخهٔ خاصی را تحمیل نمی‌کند، اما شماهایی که در پروژهٔ Open vSwitch مدیریت می‌شوند از رویکرد زیر استفاده می‌کنند. هرگاه شمای پایگاه‌داده به گونه‌ای تغییر کند که با نسخه‌های پیشین سازگار نباشد (مانند حذف یک ستون یا یک جدول)، \fIx\fR افزایش می‌یابد (و \fIy\fR و \fIz\fR به 0 بازنشانی می‌شوند). هنگامی که شمای پایگاه‌داده به روشی سازگار با نسخه‌های پیشین تغییر کند (مانند افزودن یک ستون جدید)، \fIy\fR افزایش می‌یابد (و \fIz\fR به 0 بازنشانی می‌شود). هنگامی که شمای پایگاه‌داده تغییر ظاهری داشته باشد (مانند تغییر تورفتگی نحو آن)، \fIz\fR افزایش می‌یابد. .PP برخی پایگاه‌های داده و شماهای OVSDB، به ویژه موارد بسیار قدیمی، شماره نسخه ندارند. .PP شماره‌های نسخهٔ شما و شماره‌های نسخهٔ Open vSwitch مستقل از یکدیگر هستند. .PP این دستورها با نسخه‌های مختلف شماها و پایگاه‌های دادهٔ OVSDB کار می‌کنند. . .IP "\fBconvert \fR[\fIserver\fR] \fIschema\fR" یک شمای OVSDB را در قالب JSON، طبق آنچه در مشخصات OVSDB تعریف شده، از \fIschema\fR می‌خواند، سپس به \fIserver\fR متصل شده و از سرور درخواست می‌کند پایگاه‌داده‌ای را که نام آن در \fIschema\fR مشخص شده است به شمایی که آن نیز در \fIschema\fR تعیین شده تبدیل کند. .IP عملیات تبدیل اتمیک، سازگار، مجزا و پایا (ACID) است. پس از تغییر شما، سرور به کلاینت‌هایی که از RPC مربوط به \fBset_db_change_aware\fR (معرفی‌شده در Open vSwitch 2.9) استفاده می‌کنند اطلاع داده و تراکنش‌ها و پایش‌های (monitors) معلق آن‌ها را لغو می‌کند. سرور سایر کلاینت‌ها را قطع می‌کند تا بتوانند هنگام اتصال مجدد، متوجه این تغییر شوند. .IP این دستور می‌تواند «ارتقاها» و «تنزل‌های» ساده‌ای را روی شمای یک پایگاه‌داده انجام دهد. داده‌های درون پایگاه‌داده باید هنگام تفسیر تحت \fIschema\fR معتبر باشند، تنها با یک استثنا: داده‌های مربوط به جدول‌ها و ستون‌هایی که در \fIschema\fR وجود ندارند نادیده گرفته می‌شوند. ستون‌هایی که در \fIschema\fR وجود دارند اما در پایگاه‌داده نیستند، به مقادیر پیش‌فرض خود تنظیم می‌شوند. تمام محدودیت‌های \fIschema\fR به طور کامل اعمال می‌شوند. .IP برخی استفاده‌ها از این دستور می‌تواند باعث از دست رفتن غیرقابل‌بازگشت داده‌ها شود. برای مثال، تبدیل یک پایگاه‌داده از شمایی که دارای یک ستون یا جدول مشخص است به شمایی که فاقد آن است، تمام داده‌های موجود در آن ستون یا جدول را حذف خواهد کرد. قبل از تبدیل پایگاه‌های دادهٔ حیاتی، از آن‌ها نسخهٔ پشتیبان تهیه کنید. .IP این دستور با پایگاه‌های دادهٔ خوشه‌ای (clustered) و مستقل (standalone) کار می‌کند. پایگاه‌های دادهٔ مستقل را می‌توان به‌صورت برون‌خط (offline) با دستور \fBconvert\fR از \fBovsdb\-tool\fR نیز تبدیل کرد. . .IP "\fBneeds\-conversion \fR[\fIserver\fR] \fIschema\fR" شما را از \fIschema\fR می‌خواند، سپس به \fIserver\fR متصل شده و شمای پایگاه‌داده‌ای را که نام آن در \fIschema\fR مشخص شده درخواست می‌کند. اگر هر دو شما یکسان باشند، \fBno\fR را در خروجی استاندارد (stdout) چاپ می‌کند؛ اگر متفاوت باشند، \fByes\fR را چاپ می‌کند. . .IP "\fBget\-schema\-version \fR[\fIserver\fR] [\fIdatabase\fR]" به \fIserver\fR متصل می‌شود، شمای مربوط به \fIdatabase\fR را دریافت کرده و شماره نسخهٔ آن را در خروجی استاندارد (stdout) چاپ می‌کند. اگر \fIdatabase\fR قبل از معرفی نسخه‌بندی شما ایجاد شده باشد، شماره نسخه‌ای نخواهد داشت و این دستور یک خط خالی چاپ خواهد کرد. . .IP "\fBget\-schema\-cksum\fR [\fIserver\fR] [\fIdatabase\fR]" به \fIserver\fR متصل می‌شود، شمای مربوط به \fIdatabase\fR را دریافت کرده و چکسام (checksum) آن را در خروجی استاندارد (stdout) چاپ می‌کند. اگر \fIdatabase\fR فاقد چکسام باشد، یک خط خالی چاپ می‌کند. ..SS "دستورهای مدیریت داده (Data Management Commands)" .PP این دستورها داده‌ها را در یک پایگاه داده می‌خوانند یا تغییر می‌دهند. . .IP "\fBtransact\fR [\fIserver\fR] \fItransaction\fR" به \fIserver\fR متصل می‌شود، \fItransaction\fR مشخص‌شده را که باید یک آرایهٔ JSON مناسب برای استفاده به عنوان \fBparams\fR در یک درخواست JSON-RPC \fBtransact\fR باشد به آن ارسال می‌کند، و پاسخ دریافتی را در stdout چاپ می‌کند. . .IP "\fBquery\fR [\fIserver\fR] \fItransaction\fR" این دستور مانند یک نسخهٔ فقط‌خواندنی از \fBtransact\fR عمل می‌کند. به \fIserver\fR متصل می‌شود، \fItransaction\fR مشخص‌شده را که باید یک آرایهٔ JSON مناسب برای استفاده به عنوان \fBparams\fR در یک درخواست JSON-RPC \fBtransact\fR باشد به آن ارسال می‌کند، و پاسخ دریافتی را در stdout چاپ می‌کند. برای اطمینان از اینکه تراکنش پایگاه داده را تغییر نمی‌دهد، این دستور یک عملیات \fBabort\fR را قبل از ارسال به پایگاه داده به مجموعه عملیات موجود در \fItransaction\fR می‌افزاید و سپس نتیجهٔ \fBabort\fR را از پاسخ (در صورت وجود) حذف می‌کند. . .IP "\fBdump\fR [\fIserver\fR] [\fIdatabase\fR] [\fItable\fR [\fIcolumn\fR...]]" به \fIserver\fR متصل می‌شود، تمام داده‌های موجود در \fIdatabase\fR را دریافت کرده و آن را به صورت مجموعه‌ای از جدول‌ها در stdout چاپ می‌کند. اگر \fItable\fR مشخص شده باشد، تنها همان جدول دریافت می‌شود. اگر حداقل یک \fIcolumn\fR مشخص شده باشد، تنها همان ستون‌ها دریافت می‌شوند. . .IP "\fBbackup\fR [\fIserver\fR] [\fIdatabase\fR] \fB> \fIsnapshot\fR" به \fIserver\fR متصل می‌شود، یک تصویر لحظه‌ای (snapshot) از طرح‌واره (schema) و داده‌های موجود در \fIdatabase\fR را دریافت کرده و آن را در قالب مورد استفاده برای پایگاه‌های دادهٔ standalone و active-backup در OVSDB در stdout چاپ می‌کند. این روشی مناسب برای پشتیبان‌گیری از هر پایگاه دادهٔ راه دور است. تصویر لحظه‌ای پایگاه داده که در خروجی تولید می‌شود، برای سرویس‌دهی مستقیم توسط \fBovsdb\-server\fR یا استفاده به عنوان ورودی برای \fBovsdb\-client restore\fR مناسب است. .IP روش دیگر برای پشتیبان‌گیری از یک پایگاه دادهٔ standalone یا active-backup، کپی کردن فایل پایگاه دادهٔ آن است، مثلاً با \fBcp\fR. این روش حتی در صورت در حال استفاده بودن پایگاه داده نیز امن است. .IP خروجی شامل ستون‌های زودگذر (ephemeral) نمی‌شود، چرا که این ستون‌ها طبق طراحی، پس از راه‌اندازی مجدد \fBovsdb\-server\fR باقی نمی‌مانند. . .IP "[\fB\-\-force\fR] \fBrestore\fR [\fIserver\fR] [\fIdatabase\fR] \fB< \fIsnapshot\fR" فایل \fIsnapshot\fR را می‌خواند که باید یک پایگاه دادهٔ standalone یا active-backup در OVSDB باشد (که احتمالاً اما نه لزوماً توسط \fBovsdb\-client backup\fR ایجاد شده است). سپس به \fIserver\fR متصل می‌شود، تأیید می‌کند که \fIdatabase\fR و \fIsnapshot\fR طرح‌وارهٔ یکسانی دارند، و سپس تمام داده‌های موجود در \fIdatabase\fR را پاک کرده و \fIsnapshot\fR را جایگزین آن می‌کند. این جایگزینی به صورت تجزیه‌ناپذیر (atomically) و در قالب یک تراکنش واحد انجام می‌شود. .IP شناسه‌های یکتا (UUID) برای سطرها در پایگاه دادهٔ بازیابی‌شده با موارد موجود در \fIsnapshot\fR متفاوت خواهد بود، زیرا پروتکل OVSDB به کلاینت‌ها اجازه نمی‌دهد UUID سطرها را مشخص کنند. روش دیگر برای بازیابی یک پایگاه دادهٔ standalone یا active-backup که UUID سطرها را نیز بازیابی می‌کند، متوقف کردن سرور یا سرورها، جایگزینی فایل پایگاه داده با snapshot، و سپس راه‌اندازی مجدد پایگاه داده است. در هر دو حالت، ستون‌های زودگذر بازیابی نمی‌شوند، چرا که طبق طراحی پس از راه‌اندازی‌های مجدد \fBovsdb\-server\fR باقی نمی‌مانند. .IP به‌طور معمول اگر طرح‌واره‌های \fBsnapshot\fR و پایگاه دادهٔ سرور متفاوت باشند، \fBrestore\fR با شکست مواجه شده و خارج می‌شود. در چنین حالتی، بهتر است پایگاه داده پیش از بازیابی به طرح‌وارهٔ جدید تبدیل شود، مثلاً با \fBovsdb\-client convert\fR. برای ادامه دادن صرف‌نظر از تفاوت‌های طرح‌واره از \fB\-\-force\fR استفاده کنید، اگرچه ممکن است بازیابی با خطا مواجه شود یا با نتایج غیرمنتظره‌ای با موفقیت به پایان برسد. . .IP "\fBmonitor\fR [\fIserver\fR] [\fIdatabase\fR] \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]..." .IQ "\fBmonitor\-cond\fR [\fIserver\fR] [\fIdatabase\fR] \fIconditions\fR \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]..." .IQ "\fBmonitor\-cond\-since\fR [\fIserver\fR] [\fIdatabase\fR] [\fIlast-id\fR] \fIconditions\fR \fItable\fR [\fIcolumn\fR[\fB,\fIcolumn\fR]...]..." به \fIserver\fR متصل می‌شود و محتویات سطرهایی را که با شرایط در \fItable\fR در \fIdatabase\fR مطابقت دارند، نظارت می‌کند. به‌طور پیش‌فرض، محتویات اولیهٔ \fItable\fR چاپ می‌شود و به دنبال آن هر تغییر به محض وقوع نمایش داده می‌شود. اگر شرایط خالی باشد، تمام سطرها نظارت خواهند شد. اگر حداقل یک \fIcolumn\fR مشخص شده باشد، تنها همان ستون‌ها نظارت می‌شوند. نام‌های \fIcolumn\fR زیر دارای معانی ویژه‌ای هستند: .RS .IP "\fB!initial\fR" محتویات اولیهٔ ستون‌های مشخص‌شده را چاپ نکن. .IP "\fB!insert\fR" سطرهای تازه درج‌شده را چاپ نکن. .IP "\fB!delete\fR" سطرهای حذف‌شده را چاپ نکن. .IP "\fB!modify\fR" تغییرات اعمال‌شده روی سطرهای موجود را چاپ نکن. .RE .IP می‌توان چندین گروه از [\fIcolumn\fR[\fB,\fIcolumn\fR]...] را به صورت آرگومان‌های جداگانه مشخص کرد، به عنوان مثال برای اعمال پارامترهای گزارش‌دهی متفاوت به هر گروه. چه چندین گروه و چه تنها یک گروه مشخص شده باشد، هر ستون معین فقط یک بار می‌تواند در خط فرمان ذکر شود. .IP مقدار \fBconditions\fR یک آرایهٔ JSON از است، طبق تعریف در بخش 5.1 از RFC 7047 با تغییر زیر: یک شرط می‌تواند یک آرایهٔ JSON سه عضوی به صورت شرح داده شده در RFC یا یک مقدار بولی (boolean) باشد. .IP اگر \fB\-\-detach\fR همراه با \fBmonitor\fR، \fBmonitor\-cond\fR یا \fBmonitor\-cond\-since\fR استفاده شود، \fBovsdb\-client\fR پس از اینکه محتویات اولیهٔ \fItable\fR را با موفقیت دریافت و چاپ کرد، جدا می‌شود (در پس‌زمینه قرار می‌گیرد). .IP دستور \fBmonitor\fR از متد "monitor" در RFC 7047 برای باز کردن یک نشست نظارت با سرور استفاده می‌کند. دستورهای \fBmonitor\-cond\fR و \fBmonitor\-cond\-since\fR از متدهای افزونهٔ RFC 7047 به نام‌های "monitor_cond" و "monitor_cond_since" استفاده می‌کنند. برای جزئیات بیشتر به \fBovsdb\-server\fR(1) مراجعه کنید. .IP "\fBmonitor\fI \fR[\fIserver\fR] \fR[\fIdatabase\fR] \fBALL\fR" به \fIserver\fR متصل می‌شود و محتویات تمام جدول‌ها در \fIdatabase\fR را نظارت می‌کند. مقادیر اولیه و همه نوع تغییرات را برای تمام ستون‌های پایگاه داده چاپ می‌کند. گزینهٔ \fB\-\-detach\fR باعث می‌شود \fBovsdb\-client\fR پس از دریافت و چاپ موفقیت‌آمیز محتویات اولیهٔ پایگاه داده جدا شود (در پس‌زمینه قرار گیرد). .IP دستور \fBmonitor\fR از متد "monitor" در RFC 7047 برای باز کردن یک نشست نظارت با سرور استفاده می‌کند. . .IP "\fBwait\fR \fR[\fIserver\fR] \fIdatabase state\fR" منتظر می‌ماند تا \fIdatabase\fR روی \fIserver\fR وارد یک \fIstate\fR دلخواه شود، که می‌تواند یکی از موارد زیر باشد: .RS .IP "\fBadded\fR" تا زمانی که پایگاه داده‌ای با نام داده‌شده به \fIserver\fR اضافه شود منتظر می‌ماند. .IP "\fBconnected\fR" تا زمانی که پایگاه داده‌ای با نام داده‌شده به \fIserver\fR اضافه شود منتظر می‌ماند. سپس، اگر \fIdatabase\fR خوشه‌ای (clustered) باشد، علاوه بر این منتظر می‌ماند تا به خوشهٔ خود ملحق و متصل شود. .IP "\fBremoved\fR" تا زمانی که \fIdatabase\fR از سرور پایگاه داده حذف شود منتظر می‌ماند. از این مورد می‌توان برای انتظار تا خروج کامل یک پایگاه داده از خوشهٔ خود نیز استفاده کرد، چرا که \fBovsdb\-server\fR پایگاه داده را در آن نقطه حذف می‌کند. .RE .IP مشخص کردن \fIdatabase\fR برای این دستور الزامی است، زیرا اغلب برای بررسی پایگاه‌های داده‌ای استفاده می‌شود که هنوز به سرور اضافه نشده‌اند، به طوری که رفتار معنایی معمول \fBovsdb\-client\fR برای عمل بر روی یک پایگاه دادهٔ پیش‌فرض کارایی ندارد. .IP این دستور روی یک سرور پایگاه دادهٔ مشخص عمل می‌کند نه روی یک خوشه، بنابراین \fIserver\fR باید نام یک سرور واحد باشد، نه فهرستی از سرورها که با کاما از هم جدا شده‌اند..SS "دستورهای آزمایش" این دستورها بیشتر برای سنجش درستی سرور OVSDB کاربرد دارند. . .IP "\fBlock\fR [\fIserver\fR] \fIlock\fR" .IQ "\fBsteal\fR [\fIserver\fR] \fIlock\fR" .IQ "\fBunlock\fR [\fIserver\fR] \fIlock\fR" به \fIserver\fR متصل شده و عملیات قفل‌گذاری مربوط به RFC 7047 را روی \fIlock\fR اجرا می‌کند. پاسخ json یا پیام‌های به‌روزرسانی بعدی را چاپ می‌کند. گزینهٔ \fB\-\-detach\fR باعث می‌شود \fBovsdb\-client\fR پس از دریافت و چاپ موفقیت‌آمیز پاسخ اولیه، به پس‌زمینه برود (جدا شود). .IP هنگام اجرا با گزینهٔ \fB\-\-detach\fR، دستورهای \fBlock\fR، \fBsteal\fR، \fBunlock\fR و \fBexit\fR را می‌توان با استفاده از \fBovs-appctl\fR صادر کرد. دستور \fBexit\fR باعث می‌شود \fBovsdb\-client\fR پیش از خروج، اتصال \fBovsdb\-server\fR خود را ببندد. دستورهای \fBlock\fR، \fBsteal\fR و \fBunlock\fR را می‌توان برای صدور عملیات قفل‌گذاریِ بیشتر روی همان اتصال \fBovsdb\-server\fR به کار برد. همهٔ دستورهای بالا یک تک‌آرگومان \fIlock\fR دریافت می‌کنند که لزومی ندارد همان \fIlock\fR باشد که \fBovsdb\-client\fR با آن آغاز به کار کرده است. . .SH "گزینه‌ها (OPTIONS)" .SS "گزینه‌های قالب‌بندی خروجی" بخش عمده‌ای از خروجیِ \fBovsdb\-client\fR به شکل جدول است. گزینه‌های زیر قالب‌بندی خروجی را کنترل می‌کنند: . .ds TD (پیش‌فرض) .IP "\fB\-f \fIformat\fR" .IQ "\fB\-\-format=\fIformat\fR" نوع قالب‌بندی جدول را تعیین می‌کند. انواع \fIformat\fR زیر در دسترس هستند: .RS .ie '\*(PN'ovsdb\-client' .IP "\fBtable\fR (پیش‌فرض)" .el .IP "\fBtable\fR" جدول‌های متنی دوبُعدی با ستون‌های هم‌تراز. .ie '\*(PN'ovsdb\-client' .IP "\fBlist\fR" .el .IP "\fBlist\fR (پیش‌فرض)" یک فهرست با یک ستون در هر خط، و ردیف‌هایی که با یک خط خالی از هم جدا شده‌اند. .IP "\fBhtml\fR" جدول‌های HTML. .IP "\fBcsv\fR" مقادیر جداشده با کاما، همان‌گونه که در RFC 4180 تعریف شده است. .IP "\fBjson\fR" قالب JSON همان‌گونه که در RFC 4627 تعریف شده است. خروجی دنباله‌ای از اشیاء JSON است که هر یک متناظر با یک جدول است. هر شیء JSON دارای عضوهای زیر با مقادیر ذکرشده است: .RS .IP "\fBcaption\fR" عنوان جدول. اگر جدول عنوانی نداشته باشد، این عضو حذف می‌شود. .IP "\fBheadings\fR" آرایه‌ای با یک عنصر به ازای هر ستون جدول. هر عنصر آرایه رشته‌ای است که سرستون مربوطه را مشخص می‌کند. .IP "\fBdata\fR" آرایه‌ای با یک عنصر به ازای هر سطر جدول. هر عنصر خود نیز آرایه‌ای با یک عنصر به ازای هر ستون جدول است. عناصر این آرایهٔ سطح دوم، سلول‌هایی هستند که جدول را تشکیل می‌دهند. سلول‌هایی که نمایانگر داده‌ها یا انواع داده‌های OVSDB هستند، در قالبی که در مشخصات OVSDB شرح داده شده بیان می‌شوند؛ دیگر سلول‌ها صرفاً به عنوان رشته‌های متنی ارائه می‌گردند. .RE .RE . .IP "\fB\-d \fIformat\fR" .IQ "\fB\-\-data=\fIformat\fR" قالب‌بندی سلول‌ها را درون جدول‌های خروجی تعیین می‌کند، مگر اینکه قالب جدول روی \fBjson\fR تنظیم شده باشد که در این صورت هنگام قالب‌بندی سلول‌ها، همواره قالب‌بندی \fBjson\fR به کار می‌رود. انواع \fIformat\fR زیر در دسترس هستند: .RS .IP "\fBstring\fR (پیش‌فرض)" قالب سادهٔ شرح‌داده‌شده در بخش \fBDatabase Values\fR .ie '\*(PN'ovs\-vsctl' زیر. .el از \fBovs\-vsctl\fR(8). .IP "\fBbare\fR" قالب ساده که نشانه‌گذاری‌های آن حذف شده است: علامت‌های \fB[]\fR و \fB{}\fR در اطراف مجموعه‌ها، نگاشت‌ها و ستون‌های خالی حذف می‌شوند، موارد درون مجموعه‌ها و نگاشت‌ها با فاصله از هم جدا می‌شوند، و رشته‌ها هرگز درون نقل‌قول قرار نمی‌گیرند. تجزیهٔ این قالب برای اسکریپت‌ها ممکن است آسان‌تر باشد. .IP "\fBjson\fR" قالب JSON مربوط به RFC 4627 همان‌گونه که در بالا شرح داده شد. .RE .IP . .IP "\fB\-\-no\-headings\fR" این گزینه سطر سرستون را که در حالت عادی در اولین سطر خروجی جدول ظاهر می‌شود، حذف می‌کند. . .IP "\fB\-\-pretty\fR" به‌طور پیش‌فرض، JSON در خروجی تا حد امکان فشرده چاپ می‌شود. این گزینه باعث می‌شود JSON در خروجی به شیوه‌ای خواناتر چاپ شود. اعضای اشیاء و عناصر آرایه‌ها، هر کدام در یک خط و با تورفتگی چاپ می‌شوند. .IP این گزینه بر JSON درون جدول‌ها تأثیری ندارد؛ این موارد همواره به‌صورت فشرده چاپ می‌شوند. .IP "\fB\-\-bare\fR" معادل با \fB\-\-format=list \-\-data=bare \-\-no\-headings\fR. .IP "\fB\-\-max\-column-width=\fIn\fR" تنها برای خروجی جدول، عرض هر ستون در خروجی را به \fIn\fR ستون محدود می‌کند. داده‌های طولانی‌تر سلول در صورت لزوم برای جا شدن کوتاه می‌شوند. ستون‌ها در صورت چاپ سطر سرستون، همواره به اندازهٔ کافی عریض خواهند بود تا نام ستون‌ها را نمایش دهند. . .IP "\fB\-\-timestamp\fR" برای دستورهای \fBmonitor\fR، \fBmonitor\-cond\fR و \fBmonitor\-cond\-since\fR، یک برچسب زمانی به هر به‌روزرسانی جدول می‌افزاید. بیشتر قالب‌های خروجی، برچسب زمانی را در خطی جداگانه درست بالای جدول درج می‌کنند. قالب خروجی JSON برچسب زمانی را درون عضوی از شیء سطح بالای JSON به نام \fBtime\fR قرار می‌دهد. . .IP "\fB\-t\fR" .IQ "\fB\-\-timeout=\fIsecs\fR" زمان اجرای \fBovsdb\-client\fR را به تقریباً \fIsecs\fR ثانیه محدود می‌کند. اگر مهلت زمانی به پایان برسد، \fBovsdb\-client\fR با سیگنال \fBSIGALRM\fR خارج خواهد شد. ..SS "گزینه‌های دیمن (Daemon Options)" گزینه‌های دیمن تنها برای دستورهای \fBmonitor\fR، \fBmonitor\-cond\fR و \fBmonitor\-cond\-since\fR اعمال می‌شوند. در صورت استفاده با هر دستور دیگری، هیچ اثری نخواهند داشت. .ds DD .PP گزینه‌های زیر در پلتفرم‌های مبتنی بر POSIX معتبر هستند. .TP \fB\-\-pidfile\fR[\fB=\fIpidfile\fR] باعث ایجاد فایلی (به‌طور پیش‌فرض، \fB\*(PN.pid\fR) می‌شود که نشان‌دهنده PID فرآیند در حال اجرا است. اگر آرگومان \fIpidfile\fR مشخص نشده باشد، یا اگر با \fB/\fR آغاز نشود، در مسیر \fB/run/openvswitch\fR ایجاد می‌شود. .IP اگر \fB\-\-pidfile\fR مشخص نشود، هیچ فایل pid ایجاد نمی‌شود. . .TP \fB\-\-overwrite\-pidfile\fR به‌طور پیش‌فرض، هنگامی که \fB\-\-pidfile\fR مشخص شده باشد و فایل pid مشخص‌شده از قبل وجود داشته و توسط یک فرآیند در حال اجرا قفل شده باشد، \fB\*(PN\fR از شروع به کار خودداری می‌کند. تعیین \fB\-\-overwrite\-pidfile\fR باعث می‌شود تا به‌جای آن، روی فایل pid بازنویسی شود. .IP هنگامی که \fB\-\-pidfile\fR مشخص نشده باشد، این گزینه هیچ اثری ندارد. . .IP \fB\-\-detach\fR فرآیند \fB\*(PN\fR را در پس‌زمینه اجرا می‌کند. فرآیند فورک می‌شود، و در فرآیند فرزند، یک نشست (session) جدید را آغاز می‌کند، توصیف‌کننده‌های فایل استاندارد را می‌بندد (که اثر جانبی آن غیرفعال شدن ثبت وقایع در کنسول است)، و دایرکتوری کاری جاری خود را به ریشه تغییر می‌دهد (مگر اینکه \fB\-\-no\-chdir\fR مشخص شده باشد). پس از اینکه فرآیند فرزند مقداردهی اولیه خود را به پایان رساند، فرآیند والد خارج می‌شود. \*(DD . .TP \fB\-\-monitor\fR فرآیند اضافه‌ای را برای پایش دیمن \fB\*(PN\fR ایجاد می‌کند. اگر دیمن به دلیل سیگنالی که نشان‌دهنده یک خطای برنامه‌نویسی است (\fBSIGABRT\fR، \fBSIGALRM\fR، \fBSIGBUS\fR، \fBSIGFPE\fR، \fBSIGILL\fR، \fBSIGPIPE\fR، \fBSIGSEGV\fR، \fBSIGXCPU\fR یا \fBSIGXFSZ\fR) خاتمه یابد، فرآیند ناظر یک نسخه جدید از آن را راه‌اندازی می‌کند. اگر دیمن به دلیل دیگری متوقف شود یا خارج گردد، فرآیند ناظر نیز خارج می‌شود. .IP این گزینه معمولاً همراه با \fB\-\-detach\fR استفاده می‌شود، اما بدون آن نیز کار می‌کند. . .TP \fB\-\-no\-chdir\fR به‌طور پیش‌فرض، هنگامی که \fB\-\-detach\fR مشخص شده باشد، \fB\*(PN\fR پس از جدا شدن (detach)، دایرکتوری کاری جاری خود را به دایرکتوری ریشه تغییر می‌دهد. در غیر این صورت، اجرای \fB\*(PN\fR از یک دایرکتوری نامناسب می‌تواند مانع از unmount کردن سیستم‌فایل حاوی آن دایرکتوری توسط مدیر سیستم شود. .IP مشخص کردن \fB\-\-no\-chdir\fR این رفتار را مهار کرده و از تغییر دایرکتوری کاری جاری توسط \fB\*(PN\fR جلوگیری می‌کند. این امر ممکن است برای جمع‌آوری فایل‌های core مفید باشد، زیرا نوشتن core dumpها در دایرکتوری کاری جاری یک رفتار معمول بوده و دایرکتوری ریشه مکان مناسبی برای این کار نیست. .IP این گزینه هنگامی که \fB\-\-detach\fR مشخص نشده باشد، هیچ اثری ندارد. . .TP \fB\-\-no\-self\-confinement\fR به‌طور پیش‌فرض، دیمن تلاش می‌کند خود را برای کار با فایل‌های درون دایرکتوری‌های شناخته‌شده‌ای که در زمان ساخت تعیین شده‌اند محدود (self-confine) کند. بهتر است به این رفتار پیش‌فرض پایبند باشید و از این پرچم استفاده نکنید، مگر اینکه سازوکار کنترل دسترسی (Access Control) دیگری برای محدودسازی دیمن در نظر گرفته شده باشد. توجه داشته باشید که بر خلاف سایر پیاده‌سازی‌های کنترل دسترسی که معمولاً از فضای هسته اعمال می‌شوند (مانند DAC یا MAC)، خود‌محدودسازی از سوی خود دیمن در فضای کاربر تحمیل می‌شود؛ بنابراین نباید به عنوان یک راهبرد محدودسازی کامل تلقی گردد، بلکه باید به عنوان یک لایه امنیتی مضاعف به آن نگریست. . .TP \fB\-\-user\fR باعث می‌شود \fB\*(PN\fR تحت عنوان کاربر متفاوتی که به صورت "user:group" مشخص شده است اجرا شود و در نتیجه بیشتر امتیازات ریشه (root) را رها کند. شکل‌های کوتاه "user" و ":group" نیز مجاز هستند، که به ترتیب به معنای فرض کردن کاربر یا گروه جاری است. تنها دیمن‌هایی که توسط کاربر ریشه راه‌اندازی شده‌اند این آرگومان را می‌پذیرند. .IP در لینوکس، پیش از رها کردن امتیازات ریشه، قابلیت‌های CAP_IPC_LOCK و CAP_NET_BIND_SERVICES به دیمن‌ها اعطا خواهد شد. دیمن‌هایی که با datapath تعامل دارند، مانند \fBovs\-vswitchd\fR، سه قابلیت اضافی یعنی CAP_NET_ADMIN، CAP_NET_BROADCAST و CAP_NET_RAW را دریافت خواهند کرد. تغییر قابلیت‌ها حتی در صورتی که کاربر جدید root باشد نیز اعمال خواهد شد..SS "گزینه‌های ثبت وقایع (Logging Options)" .IP "\fB\-v\fR[\fIspec\fR]" .IQ "\fB\-\-verbose=\fR[\fIspec\fR]" . سطوح ثبت وقایع را تعیین می‌کند. بدون هیچ \fIspec\fR، سطح گزارش را برای هر ماژول و مقصد روی \fBdbg\fR تنظیم می‌کند. در غیر این صورت، \fIspec\fR فهرستی از کلمات است که با فاصله، ویرگول یا دونقطه از هم جدا شده‌اند؛ حداکثر یک مورد از هر یک از دسته‌های زیر: . .RS .IP \(bu یک نام ماژول معتبر، همان‌طور که با دستور \fBvlog/list\fR در \fBovs\-appctl\fR(8) نمایش داده می‌شود، تغییر سطح گزارش را به ماژول مشخص‌شده محدود می‌کند. . .IP \(bu \fBsyslog\fR، \fBconsole\fR یا \fBfile\fR، برای محدود کردن تغییر سطح گزارش به ترتیب تنها به لاگ سیستم، به کنسول، یا به یک فایل. (اگر \fB\-\-detach\fR مشخص شده باشد، \fB\*(PN\fR توصیف‌کننده‌های فایل استاندارد خود را می‌بندد، بنابراین ثبت گزارش در کنسول هیچ اثری نخواهد داشت.) . .IP \(bu \fBoff\fR، \fBemer\fR، \fBerr\fR، \fBwarn\fR، \fBinfo\fR یا \fBdbg\fR، برای کنترل سطح گزارش. پیام‌های با سطح اهمیت تعیین‌شده یا بالاتر ثبت خواهند شد، و پیام‌های با اهمیت پایین‌تر فیلتر می‌شوند. \fBoff\fR تمام پیام‌ها را فیلتر می‌کند. برای تعریف هر یک از سطوح گزارش، به \fBovs\-appctl\fR(8) مراجعه کنید. .RE . .IP بزرگی یا کوچکی حروف در \fIspec\fR اهمیتی ندارد. .IP صرف‌نظر از سطوح گزارش تعیین‌شده برای \fBfile\fR، ثبت وقایع در فایل صورت نخواهد گرفت مگر اینکه \fB\-\-log\-file\fR نیز مشخص شده باشد (پایین را ببینید). .IP جهت سازگاری با نسخه‌های قدیمی‌تر OVS، واژه \fBany\fR به عنوان یک کلمه پذیرفته می‌شود اما هیچ اثری ندارد. . .IP "\fB\-v\fR" .IQ "\fB\-\-verbose\fR" حداکثر سطح پرگویی (verbosity) ثبت وقایع را تنظیم می‌کند که معادل \fB\-\-verbose=dbg\fR است. . .IP "\fB\-vPATTERN:\fIdestination\fB:\fIpattern\fR" .IQ "\fB\-\-verbose=PATTERN:\fIdestination\fB:\fIpattern\fR" الگوی گزارش را برای \fIdestination\fR روی \fIpattern\fR تنظیم می‌کند. برای توضیحات مربوط به ساختار نحو معتبر برای \fIpattern\fR، به \fBovs\-appctl\fR(8) مراجعه کنید. . .IP "\fB\-vFACILITY:\fIfacility\fR" .IQ "\fB\-\-verbose=FACILITY:\fIfacility\fR" تسهیلات (facility) استاندارد RFC5424 را برای پیام گزارش تنظیم می‌کند. \fIfacility\fR می‌تواند یکی از مقادیر \fBkern\fR، \fBuser\fR، \fBmail\fR، \fBdaemon\fR، \fBauth\fR، \fBsyslog\fR، \fBlpr\fR، \fBnews\fR، \fBuucp\fR، \fBclock\fR، \fBftp\fR، \fBntp\fR، \fBaudit\fR، \fBalert\fR، \fBclock2\fR، \fBlocal0\fR، \fBlocal1\fR، \fBlocal2\fR، \fBlocal3\fR، \fBlocal4\fR، \fBlocal5\fR، \fBlocal6\fR یا \fBlocal7\fR باشد. اگر این گزینه مشخص نشود، \fBdaemon\fR به عنوان پیش‌فرض برای syslog سیستم محلی استفاده می‌شود و \fBlocal0\fR هنگام ارسال پیام به مقصدی که از طریق گزینه \fB\-\-syslog\-target\fR ارائه شده است، به کار می‌رود. . .TP \fB\-\-log\-file\fR[\fB=\fIfile\fR] ثبت وقایع در یک فایل را فعال می‌کند. اگر \fIfile\fR مشخص شده باشد، دقیقاً به عنوان نام فایل گزارش استفاده می‌شود. نام پیش‌فرض فایل گزارش در صورت حذف \fIfile\fR برابر \fB/var/log/openvswitch/\*(PN.log\fR است. . .IP "\fB\-\-syslog\-target=\fIhost\fB:\fIport\fR" پیام‌های syslog را علاوه بر syslog سیستم، به درگاه UDP مشخص‌شده با \fIport\fR در \fIhost\fR ارسال می‌کند. مقدار \fIhost\fR باید یک نشانی IP عددی باشد، نه نام میزبان (hostname). . .IP "\fB\-\-syslog\-method=\fImethod\fR" تعیین می‌کند پیام‌های syslog از طریق چه روشی (\fImethod\fR) باید به دیمن syslog ارسال شوند. روش‌های زیر پشتیبانی می‌شوند: .RS .IP \(bu \fBlibc\fR، استفاده از تابع \fBsyslog()\fR در libc. نقطه ضعف این گزینه این است که libc پیش از ارسال واقعی پیام به دیمن syslog از طریق سوکت دامنه یونیکس \fB/dev/log\fR، یک پیشوند ثابت به هر پیام اضافه می‌کند. .IP \(bu \fBunix:\fIfile\fR\fR، استفاده مستقیم از سوکت دامنه یونیکس. با این گزینه می‌توان قالب دلخواهی برای پیام مشخص کرد. با این حال، \fBrsyslogd 8.9\fR و نسخه‌های قدیمی‌تر در هر حال از یک تابع تجزیه‌کننده هاردکدشده استفاده می‌کنند که استفاده از سوکت دامنه یونیکس را محدود می‌سازد. اگر می‌خواهید با نسخه‌های قدیمی‌تر \fBrsyslogd\fR از قالب پیام دلخواه استفاده کنید، در عوض از سوکت UDP به نشانی IP لوکال‌هاست استفاده نمایید. .IP \(bu \fBudp:\fIip\fR:\fIport\fR\fR، استفاده از سوکت UDP. با این روش، امکان استفاده از قالب پیام دلخواه با نسخه‌های قدیمی‌تر \fBrsyslogd\fR نیز فراهم است. هنگام ارسال پیام‌های syslog از طریق سوکت UDP باید احتیاط بیشتری لحاظ شود؛ برای مثال، دیمن syslog باید طوری پیکربندی شود که به درگاه UDP تعیین‌شده گوش فرا دهد، ممکن است قوانین تصادفی iptables در ترافیک محلی syslog تداخل ایجاد کنند، و برخی ملاحظات امنیتی وجود دارد که در مورد سوکت‌های UDP صدق می‌کند اما درباره سوکت‌های دامنه یونیکس اعمال نمی‌شود. .IP \(bu \fBnull\fR، تمام پیام‌های ثبت‌شده در syslog را نادیده می‌گیرد و دور می‌اندازد. .RE .IP مقدار پیش‌فرض از متغیر محیطی \fBOVS_SYSLOG_METHOD\fR گرفته می‌شود؛ اگر این متغیر تنظیم نشده باشد، پیش‌فرض \fBlibc\fR است..SS "گزینه‌های زیرساخت کلید عمومی (Public Key Infrastructure Options)" .IP "\fB\-p\fR \fIprivkey.pem\fR" .IQ "\fB\-\-private\-key=\fIprivkey.pem\fR" فایل PEM حاوی کلید خصوصی را مشخص می‌کند که به‌عنوان هویت \fB\*(PN\fR برای اتصالات خروجی SSL/TLS استفاده می‌شود. . .IP "\fB\-c\fR \fIcert.pem\fR" .IQ "\fB\-\-certificate=\fIcert.pem\fR" فایل PEM حاوی گواهی‌ای را مشخص می‌کند که قابل اعتماد بودن کلید خصوصی تعیین‌شده در \fB\-p\fR یا \fB\-\-private\-key\fR را تصدیق می‌نماید. این گواهی باید توسط مرجع صدور گواهی (CA) که طرف مقابل در اتصالات SSL/TLS برای اعتبارسنجی آن استفاده خواهد کرد، امضا شده باشد. . .IP "\fB\-C\fR \fIcacert.pem\fR" .IQ "\fB\-\-ca\-cert=\fIcacert.pem\fR" فایل PEM حاوی گواهی CA را مشخص می‌کند که \fB\*(PN\fR باید از آن برای اعتبارسنجی گواهی‌های ارائه‌شده از سوی همتاهای SSL/TLS استفاده کند. (بسته به معماری PKI مورد استفاده، این ممکن است همان گواهی‌ای باشد که همتاهای SSL/TLS برای اعتبارسنجی گواهی مشخص‌شده در \fB\-c\fR یا \fB\-\-certificate\fR به کار می‌برند، یا گواهی متفاوتی باشد.) . .IP "\fB\-C none\fR" .IQ "\fB\-\-ca\-cert=none\fR" اعتبارسنجی گواهی‌های ارائه‌شده توسط همتاهای SSL/TLS را غیرفعال می‌کند. این کار یک مخاطره امنیتی ایجاد می‌کند، چرا که بدین معناست که گواهی‌ها را نمی‌توان به‌عنوان گواهی‌های متعلق به میزبان‌های معتبر و شناخته‌شده تأیید کرد. . .IP "\fB\-\-ssl\-server\-name=\fIservername\fR" نام سرور مورد استفاده برای نشانگر نام سرور (TLS Server Name Indication یا SNI) را مشخص می‌کند. به‌طور پیش‌فرض، نام میزبان برگرفته از رشته اتصال برای SNI استفاده می‌شود. این گزینه امکان بازنویسی نام میزبان SNI را فراهم می‌کند؛ که هنگام اتصال از طریق پروکسی‌ها یا مش‌های سرویس (service meshes) که در آن‌ها نقطه پایانی اتصال با نام سرور مورد نظر متفاوت است، کاربردی است. .IP "\fB\-\-bootstrap\-ca\-cert=\fIcacert.pem\fR" هنگامی که \fIcacert.pem\fR وجود دارد، این گزینه اثری یکسان با \fB\-C\fR یا \fB\-\-ca\-cert\fR دارد. اگر این فایل وجود نداشته باشد، آن‌گاه \fB\*(PN\fR تلاش می‌کند تا در نخستین اتصال SSL/TLS خود، گواهی CA را از همتای SSL/TLS دریافت کرده و آن را در فایل PEM نام‌برده ذخیره کند. در صورت موفقیت، اتصال بلافاصله قطع شده و مجدداً برقرار می‌شود، و از آن پس همه اتصالات SSL/TLS باید توسط گواهی‌ای که با گواهی CA به‌دست‌آمده امضا شده است احراز هویت شوند. .IP \fBاین گزینه اتصال SSL/TLS را هنگام دریافت گواهی CA اولیه در معرض حمله مرد میانی (man-in-the-middle) قرار می‌دهد\fR، اما ممکن است برای راه‌اندازی اولیه (bootstrapping) مفید باشد. .IP این گزینه تنها زمانی کارآمد است که همتای SSL/TLS گواهی CA خود را به‌عنوان بخشی از زنجیره گواهی SSL/TLS ارسال کند. پروتکل‌های SSL/TLS سرور را ملزم به ارسال گواهی CA نمی‌کنند. .IP این گزینه با \fB\-C\fR و \fB\-\-ca\-cert\fR ناسازگار (مانعة‌الجمع) است. .SS "گزینه‌های اتصال SSL/TLS (SSL/TLS Connection Options)" .IP "\fB\-\-ssl\-protocols=\fIprotocols\fR" محدوده‌ای یا فهرستی جداشده با کاما یا فاصله از پروتکل‌های SSL/TLS را مشخص می‌کند که \fB\*(PN\fR برای اتصالات SSL/TLS فعال خواهد کرد. پروتکل‌های (\fIprotocols\fR) پشتیبانی‌شده شامل \fBTLSv1.2\fR و \fBTLSv1.3\fR هستند. محدوده‌ها می‌توانند به شکل دو نام پروتکل جداشده با یک خط تیره، یا یک نام پروتکل تنها همراه با یک علامت مثبت ارائه شوند. به عنوان مثال، از \fBTLSv1.2-TLSv1.3\fR برای مجاز کردن \fBTLSv1.2\fR و \fBTLSv1.3\fR استفاده کنید. از \fBTLSv1.2+\fR برای مجاز کردن \fBTLSv1.2\fR و هر پروتکل پس از آن استفاده کنید. این گزینه فهرستی از پروتکل‌ها یا دقیقاً یک محدوده را می‌پذیرد. تعیین به صورت محدوده روش مرجح برای مشخص کردن پروتکل‌ها است و رفتار این گزینه همواره چنان است که گویی محدوده بین کمترین و بیشترین نسخه مشخص‌شده داده شده است؛ به عنوان مثال اگر گزینه روی \fBTLSv1.X,TLSv1.(X+2)\fR تنظیم شود، پروتکل \fBTLSv1.(X+1)\fR نیز درست مانند یک محدوده فعال خواهد شد. صرف‌نظر از ترتیب، بالاترین پروتکل پشتیبانی‌شده توسط هر دو طرف هنگام برقراری اتصال انتخاب خواهد شد. در صورت عدم تعیین این گزینه، مقدار پیش‌فرض \fBTLSv1.2\fR یا بالاتر است. . .IP "\fB\-\-ssl\-ciphers=\fIciphers\fR" رمزهایی را در قالب رشته رمز OpenSSL مشخص می‌کند که \fB\*(PN\fR برای اتصالات SSL/TLS با TLSv1.2 پشتیبانی خواهد کرد. در صورت عدم تعیین این گزینه، مقدار پیش‌فرض \fBDEFAULT:@SECLEVEL=2\fR است. . .IP "\fB\-\-ssl\-ciphersuites=\fIciphersuites\fR" مجموعه‌های رمزنگاری (ciphersuites) را در قالب رشته ciphersuite در OpenSSL مشخص می‌کند که \fB\*(PN\fR برای اتصالات SSL/TLS با TLSv1.3 و بالاتر پشتیبانی خواهد کرد. در صورت عدم تعیین این گزینه، مقدار پیش‌فرض OpenSSL استفاده خواهد شد..SS "سایر گزینه‌ها (Other Options)" .IP "\fB\-\-record[=\fIdirectory\fR]" فرایند را در حالت «ضبط» (recording) قرار می‌دهد که در آن تمام اتصالات، داده‌های جریان‌ها (سوکت‌های دامنه Unix و شبکه) و برخی اطلاعات ضروری مهم دیگر را ضبط می‌کند تا بعداً بتوان آن‌ها را بازپخش کرد. داده‌های ضبط‌شده در فایل‌های بازپخش درون \fIdirectory\fR مشخص‌شده ذخیره می‌شوند. اگر \fIdirectory\fR با \fB/\fR آغاز نشود، به‌صورت نسبی نسبت به \fB/run/openvswitch\fR تفسیر می‌شود. اگر \fIdirectory\fR مشخص نشود، از \fB/run/openvswitch\fR استفاده خواهد شد. . .IP "\fB\-\-replay[=\fIdirectory\fR]" فرایند را در حالت «بازپخش» (replay) قرار می‌دهد که در آن به جای استفاده از سوکت‌های واقعی، اطلاعات مربوط به اتصالات، داده‌های جریان‌ها (سوکت‌های دامنه Unix و شبکه) و برخی اطلاعات ضروری دیگر را مستقیماً از فایل‌های بازپخش می‌خواند. فایل‌های بازپخش موجود در \fIdirectory\fR استفاده خواهند شد. اگر \fIdirectory\fR با \fB/\fR آغاز نشود، به‌صورت نسبی نسبت به \fB/run/openvswitch\fR تفسیر می‌شود. اگر \fIdirectory\fR مشخص نشود، از \fB/run/openvswitch\fR استفاده خواهد شد. .IP "\fB\-h\fR" .IQ "\fB\-\-help\fR" پیام راهنمای کوتاهی را روی کنسول چاپ می‌کند. . .IP "\fB\-V\fR" .IQ "\fB\-\-version\fR" اطلاعات نسخه را روی کنسول چاپ می‌کند. .SH "همچنین ببینید (SEE ALSO)" . \fBovsdb\fR(7), \fBovsdb\-server\fR(1), \fBovsdb\-client\fR(1).