SG_REQUESTS(8) SG3_UTILS SG_REQUESTS(8)

sg_requests - ارسال یک یا چند دستور SCSI REQUEST SENSE

sg_requests [--desc] [--error] [--help] [--hex] [--maxlen=LEN] [--num=NUM] [--number=NUM] [--progress] [--raw] [--status] [--time] [--timeout=SE] [--verbose] [--version] DEVICE

دستور SCSI REQUEST SENSE را به DEVICE ارسال می‌کند و داده‌های پارامتر پاسخ را که انتظار می‌رود در قالب داده‌های حسگر (sense data) باشند در خروجی نمایش می‌دهد. هر دو قالب داده‌های حسگر ثابت (fixed) و توصیف‌گر (descriptor) پشتیبانی می‌شوند.

می‌توان چندین دستور REQUEST SENSE را با گزینه --num=NUM ارسال کرد. این کار می‌تواند برای اهداف زمان‌سنجی یا پایش نشانگر پیشرفت (progress indication) استفاده شود.

آرگومان‌های گزینه‌های طولانی برای گزینه‌های کوتاه نیز الزامی هستند.

بیت DESC را در cdb دستور SCSI REQUEST SENSE تنظیم می‌کند. DEVICE باید داده‌های حسگر را در قالب توصیف‌گر (descriptor) (به جای قالب ثابت) بازگرداند. این امر تنها در صورتی رخ می‌دهد که DEVICE قالب توصیف‌گر را تشخیص دهد (SPC-3 و بعد از آن). اگر دستگاه قدیمی‌تر از SPC-3 باشد، تنظیم بیتی در یک فیلد رزروشده ممکن است باعث ایجاد وضعیت check condition با کلید حسگر illegal request شود، اما به احتمال زیاد نادیده گرفته خواهد شد.
هنگامی که یک بار استفاده شود، کد عملیات (opcode) دستور REQUEST SENSE را از 0x3 به 0xff تغییر می‌دهد که باید توسط DEVICE رد شود. احتمال کمی وجود دارد که سازنده دستگاه، دستوری خاصِ سازنده (vendor specific) را در این کد عملیات (0xff) پیاده‌سازی کرده باشد. هنگامی که دو بار استفاده شود، فراخوانی عبور مستقیم (pass-through) برای ارسال دستور SCSI نادیده گرفته و دور زده می‌شود. هدف در اینجا اندازه‌گیری سربار فضای کاربر (user space) کتابخانه این بسته برای آماده‌سازی و پردازش پاسخ یک دستور SCSI است. این گزینه معمولاً به همراه گزینه‌های --num=NUM و --time استفاده می‌شود که در آن‌ها NUM عدد بزرگی است (برای نمونه ۱۰۰۰۰۰۰).
پیام راهنمای استفاده را نمایش داده و خارج می‌شود.
پاسخ را به صورت هگزادسیمال اسکی (ASCII hexadecimal) نمایش می‌دهد.
که در آن LEN (حداکثر) طول پاسخ بر حسب بایت است. این مقدار در فیلد "allocation length" (طول تخصیص) از cdb قرار می‌گیرد. اگر مشخص نشود (یا LEN صفر باشد)، از 252 استفاده می‌شود. حداکثر مقدار LEN برابر 255 است (اما SPC-4 مقدار 252 را توصیه می‌کند).
تعداد NUM دستور SCSI REQUEST SENSE را اجرا می‌کند، و زمانی متوقف می‌شود که یا به NUM برسد یا خطایی رخ دهد. مقدار پیش‌فرض برای NUM برابر با 1 است.
عملکردی مشابه با --num=NUM دارد. جهت سازگاری با sg_turs اضافه شده است.
نشانگر پیشرفت (به صورت درصد) را در صورت موجود بودن نمایش می‌دهد. اگر گزینه --num=NUM داده شده باشد، NUM بزرگ‌تر از 1 باشد و نشانگر پیشرفت اولیه شناسایی شده باشد، این ابزار پیش از بررسی‌های بعدی ۳۰ ثانیه صبر می‌کند. هنگامی که به NUM برسد یا دیگر نشانگر پیشرفتی وجود نداشته باشد، خارج می‌شود. گزینه‌های --hex، --raw و --time را نادیده می‌گیرد. بخش «نکات» را در ادامه ببینید.
خروجی پاسخ به صورت باینری (در خروجی استاندارد).
اگر دستور REQUEST SENSE بدون خطا پایان یابد (همان‌طور که توسط وضعیت SCSI آن مشخص می‌شود)، محتویات داده‌های پارامتر به عنوان داده‌های حسگر (sense data) تجزیه و تحلیل شده و وضعیت خروج بر این اساس تنظیم می‌شود. عمل پیش‌فرض (یعنی هنگامی که این گزینه مشخص نشده باشد) نادیده گرفتن محتویات داده‌های پارامتر برای اهداف تنظیم وضعیت خروج است. برخی از انواع خطا کلید حسگر را روی "NO SENSE" همراه با اطلاعات غیرصفر در کد حسگر اضافی (برای نمونه گروه کدهای FAILURE PREDICTION THRESHOLD EXCEEDED) تنظیم می‌کنند؛ این امر منجر به مقدار وضعیت خروج 10 می‌شود. اگر کلید حسگر "NO SENSE" باشد و هر دو مقدار asc و ascq صفر باشند، وضعیت خروج روی 0 تنظیم می‌شود. برای مقادیر وضعیت خروج به صفحه راهنمای sg3_utils(8) مراجعه کنید.
زمان اجرای دستور(های) SCSI REQUEST SENSE را محاسبه می‌کند و میانگین تعداد عملیات در هر ثانیه را به دست می‌آورد.
که در آن SE مهلت زمانی دستور برای هر دستور TEST UNIT READY است. واحد SE ثانیه است و اگر 0 داده شود، به 60 ثانیه (که مقدار پیش‌فرض است) نگاشت می‌شود. شکل طولانی جایگزین این گزینه --tmo=SE است.
افزایش سطح پرگویی (یعنی خروجی اشکال‌زدایی). علاوه بر این، پاسخ (در صورت دریافت) به صورت ASCII-HEX در خروجی نمایش داده می‌شود. از این گزینه چندین بار برای افزایش بیشتر پرگویی استفاده کنید.
چاپ رشته نسخه و سپس خروج.

