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