SG_READ_ATTR(8) SG3_UTILS SG_READ_ATTR(8)

sg_read_attr - ارسال دستور SCSI READ ATTRIBUTE

sg_read_attr [--cache] [--enumerate] [--ea=EA] [--filter=FL] [--first=FAI] [--help] [--hex] [--in=FN] [--lvn=LVN] [--maxlen=LEN] [--pn=PN] [--quiet] [--raw] [--readonly] [--sa=SA] [--verbose] [--version] DEVICE

دستور SCSI READ ATTRIBUTE را به DEVICE ارسال می‌کند و داده‌های بازگردانده‌شده را نمایش می‌دهد. این دستور در بازنگری ۱ از استاندارد SPC-3 معرفی شد و بنابراین برای تمام دستگاه‌های SCSI قابل اعمال است. در عمل عمدتاً برای سامانه‌های نوار مغناطیسی (tape) استفاده می‌شود. این ابزار بر اساس پیش‌نویس استاندارد SPC-5، بازنگری ۱۷ (spc5r17.pdf) تهیه شده است.

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

بیت CACHE را در cdb دستور READ ATTRIBUTE تنظیم می‌کند. این کار به سرور دستگاه دستور می‌دهد که ویژگی‌های کش‌شده را بازگرداند. به‌طور پیش‌فرض این بیت پاک است (صفر است) که به سرور دستگاه دستور می‌دهد ویژگی‌های کش‌شده را بازنگرداند.
تمام ویژگی‌ها و اکشن‌های سرویس شناخته‌شده را برمی‌شمارد (فهرست می‌کند). ویژگی‌ها شامل یک شناسه، طول، قالب و نام مطابق با تعریف T10 هستند. اگر DEVICE مشخص شده باشد، نادیده گرفته می‌شود.
که در آن EA آدرس عنصری (element address) است که در cdb دستور READ ATTRIBUTE قرار می‌گیرد. این فیلد تنها در پیش‌نویس‌های SMC-2 و SMC-3 برای تعویض‌کننده‌های رسانه (medium changers) که معمولاً با کتابخانه‌های نوار در ارتباط هستند یافت می‌شود. به‌طور پیش‌فرض این فیلد روی صفر تنظیم شده است.
که در آن FL یک شناسه ویژگی در بازه 0 تا 65535 یا -1 است. شناسه‌های ویژگی معمولاً به صورت هگزادسیمال مشخص می‌شوند که در این صورت عدد هگز باید با پیشوند "0x" یا پسوند "h" همراه باشد. مقدار "-1" مقدار پیش‌فرض است و به معنای «تطابق با همه» می‌باشد؛ برای سایر مقادیر FL فقط ویژگی مطابق خروجی داده می‌شود.
که در آن FAI فیلد «نخستین شناسه ویژگی» (first attribute identifier) در cdb است. به نظر می‌رسد هدف این فیلد این است که تنها ویژگی‌هایی بازگردانده شوند که شناسه‌های آن‌ها برابر یا بزرگ‌تر از FAI باشد. مقدار پیش‌فرض FAI صفر است. ویژگی‌ها به ترتیب صعودی شناسه بازگردانده می‌شوند.
پیام راهنمای استفاده را چاپ کرده و خارج می‌شود.
پاسخ را به صورت هگزادسیمال به خروجی استاندارد می‌فرستد. هنگام یک بار استفاده، کل پاسخ به صورت هگزادسیمال ASCII همراه با آدرس در ابتدای هر خط (شروع از 0) چاپ می‌شود. هنگام دو بار استفاده، هر توصیف‌کننده ویژگی در پاسخ، جداگانه به صورت هگزادسیمال چاپ می‌شود. هنگام سه بار استفاده، کل پاسخ به صورت هگزادسیمال بدون آدرس در ابتدای خطوط چاپ می‌شود.
خروجی تولیدشده توسط '-HHH' (یا سه بار استفاده از --hex) می‌تواند به یک فایل هدایت شود. آن فایل در قالبی مناسب برای استفاده توسط --in=FN در فراخوانی‌های بعدی خواهد بود.
با FN به عنوان نام یک فایل (یا '-' برای stdin) رفتار می‌شود که حاوی داده‌های هگزادسیمال ASCII یا باینری نماینده پاسخ دستور READ ATTRIBUTE با اکشن سرویس 0x0 (یعنی دریافت مقادیر ویژگی‌ها) است. هنگامی که این گزینه داده شود، DEVICE (در صورت مشخص شدن) نادیده گرفته می‌شود.
به‌طور پیش‌فرض فرض می‌شود FN حاوی داده‌های هگزادسیمال ASCII مرتب‌شده به صورت بایت‌هایی است که با فاصله، تب یا کاما جدا شده‌اند. تمام نویسه‌ها از «#» (شامل خود آن) تا انتهای خط نادیده گرفته می‌شوند. اگر گزینه --raw نیز داده شود، فرض می‌شود FN حاوی داده‌های باینری است. هنگامی که گزینه --raw داده شود، پس از پردازش ورودی، متغیر داخلی raw مجدداً روی 0 تنظیم می‌شود تا هیچ تأثیری بر خروجی نداشته باشد.
از آنجا که پاسخ READ ATTRIBUTE شامل شماره اکشن سرویسی که این پاسخ در برابر آن صادر شده نیست، باید --sa=SA داده شود (در غیر این صورت اکشن سرویس 0 یعنی مقادیر ویژگی‌ها فرض می‌شود).
که در آن LVN در فیلد «شماره حجم منطقی» (logical volume number) در cdb قرار می‌گیرد. مقدار پیش‌فرض صفر است؛ در صورتی که دستگاه تنها یک حجم داشته باشد، شماره حجم منطقی الزامی است که صفر باشد.
که در آن LEN (حداکثر) طول پاسخ به بایت است. این مقدار در فیلد "allocation length" از cdb قرار می‌گیرد. اگر مشخص نشود (یا LEN صفر باشد)، از 8192 استفاده می‌شود. حداکثر مقدار مجاز برای LEN برابر با 1048576 است.
که در آن PN در فیلد «شماره پارتیشن» (partition number) در cdb قرار می‌گیرد. اگر DEVICE تنها یک پارتیشن داشته باشد، شماره پارتیشن آن باید صفر باشد. مقدار پیش‌فرض PN صفر است.
این گزینه مقدار اطلاعات خروجی را کاهش می‌دهد. برای مثال هنگام یک بار استفاده (SA=0)، خط سرآیندی را که نمایش ویژگی‌ها را اعلام می‌کند پنهان می‌سازد؛ هنگامی که دو بار استفاده شود نام هر ویژگی را پنهان می‌کند و تنها مقادیر (یا رشته‌های) ویژگی متناظر را باقی می‌گذارد.
پاسخ SCSI (یعنی بافر data-out) را به صورت باینری (به خروجی استاندارد) می‌فرستد.
دستگاه DEVICE را به صورت فقط‌خواندنی باز می‌کند (مثلاً در یونیکس با پرچم O_RDONLY). حالت پیش‌فرض باز کردن آن به صورت خواندن-نوشتن است.
که در آن SA در فیلد «اکشن سرویس» (service action) در cdb قرار می‌گیرد. مقادیر 0 تا 63 پذیرفته می‌شوند و مقدار پیش‌فرض 0 است. مستند spc5r08.pdf پنج اکشن سرویس را تعریف می‌کند: 0 برای مقادیر ویژگی‌ها (attribute values)؛ 1 برای فهرست ویژگی‌ها (نام‌ها، نه مقادیر)؛ 2 برای فهرست حجم‌های منطقی؛ 3 برای فهرست پارتیشن‌ها؛ 4 برای SMC-3 رزرو شده است؛ و 5 برای فهرست ویژگی‌های پشتیبانی‌شده.
همچنین می‌توان برای SA از یک کوته‌نوشت استفاده کرد. این کوته‌نوشت برای اکشن‌های سرویس 0 تا 5 به ترتیب باید یکی از "av"، "al"، "lvl"، "pn"، "smc" یا "sa" باشد. کوته‌نوشت‌ها را می‌توان با حروف بزرگ نیز وارد کرد.
سطح پرگویی خروجی (یعنی خروجی اشکال‌زدایی) را افزایش می‌دهد.
رشته نسخه را چاپ کرده و سپس خارج می‌شود.

