| SG_SAT_DATETIME(8) | SG3_UTILS | SG_SAT_DATETIME(8) |
نام (NAME)
sg_sat_datetime - گزارش یا تنظیم تاریخ و ساعت روی یک دستگاه ATA
خلاصه دستور (SYNOPSIS)
sg_sat_datetime [--dma] [--elapsed] [--format] [--help] [--hex] [--milliseconds=MS] [--readonly] [--seconds=SECS] [--srep] [--verbose] [--version] DEVICE
توضیحات (DESCRIPTION)
یک دستور SET DATE & TIME EXT یا READ LOG [DMA] EXT را به DEVICE مبتنی بر ATA ارسال میکند تا تاریخ و ساعت را تنظیم کند یا آن را از آدرس لاگ آمار دستگاه (04h)، برگه آمار عمومی (01h) بخواند. این دستورات در استاندارد مجموعه دستورات ATA (ACS-5) یافت میشوند. دستورات ATA با استفاده از دستورات SCSI موسوم به ATA PASS-THROUGH ارسال میشوند.
اگر هر یک از گزینههای --milliseconds=MS یا --seconds=SECS داده شود (و امکان مشخص کردن هر دو با هم وجود ندارد)، آنگاه دستور SET DATE & TIME ارسال میشود. در غیر این صورت، دستور READ LOG EXT، یا در صورت استفاده از گزینه --dma ، دستور READ LOG DMA EXT به دستگاه فرستاده میشود.
تاریخ و ساعت ارسالی و دریافتی از DEVICE عموماً به عنوان تعداد میلیثانیهها از مبدا زمانی (epoch) تاریخ 1970-01-01 00:00:00 UTC در نظر گرفته شده و در یک عدد صحیح بیعلامت ۴۸ بیتی نگهداری میشود. همین مبدا زمانی توسط ماشینهای یونیکس نیز استفاده میشود، اما آنها معمولاً تعداد ثانیهها از آن مبدا زمانی را نگهداری میکنند. دستور date یونیکس و به ویژه فرمت "+%s" آن در تبدیل به و از برچسبهای زمانی و اشکال خواناتر برای انسان مفید است. بخش مثالها (EXAMPLES) در زیر را ببینید. اگر تاریخ و ساعت پس از بازنشانی ناشی از روشن شدن (power-on reset) تنظیم نشده باشد، این مقدار معادل ساعات روشن بودن دستگاه بر حسب میلیثانیه خواهد بود.
گزینهها (OPTIONS)
آرگومانهای گزینههای طولانی برای گزینههای کوتاه نیز الزامی هستند.
- -d, --dma
- از READ LOG DMA EXT برای خواندن مقدار تاریخ و ساعت از دستگاه استفاده میکند. در صورت تنظیم تاریخ و ساعت نادیده گرفته میشود.
- -e, --elapsed
- فرض میکند
تاریخ و
ساعت حاصل
از READ LOG [DMA] EXT یک
زمان
سپریشده
از رویدادی
مانند چرخه
برق (power cycle) یا
بازنشانی
سختافزاری
(hard reset) است و
خروجی را به
صورت '<n> days hh:mm:ss.xxx'
فرمتبندی
میکند؛ که
در آن hh
نشاندهنده
ساعت (۰ تا
۲۳ شامل
خودشان)؛ mm
نشاندهنده
دقیقه (۰ تا
۵۹ شامل
خودشان)؛ ss
نشاندهنده
ثانیه (۰ تا
۵۹ شامل
خودشان) و xxx
نشاندهنده
میلیثانیه
(۰۰۰ تا ۹۹۹
شامل
خودشان)
است. اگر
تعداد
روزها ۰
باشد،
عبارت '0 days' در
خروجی چاپ
نمیشود
مگر اینکه
این گزینه
دو یا چند
بار تکرار
شود.
این گزینه به ویژه در صورتی مفید است که تاریخ و ساعت تنظیم نشده باشد. طبق ACS-5، در صورت عدم تنظیم، تاریخ و ساعت با مقدار ساعات روشن بودن دستگاه بر حسب میلیثانیه مقداردهی اولیه میشود. - -f, --format
- تاریخ و ساعت را با قالببندی لوکال (locale) پیشفرض سیستم در خروجی نمایش میدهد.
- -h, --help
- پیام راهنمای استفاده را نمایش داده و خارج میشود.
- -H, --hex
- تاریخ و ساعت را در مبنای ۱۶ اسکی (ASCII hexadecimal) خروجی میدهد.
- -m, --milliseconds=MS
- که در آن MS تعداد میلیثانیهها از تاریخ 1970-01-01 00:00:00 UTC است که باید با دستور ATA SET DATE & TIME EXT روی DEVICE تنظیم شود.
- -R, --readonly
- دستگاه DEVICE را به صورت فقطخواندنی (read-only) باز میکند. اقدام پیشفرض، باز کردن DEVICE به صورت خواندنی-نوشتنی (read-write) است.
- -s, --seconds=SECS
- که در آن SECS تعداد ثانیهها از تاریخ 1970-01-01 00:00:00 UTC است که باید با دستور ATA SET DATE & TIME روی DEVICE تنظیم شود. SECS پیش از استفاده در دستور ATA SET DATE & TIME در ۱۰۰۰ ضرب میشود.
- -S, --srep
- تعداد ثانیهها از تاریخ 1970-01-01 00:00:00 UTC را گزارش میدهد. این کار با تقسیم مقدار بازگرداندهشده توسط دستور ATA READ LOG [DMA] EXT بر ۱۰۰۰ انجام میشود.
- -v, --verbose
- میزان پرگویی را افزایش میدهد (یعنی خروجی اشکالزدایی).
- -V, --version
- رشته نسخه را چاپ کرده و سپس خارج میشود.
وضعیت خروج (EXIT STATUS)
وضعیت خروج sg_sat_datetime در صورت موفقیت ۰ است. در غیر این صورت، به صفحه راهنمای sg3_utils(8) مراجعه کنید.
نکات (NOTES)
دستگاه DEVICE باید بلافاصله پس از تنظیم تاریخ و ساعت شروع به انباشت زمان کند. یعنی اگر تاریخ و ساعت را تنظیم و سپس دریافت کنید، مقادیر بازگرداندهشده احتمالاً افزایش یافتهاند.
استاندارد ACS-5 هیچ تدبیری برای ذخیرهسازی تاریخ و ساعت ایمن در برابر قطع برق (power-safe) پیشبینی نکرده است. مگر اینکه دستگاه دارای قابلیت ایمن در برابر قطع برق ویژه سازنده باشد، پس از بازنشانی ناشی از روشن شدن، طبق ACS-5، تاریخ و ساعت باید برابر با ساعات روشن بودن دستگاه باشد که بر حسب میلیثانیه (یا ثانیه در صورت استفاده از گزینه --srep) برگردانده میشود.
مثالها (EXAMPLES)
در ماشینهای یونیکس (مانند لینوکس، FreeBSD و سولاریس) دستور date هنگام کار با برچسبهای زمانی سودمند است.
جهت دریافت برچسب زمانی از یک DEVICE و نمایش آن به شکلی خوانا برای انسان، میتوان از نمونه زیر استفاده کرد:
# sg_sat_datetime -S /dev/sg2 1681156506
# date --date=@1681156506 Mon Apr 10 02:55:06 PM CDT 2023
# date -R --date="@1681156506" Mon, 10 Apr 2023 14:55:06 -0500
دو دستور اخیر date شکلهای متفاوتی از همان تاریخ را نشان میدهند (یعنی ۱۶۸۱۱۵۶۵۰۶ ثانیه از تاریخ 1970-01-01 00:00:00 UTC). دستورات sg_sat_datetime و date را میتوان با استفاده از backquote ترکیب کرد:
# date -R --date=@`sg_sat_datetime -S /dev/sg2` Mon, 10 Apr 2023 14:55:06 -0500
همچنین میتوان از گزینه --format برای فرمتبندی تاریخ و ساعت با استفاده از لوکال پیشفرض بهره برد.
# sg_sat_datetime --format /dev/sg2 Mon Apr 10 15:02:54 2023
جهت تنظیم تاریخ و ساعت روی DEVICE به زمان فعلی (تقریباً)، میتوان نمونه زیر را به کار برد:
# date +%s 1681157099
# sg_sat_datetime --seconds=1681157099 /dev/sg0
این دو خط فرمان را میتوان با استفاده از backquote در یک دستور ادغام کرد:
# sg_sat_datetime --seconds=`date +%s` /dev/sg0
نویسندگان (AUTHORS)
نوشتهشده توسط Jeremy Bauer و Daniel Woeste با استفاده گسترده از sg_timestamp و sg_sat_read_gplog اثر Douglas Gilbert.
گزارش باگها (REPORTING BUGS)
گزارش اشکالات به <dgilbert at interlog dot com>.
حق نشر (COPYRIGHT)
حق نشر © 2023
متعلق به Jeremy Bauer
و Daniel Woeste از شرکت
Western Digital Corporation است.
این
نرمافزار
تحت مجوز FreeBSD
توزیع
میشود. هیچ
ضمانتی
وجود
ندارد؛ حتی
برای
قابلیت
فروش یا
مناسب بودن
برای یک هدف
خاص.
همچنین ببینید (SEE ALSO)
sdparm(sdparm), sg_logs(sg3_utils), sg_timestamp(sg3_utils), sg_sat_read_gplog(sg3_utils)
| مه 2023 | sg3_utils-1.48 |