| SG_SENDDIAG(8) | SG3_UTILS | SG_SENDDIAG(8) |
نام (NAME)
sg_senddiag - دستور SCSI SEND DIAGNOSTIC را اجرا میکند
خلاصه دستور (SYNOPSIS)
sg_senddiag [--doff] [--extdur] [--help] [--hex] [--list] [--maxlen=LEN] [--page=PG] [--pf] [--raw=H,H...] [--raw=-] [--selftest=ST] [--test] [--timeout=SECS] [--uoff] [--verbose] [--version] DEVICE
sg_senddiag [-doff] [-e] [-h] [-H] [-l] [-pf] [-raw=H,H...] [-raw=-] [-s=ST] [-t] [-T=SECS] [-uoff] [-v] [-V] [-?] DEVICE
توضیحات (DESCRIPTION)
این ابزار یک دستور SCSI SEND DIAGNOSTIC را به DEVICE ارسال میکند. میتواند خودآزماییها را اجرا کند، صفحههای تشخیصی پشتیبانیشده را بیابد یا صفحههای تشخیصی دلخواه را ارسال نماید.
هنگامی که گزینه --list و یک DEVICE داده شوند، ابزار یک دستور SCSI RECEIVE DIAGNOSTIC RESULTS ارسال میکند تا پاسخ (یعنی شماره صفحههای تشخیصی پشتیبانیشده) را دریافت کند.
هنگامی که گزینه --list بدون یک DEVICE داده شود، فهرستی از نام صفحههای تشخیصی و شمارههای آنها که برای این ابزار شناختهشده هستند، نمایش داده میشود.
این ابزار از دو نحو خط فرمان پشتیبانی میکند؛ نحو ارجح ابتدا در بخش خلاصه دستور نشان داده شده و در این بخش توضیح داده میشود. بخش بعدی درباره نحو قدیمی خط فرمان، گروه دوم گزینهها را شرح میدهد.
گزینهها (OPTIONS)
آرگومانهای گزینههای طولانی برای گزینههای کوتاه نیز اجباری هستند.
- -d, --doff
- بیت Device Offline (DevOffL) را تنظیم میکند (پیشفرض، پاک یا 0 است). تنها زمانی معنادار است که گزینه --test برای خودآزمایی پیشفرض تنظیم شده باشد. در صورت تنظیم، ممکن است سایر عملیات روی هر واحد منطقی (logical unit) تحت کنترل این کارساز دستگاه (target) در زمان انجام خودآزمایی پیشفرض، تحت تأثیر قرار گیرند (به تأخیر بیفتند).
- -e, --extdur
- مدتزمان مورد انتظار برای خودآزمایی طولانی (extended) را نمایش میدهد. این مدتزمان بر حسب ثانیه (و در داخل پرانتز بر حسب دقیقه) ارائه میشود. این رقم از صفحه حالت 0xa (یعنی صفحه حالت کنترل) به دست میآید.
- -h, --help
- پیام نحوه استفاده را چاپ کرده و خارج میشود.
- -H, --hex
- پاسخ دستور
RECEIVE DIAGNOSTIC RESULTS را به
جای
رمزگشایی،
به صورت
هگزادسیمال
نمایش
میدهد.
تنها صفحه
تشخیصی Supported Diagnostic
Pages (یعنی page_code=0)
رمزگشایی
میشود؛
سایر
صفحهها
(مانند
صفحههای
مورد
استفاده
توسط SES) به
صورت
هگزادسیمال
نمایش داده
میشوند.
اگر --hex یک بار استفاده شود، خروجی هگز دارای یک نشانی نسبی در ابتدای هر سطر خواهد بود. اگر --hex دو بار استفاده شود، متناظر ASCII در سمت راست هر سطر از هگز نمایش داده میشود. اگر --hex سه بار یا بیشتر استفاده شود، تنها هگز خروجی داده میشود، به صورت جفتکاراکترهایی (یعنی یک بایت) که با فاصله از هم جدا شدهاند و تا ۱۶ بایت در هر سطر قرار میگیرند. این شکل اخیر، اگر در فایلی قرار داده شود یا با لوله (pipe) به یک اجرای دیگر فرستاده شود، برای گزینه --raw=- مناسب است. - -l, --list
- هنگامی که یک DEVICE نیز داده شده باشد، نام تمام صفحههای تشخیصی پشتیبانیشده توسط این دستگاه را فهرست میکند. این درخواست از طریق یک دستور SEND DIAGNOSTIC (با تنظیم بیت "pF") ارسال شده و پاسخ با یک دستور RECEIVE DIAGNOSTIC RESULTS دریافت میشود. هنگامی که بدون آرگومان DEVICE استفاده شود، فهرستی از نام صفحههای تشخیصی و شمارههای آنها که برای این ابزار شناختهشده هستند نمایش داده میشود.
- -m, --maxlen=LEN
- که در آن LEN مقداری است که در فیلد طول فهرست پارامتر (parameter list length) در یک دستور SEND DIAGNOSTIC یا در فیلد طول تخصیص (allocation length) در یک دستور RECEIVE DIAGNOSTIC RESULTS قرار میگیرد. این حالت تنها زمانی رخ میدهد که سایر گزینهها بر ارسال یا دریافت داده توسط دستور دلالت داشته باشند. مقدار پیشفرض ۴۰۹۶ بایت است. مقدار LEN نمیتواند از ۶۵۵۳۵ یا 0xffff در مبنای شانزده تجاوز کند.
- -O, --old
- تغییر به گزینههای سبک قدیمیتر. لطفاً به عنوان اولین گزینه استفاده شود.
- -P, --page=PG
- که در آن PG فیلد کد صفحه دستور RECEIVE DIAGNOSTIC RESULTS است. در صورت مشخص شدن این گزینه، بیت PCV در آن دستور تنظیم میشود. هنگامی که این گزینه داده شود، هیچ دستور SEND DIAGNOSTIC ارسال نمیشود (برخلاف --list). اگر PG برابر با 0 باشد، پاسخ به گونهای رمزگشایی میشود که گویی صفحه تشخیصی SPC Supported Diagnostic pages است. سایر مقادیر PG (یعنی ۱ تا ۲۵۵) پاسخهای خود را به صورت هگزادسیمال نمایش میدهند.
- -p, --pf
- بیت Page Format (PF) را تنظیم میکند. به طور پیشفرض پاک (یعنی 0) است، مگر اینکه گزینه --list داده شده باشد که در آن صورت بیت Page Format تنظیم میشود (طبق الزامات SPC-3).
- -r, --raw=H,H...
- رشتهای از اعداد هگزادسیمال جدا شده با کاما که هر یک از آنها باید به یک مقدار بایت (یعنی 0 تا ff به طور شامل) تبدیل شوند. یک رشته از بایتهای هگز که با فاصله (تک) جدا شده باشند نیز مجاز است، اما این فهرست باید درون نقلقول قرار گیرد. این دنباله یک صفحه تشخیصی را تشکیل میدهد تا با دستور SCSI SEND DIAGNOSTIC ارسال شود. به احتمال زیاد گزینه --pf نیز باید داده شود.
- -r, --raw=-
- دنبالهای از بایتها را از ورودی استاندارد (stdin) میخواند. این دنباله میتواند با کاما، فاصله، تب یا خط جدید (newline) جدا شده باشد. اگر سطری شامل "#" باشد، کاراکترهای باقیمانده در آن سطر نادیده گرفته میشوند. در غیر این صورت هر کاراکتر غیرجداساز باید به یک مقدار بایت (یعنی 0 تا ff به طور شامل) تبدیل شود. این دنباله یک صفحه تشخیصی را تشکیل میدهد تا با دستور SCSI SEND DIAGNOSTIC ارسال شود. به احتمال زیاد گزینه --pf نیز باید داده شود.
- -s, --selftest=ST
- که در آن ST
کد
خودآزمایی
است. مقدار
پیشفرض 0
است که به
معنی
غیرفعال
است. برخی
مقادیر
دیگر:
1 : خودآزمایی کوتاه پسزمینه 2 : خودآزمایی گسترده پسزمینه 4 : لغو یک خودآزمایی (پسزمینه) در حال انجام 5 : خودآزمایی کوتاه پیشزمینه 6 : خودآزمایی گسترده پیشزمینه
این گزینه با خودآزمایی پیشفرض مانعةالجمع است (یعنی نمیتوان به طور همزمان (ST > 0) و --test را داشت).
- -t, --test
- بیت خودآزمایی _پیشفرض_ (SelfTest) را تنظیم میکند. به طور پیشفرض این مقدار پاک (0) است. گزینه --selftest=ST نباید همزمان با این گزینه فعال باشد. هر دو گزینه --doff و/یا --uoff میتوانند با این گزینه استفاده شوند.
- -T, --timeout=SECS
- که در آن SECS یک مقدار مهلت زمانی (بر حسب ثانیه) برای عملیات خودآزمایی پیشزمینه است. مقدار پیشفرض ۷۲۰۰ ثانیه (۲ ساعت) است و هر مقداری برای SECS که کمتر از مقدار پیشفرض باشد نادیده گرفته میشود.
- -u, --uoff
- بیت Unit Offline (UnitOffL) را تنظیم میکند (پیشفرض، پاک یا 0 است). تنها زمانی معنادار است که گزینه --test برای خودآزمایی پیشفرض تنظیم شده باشد. در صورت تنظیم، ممکن است سایر عملیات روی این واحد منطقی در حین انجام خودآزمایی پیشفرض تحت تأثیر قرار گیرند (به تأخیر بیفتند). برخی دستگاهها (مانند دیسکهای Fujitsu) در صورت تنظیم بودن این بیت، آزمونهای بیشتری انجام میدهند.
- -v, --verbose
- سطح پرحرفی را افزایش میدهد. میتواند چندین بار استفاده شود.
- -V, --version
- رشته نگارش را چاپ کرده و خارج میشود.
نکات (NOTES)
تمام دستگاهها باید از خودآزمایی پیشفرض پشتیبانی کنند. کدهای خودآزمایی «کوتاه» باید در ۲ دقیقه یا کمتر تکمیل شوند. حداکثر مدتزمان کدهای خودآزمایی «گسترده» به سازنده وابسته است (مثلاً برای دیسکهای نویسنده کمی بیشتر از ۱۰ دقیقه). کدهای خودآزمایی پیشزمینه تا زمان تکمیل منتظر میمانند، در حالی که کدهای خودآزمایی پسزمینه بلافاصله بازمیگردند. نتایج کدهای خودآزمایی پیشزمینه و پسزمینه در صفحه لاگ «self-test results» قرار میگیرند (به sg_logs(8) مراجعه کنید). مهلت زمانی دستور SCSI برای این ابزار روی ۶۰ دقیقه تنظیم شده است تا امکان اجرای خودآزماییهای گسترده پیشزمینه که کند هستند، فراهم باشد.
اگر DEVICE یک دیسک باشد، در طول خودآزمایی پیشزمینه هیچ سیستم فایلی مستقر روی آن دیسک نباید سوار (mount) شده باشد؛ دلیل این است که سایر دستورات SCSI ممکن است پشت سر خودآزمایی پیشزمینه در صف قرار گرفته و مهلت زمانی آنها به پایان برسد.
هنگامی که گزینه --raw=H,H... داده میشود، نباید خودآزماییها انتخاب شوند. با این حال گزینه --pf (یعنی "page format") باید مشخص شود. طول صفحه تشخیصی ارسالی از تعداد بایتهای دادهشده به گزینه --raw=H,H... مشتق میشود. کد صفحه تشخیصی (شماره آن) باید نخستین بایت از این دنباله باشد (همانطور که توسط قالب صفحه تشخیصی SPC-3 دیکته شده است). بخش مثالها در زیر را ببینید.
صفحههای تشخیصی دلخواه را میتوان با ابزار sg_ses(8) (به صورت هگز) خواند (نه تنها آنهایی که در SES-2 تعریف شدهاند).
اگر ابزار بدون هیچ گزینهای استفاده شود (مثلاً "sg_senddiag /dev/sg1")، یک دستور انحطاطیافته (degenerate) SCSI SEND DIAGNOSTIC با مقدار صفر در تمام فیلدهایش به جز کد عملگر (opcode) ارسال میشود. برخی دستگاهها این مورد را به عنوان خطا گزارش میکنند در حالی که دستگاههای دیگر آن را نادیده میگیرند. در SPC-3 کاملاً مشخص نیست که آیا ارسال چنین دستوری نامعتبر است یا خیر.
در سری 2.4 هستههای لینوکس، DEVICE باید یک دستگاه جنریک SCSI (sg) باشد. در سری 2.6 دستگاههای بلوکی (مانند دیسکهای SCSI و درایوهای DVD) نیز میتوانند مشخص شوند.
برای دسترسی به محفظههای SCSI به ابزار sg_ses(8) مراجعه کنید. ابزار sg_ses از دستورات SCSI SEND DIAGNOSTIC و RECEIVE DIAGNOSTIC RESULTS همانطور که در پیشنویس استاندارد SES-2 مشخص شده، استفاده میکند.
وضعیت خروج (EXIT STATUS)
وضعیت خروج sg_senddiag در صورت موفقیت برابر با 0 است. در غیر این صورت به صفحه راهنمای sg3_utils(8) مراجعه کنید.
گزینههای قدیمی خط فرمان (OLDER COMMAND LINE OPTIONS)
گزینههای این بخش تنها گزینههای در دسترس پیش از نگارش 1.23 از sg3_utils بودند. از آن زمان این ابزار به طور پیشفرض از گزینههای جدیدتر خط فرمان استفاده میکند که میتوان با استفاده از --old (یا -O) به عنوان اولین گزینه، رفتار آن را بازنویسی کرد. برای روشی دیگر جهت اجبار به استفاده از این گزینههای قدیمی خط فرمان، بخش متغیرهای محیطی را ببینید.
- -doff
- بیت Device Offline (DevOffL) را تنظیم میکند (پیشفرض پاک است). تنها زمانی معنادار است که گزینه -t برای خودآزمایی پیشفرض تنظیم شده باشد. معادل --doff در توضیحات اصلی است.
- -e
- مدتزمان مورد انتظار خودآزمایی گسترده را نمایش میدهد. معادل --extdur در توضیحات اصلی است.
- -h
- پاسخ دستور RECEIVE DIAGNOSTIC RESULTS را به جای رمزگشایی، به صورت هگزادسیمال نمایش میدهد.
- -H
- پاسخ دستور RECEIVE DIAGNOSTIC RESULTS را به جای رمزگشایی، به صورت هگزادسیمال نمایش میدهد.
- -l
- هنگامی که یک DEVICE نیز داده شده باشد، نام تمام صفحههای تشخیصی پشتیبانیشده توسط این دستگاه را فهرست میکند. این درخواست از طریق یک دستور SEND DIAGNOSTIC (با تنظیم بیت "pf") ارسال شده و پاسخ با یک دستور RECEIVE DIAGNOSTIC RESULTS دریافت میشود. هنگامی که بدون آرگومان DEVICE استفاده شود، فهرستی از نام صفحههای تشخیصی و شمارههای آنها که برای این ابزار شناختهشده هستند نمایش داده میشود.
- -N, --new
- تغییر وضعیت به گزینههای سبک جدیدتر.
- -pf
- بیت Page Format (PF) را تنظیم میکند. به طور پیشفرض پاک (یعنی 0) است، مگر اینکه گزینه -l داده شده باشد که در آن صورت بیت Page Format تنظیم میشود (طبق الزامات SPC-3).
- -raw=H,H...
- رشتهای از اعداد هگزادسیمال جدا شده با کاما که هر یک از آنها باید به یک مقدار بایت (یعنی 0 تا ff به طور شامل) تبدیل شوند. این دنباله یک صفحه تشخیصی را تشکیل میدهد تا با دستور SCSI SEND DIAGNOSTIC ارسال شود. به احتمال زیاد گزینه -pf نیز باید داده شود.
- -raw=-
- دنبالهای از بایتها را از ورودی استاندارد (stdin) میخواند. این دنباله میتواند با کاما، فاصله، تب یا خط جدید (newline) جدا شده باشد. اگر سطری شامل "#" باشد، کاراکترهای باقیمانده در آن سطر نادیده گرفته میشوند. در غیر این صورت هر کاراکتر غیرجداساز باید به یک مقدار بایت (یعنی 0 تا ff به طور شامل) تبدیل شود. این دنباله یک صفحه تشخیصی را تشکیل میدهد تا با دستور SCSI SEND DIAGNOSTIC ارسال شود. به احتمال زیاد گزینه -pf نیز باید داده شود.
- -s=ST
- که در آن ST کد خودآزمایی است. مقدار پیشفرض 0 است که به معنی غیرفعال است. مقدار 1 یک خودآزمایی کوتاه پسزمینه را انتخاب میکند؛ 2 یک خودآزمایی گسترده پسزمینه را انتخاب میکند؛ 5 یک خودآزمایی کوتاه پیشزمینه را انتخاب میکند؛ 6 یک آزمون گسترده پیشزمینه را انتخاب میکند. مقدار 4 یک خودآزمایی (پسزمینه) در حال انجام را لغو خواهد کرد. این گزینه با خودآزمایی پیشفرض (یعنی -t) مانعةالجمع است.
- -t
- بیت خودآزمایی _پیشفرض_ (SelfTest) را تنظیم میکند. به طور پیشفرض این مقدار پاک (0) است. گزینه -s=ST نباید همزمان با این گزینه فعال باشد. هر دو گزینه -doff و/یا -uoff میتوانند با این گزینه استفاده شوند.
- -T=SECS
- که در آن SECS یک مقدار مهلت زمانی (بر حسب ثانیه) برای عملیات خودآزمایی پیشزمینه است. گزینه --timeout=SECS در بالا را ببینید.
- -uoff
- بیت Unit Offline (UnitOffL) را تنظیم میکند (پیشفرض پاک است). معادل --uoff در توضیحات اصلی است.
- -v
- سطح پرحرفی را افزایش میدهد. میتواند چندین بار استفاده شود.
- -V
- رشته نگارش را چاپ کرده و خارج میشود.
- -?
- پیام نحوه استفاده را چاپ میکند. تمام پارامترهای دیگر را نادیده میگیرد.
مثالها (EXAMPLES)
زیرشاخه examples در بستههای sg3_utils شامل دو اسکریپت نمونه است که الگوی CJTPAT (الگوی لرزش یا jitter) را روی برخی دیسکهای SAS فعال میکند (یک اسکریپت برای هر phy). یک فراخوانی ممکن برای phy 1 عبارت است از:
sg_senddiag --pf --raw=- /dev/sg2 < sdiag_sas_p1_cjtpat.txt
همچنین یک اسکریپت نمونه وجود دارد که الگوی IDLE را فعال میکند. هنگامی که یک الگوی آزمایشی آغاز شد، میتوان آن را با بازنشانی phy یا با تابع الگوی STOP phy خاموش کرد:
sg_senddiag --pf --raw=- /dev/sg2 < sdiag_sas_p1_stop.txt
متغیرهای محیطی (ENVIRONMENT VARIABLES)
از زمان نگارش 1.23 از sg3_utils، متغیر محیطی SG3_UTILS_OLD_OPTS میتواند داده شود. هنگامی که این متغیر وجود داشته باشد، این ابزار انتظار گزینههای قدیمیتر خط فرمان را خواهد داشت؛ بنابراین حضور این متغیر محیطی معادل استفاده از --old (یا -O) به عنوان اولین گزینه خط فرمان است.
نویسنده (AUTHOR)
نوشتهشده توسط Douglas Gilbert.
گزارش خطاها (REPORTING BUGS)
گزارش خطاها را به <dgilbert at interlog dot com> ارسال کنید.
حق نشر (COPYRIGHT)
Copyright © 2003-2018 Douglas Gilbert
این
نرمافزار
تحت مجوز GPL
نگارش 2
توزیع شده
است. هیچ
تضمینی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
مناسب بودن
برای یک هدف
خاص.
ببینید (SEE ALSO)
sg_ses(8), sg_logs(8), smartmontools(see net)
| می ۲۰۱۸ | sg3_utils-1.43 |