به نظر می‌رسد تنها سامانه‌های نوار مغناطیسی دستور SCSI READ ATTRIBUTE را پیاده‌سازی کرده‌اند. بخش عمده‌ای از تعریف آن در استاندارد SPC آمده است، بنابراین سایر انواع دستگاه‌ها نیز می‌توانند از آن استفاده کنند.

بسیاری از اطلاعات ارائه‌شده توسط READ ATTRIBUTE را می‌توان در صفحاتی که با LOG SENSE بازگردانده می‌شوند (ابزار sg_logs را ببینید) و در صفحات VPD بازگردانده‌شده توسط دستور INQUIRY نیز یافت.

برای فهرست کردن ویژگی‌های یک درایو نوار مغناطیسی که DEVICE آن /dev/sg1 است، می‌توان از دستور زیر استفاده کرد:


# sg_read_attr -s al /dev/sg1
Attribute list:
Remaining capacity in partition [MiB]
Maximum capacity in partition [MiB]
TapeAlert flags
Load count
MAM space remaining [B]
Assigning organization
Format density code
...

برای بررسی تعداد پارتیشن‌ها:


# sg_read_attr -s pl /dev/sg1
Partition number list:
First partition number: 0
Number of partitions available: 2

و برای مشاهده مقادیر ویژگی‌ها (که اکشن سرویس پیش‌فرض است):


# sg_read_attr /dev/sg1
Attribute values:
Remaining capacity in partition [MiB]: 1386103
Maximum capacity in partition [MiB]: 1386103
TapeAlert flags: 0
....

برای هدایت پاسخ مقادیر ویژگی‌ها به یک فایل جهت رمزگشایی در آینده:


# sg_read_attr -HHH /dev/sg1 > av.hex

و بعداً پاسخی که در فایل av.hex نگهداری می‌شود می‌تواند با دستور زیر رمزگشایی شود:


# sg_read_attr -s av --in=av.hex
Attribute values:
Remaining capacity in partition [MiB]: 1386103
Maximum capacity in partition [MiB]: 1386103
TapeAlert flags: 0
....

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

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

گزارش باگ‌ها به <dgilbert at interlog dot com>.

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

sg_vpd,sg_logs(sg3_utils)

December 2020 sg3_utils-1.46