در استانداردهای SCSI 1 و SCSI 2 دستور REQUEST SENSE برای پردازش خطاها و هشدارها در SCSI بسیار بااهمیت بود. قابلیت حسگری خودکار (autosense) این دستور را تقریباً زائد و بلااستفاده کرد.

با این حال، پیش‌نویس‌های جدیدتر SCSI (مانند نگارش ۱۴ استاندارد SPC-4 و نگارش ۱۴ استاندارد SBC-3) کاربرد دستور REQUEST SENSE را افزایش داده‌اند. با این دستور می‌توان شرایط مصرف توان بیکار (idle) و آماده‌به‌کار (standby) (مصرف کم انرژی) را تشخیص داد.

دستور REQUEST SENSE در استاندارد SPC-3 به عنوان اجباری مشخص نشده است (یعنی برای همه دستگاه‌های SCSI)، اما در استانداردهای SBC-2 (یعنی برای دیسک‌ها)، SSC-3 (یعنی برای نوارها) و MMC-4 (یعنی برای درایوهای CD/DVD/HD-DVD/BD) به عنوان اجباری مشخص شده است.

نشانگر پیشرفت به صورت اختیاری بخشی از داده‌های حسگر است. هنگامی که دستور قبلی که تکمیل آن زمان زیادی می‌برد (و معمولاً مانع از سایر دستورهای دسترسی به رسانه می‌شود) همچنان در حال اجراست، می‌توان از نشانگر پیشرفت برای تعیین مدت زمان باقی‌مانده تا بازگشت دستگاه به وضعیت عادی استفاده کرد.

دستور SCSI FORMAT برای دیسک‌ها در حالتی که بیت IMMED تنظیم شده باشد، نمونه‌ای از عملیاتی است که زمان قابل توجهی می‌برد و در طول آن زمان مانع سایر دسترسی‌ها به رسانه می‌شود. تنظیم بودن بیت IMMED به دستور FORMAT دستور می‌دهد که پس از آغاز قالب‌بندی، کنترل را بلافاصله به کلاینت برنامه بازگرداند (سند SBC-3 را ببینید). چند دستور طولانی‌مدت SCSI مربوط به درایوهای نوار مغناطیسی نیز از نشانگر پیشرفت استفاده می‌کنند (سند SSC-3 را ببینید).

استانداردهای اولیه پیشنهاد می‌کردند که از دستور SCSI TEST UNIT READY برای نظرسنجی (polling) نشانگر پیشرفت استفاده شود (ابزار sg_turs را ببینید). از استاندارد SPC-3 به بعد، استانداردها پیشنهاد می‌کنند که به جای آن از دستور SCSI REQUEST SENSE استفاده شود.

دستگاه DEVICE با پرچم فقط‌خواندنی باز می‌شود (برای نمونه در یونیکس با پرچم O_RDONLY).

وضعیت خروج sg_requests در صورت موفقیت 0 است. در غیر این صورت به صفحه راهنمای sg3_utils(8) مراجعه کنید.

نوشته‌شده توسط Douglas Gilbert.

گزارش باگ‌ها را به <dgilbert at interlog dot com> ارسال کنید.

حق نشر © 2004-2023 متعلق به Douglas Gilbert است.
این نرم‌افزار تحت مجوز BSD-2-Clause توزیع شده است. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص.

sg_turs (sg3_utils)

مه 2023 sg3_utils-1.48