SMARTD(8) ابزارهای پایش SMART SMARTD(8)

smartd - دیمن پایش دیسک بر پایه SMART

smartd [گزینه‌ها]

[این صفحه راهنما برای نسخه لینوکس smartmontools تولید شده است. اطلاعات ویژه سایر پلتفرم‌ها در آن گنجانده نشده است.]

برنامه smartd یک دیمن است که سیستم Self-Monitoring, Analysis and Reporting Technology (SMART) تعبیه‌شده در اکثر درایوهای دیسک سخت و حالت جامد (SSD) از نوع ATA/SATA و SCSI/SAS را پایش می‌کند. هدف SMART نظارت بر قابلیت اطمینان دیسک، پیش‌بینی خرابی‌های درایو و اجرای انواع مختلف خودآزمایی‌های (self-tests) درایو است. این نسخه از smartd با استانداردهای ACS-3، ACS-2، ATA8-ACS، ATA/ATAPI-7 و استانداردهای قدیمی‌تر سازگار است (بخش مراجع (REFERENCES) در زیر را ببینید).

برنامه smartd تلاش خواهد کرد تا پایش SMART را روی دستگاه‌های ATA فعال کند (معادل smartctl -s on) و این دستگاه‌ها و دستگاه‌های SCSI را هر ۳۰ دقیقه یک‌بار (قابل پیکربندی) بررسی دوره‌ای (poll) کند و خطاهای SMART و تغییرات ویژگی‌های (Attributes) آن را از طریق رابط SYSLOG ثبت نماید. محل پیش‌فرض برای این اعلان‌ها و هشدارهای SYSLOG وابسته به سیستم است (معمولاً /var/log/messages یا /var/log/syslog). برای تغییر این محل پیش‌فرض، لطفاً گزینه خط فرمان '-l' را که در زیر شرح داده شده ببینید.

علاوه بر ثبت در فایل، smartd می‌تواند طوری پیکربندی شود که در صورت شناسایی مشکلات، هشدارهای ایمیلی ارسال کند. بسته به نوع مشکل، ممکن است بخواهید خودآزمایی‌هایی روی دیسک اجرا کنید، از داده‌های دیسک نسخه پشتیبان بگیرید، دیسک را تعویض کنید، یا از ابزار اختصاصی سازنده برای تخصیص مجدد سکتورهای خراب یا غیرقابل خواندن استفاده نمایید. اگر مشکلاتی در دیسک شناسایی شد، لطفاً برای راهنمایی بیشتر به صفحه راهنمای smartctl و وب‌سایت/پرسش‌های متداول smartmontools مراجعه کنید.

اگر سیگنال USR1 را به smartd ارسال کنید، بلافاصله وضعیت دیسک‌ها را بررسی کرده و سپس به چرخه پایش هر ۳۰ دقیقه یک‌بار بازمی‌گردد. گزینه '-i' در زیر را برای جزئیات بیشتر ببینید.

برنامه smartd می‌تواند در زمان راه‌اندازی با استفاده از فایل پیکربندی /etc/smartd.conf (در ویندوز: EXEDIR/smartd.conf) پیکربندی شود. اگر فایل پیکربندی بعداً تغییر یابد، می‌توان با ارسال سیگنال HUP به smartd آن را وادار به خواندن مجدد فایل پیکربندی کرد، به عنوان مثال با دستور:
killall -HUP smartd.

در زمان راه‌اندازی، اگر smartd خطای نگارشی در فایل پیکربندی بیابد، یک پیام خطا چاپ کرده و سپس خارج می‌شود. با این حال اگر smartd از قبل در حال اجرا باشد و سپس با سیگنال HUP دستور خواندن مجدد فایل پیکربندی را دریافت کند، و در این فایل خطای نگارشی بیابد، پیام خطا چاپ کرده و به کار خود ادامه می‌دهد، و محتویات فایل پیکربندی معیوب را طوری نادیده می‌گیرد که گویی سیگنال HUP هرگز دریافت نشده است.

هنگامی که smartd در حالت اشکال‌زدایی (debug) اجرا می‌شود، با سیگنال INT (که معمولاً از پوسته با CONTROL-C ایجاد می‌شود) همانند سیگنال HUP رفتار می‌شود: این سیگنال باعث می‌شود smartd فایل پیکربندی خود را دوباره بارگذاری کند. برای خروج از smartd از CONTROL-\ استفاده کنید.

[فقط لینوکس] اگر smartd به عنوان یک سرویس systemd(1) شروع شود و 'Type=Notify' در فایل سرویس مشخص شده باشد، پس از راه‌اندازی موفقیت‌آمیز به مدیر سرویس اطلاع داده می‌شود. سایر تغییرات وضعیت از طریق پیام‌های systemd notify STATUS گزارش می‌شوند. اعلان بارگذاری‌های مجدد موفق (پس از سیگنال HUP) پشتیبانی نمی‌شود. برای تشخیص این نوع راه‌اندازی فرآیند، smartd بررسی می‌کند که آیا متغیر محیطی 'NOTIFY_SOCKET' تنظیم شده است یا خیر. توجه داشته باشید که اگر 'Type=Notify' استفاده شود، تنظیم گزینه '-n' ('--nofork') در خط فرمان 'ExecStart=/usr/bin/smartd' الزامی است.

در زمان راه‌اندازی، در صورت نبود فایل پیکربندی /etc/smartd.conf، دیمن smartd ابتدا تمام دستگاه‌هایی را که از SMART پشتیبانی می‌کنند اسکن می‌کند. این اسکن به صورت زیر انجام می‌شود:

بررسی تمام ورودی‌های "/dev/hd[a-t]" برای دستگاه‌های IDE/ATA، و "/dev/sd[a-z]"، "/dev/sd[a-z][a-z]" برای دستگاه‌های ATA/SATA یا SCSI/SAS. دیسک‌های پشت کنترلرهای RAID گنجانده نمی‌شوند.

اگر دستورالعمل '-d nvme' یا هیچ دستورالعمل '-d' مشخص نشده باشد، تمام ورودی‌های "/dev/nvme[0-99]" برای دستگاه‌های NVMe بررسی می‌شوند.

سپس smartd تمامی خطاهای ممکن SMART را پایش می‌کند (متناظر با دستورالعمل '-a' در فایل پیکربندی؛ صفحه راهنمای smartd.conf(5) را ببینید).

نوشتن اطلاعات ویژگی‌های (attributes) درایو در فایل‌های
'PREFIX''MODEL-SERIAL[-NSID].PRT.csv'.
اگر PREFIX شامل یک اسلش انتهایی باشد، دایرکتوری مقصد را مشخص می‌کند. در غیر این صورت آخرین مؤلفه مسیر، پیشوند نام فایل را تعیین می‌نماید. مسیر باید مطلق باشد، مگر اینکه حالت اشکال‌زدایی فعال شده باشد. MODEL و SERIAL بر اساس اطلاعات شناسایی درایو ساخته می‌شوند، کاراکترهای نامعتبر با خط زیرین (underline) جایگزین می‌گردند. اگر یک فضای نام مجزا آدرس‌دهی شود، NSID شناسه فضای نام NVMe خواهد بود. PRT یکی از مقادیر 'ata'، 'scsi' یا 'nvme' است.

در هر چرخه بررسی، ویژگی‌ها به صورت یک خط از چندتایی‌های جدا شده با برگه (tab) ثبت می‌شوند که از نام‌ها یا مقادیر جدا شده با نقطه‌ویرگول تشکیل شده است. هر خط با یک رشته تاریخ به فرمت "yyyy-mm-dd HH:MM:SS" (در زمان محلی) آغاز می‌شود. بخش باقی‌مانده وابسته به پروتکل است:
[ATA] ویژگی‌های SMART مربوط به ATA را به صورت "id;normalized-value;raw-value;" می‌نویسد.
[SCSI] شمارنده‌های خطای SCSI و دما را به صورت "name;value;" می‌نویسد.
[NVMe: قابلیت تجربی جدید در SMARTD 7.5] اطلاعات SMART/Health مربوط به NVMe را به صورت "name;value;" می‌نویسد.

[فقط ATA] خواندن پایگاه‌داده درایو از FILE. پایگاه‌داده جدید به طور پیش‌فرض جایگزین پایگاه‌داده داخلی می‌شود. اگر '+' مشخص شده باشد، ورودی‌های جدید به ابتدای ورودی‌های داخلی افزوده می‌شوند. لطفاً برای جزئیات بیشتر به صفحه راهنمای smartctl(8) مراجعه فرمایید.
خواندن دستورالعمل‌های پیکربندی smartd از FILE، به جای محل پیش‌فرض /etc/smartd.conf (در ویندوز: EXEDIR/smartd.conf). اگر FILE وجود نداشته باشد، آن‌گاه smartd یک پیام خطا چاپ کرده و با وضعیت غیرصفر خارج می‌شود. بنابراین، '-c /etc/smartd.conf' می‌تواند برای بررسی وجود فایل پیکربندی پیش‌فرض استفاده شود.

با استفاده از '-' به جای FILE، پیکربندی از ورودی استاندارد خوانده می‌شود. این مورد برای دستوراتی مانند:
echo /dev/sdb -m user@home -M test | smartd -c - -q onecheck
جهت انجام بررسی‌های سریع و ساده بدون فایل پیکربندی مفید است.

[فقط لینوکس] استفاده از libcap-ng برای انداختن (drop) قابلیت‌های capabilities(7) غیرضروری پردازش در لینوکس. قابلیت‌های زیر در مجموعه‌های مؤثر (effective) و مجاز (permissive) نگه داشته می‌شوند: CAP_SYS_ADMIN، CAP_SYS_RAWIO، CAP_MKNOD. اگر گزینه '-u, --warn_as_user' (زیر را ببینید) به همراه یک کاربر یا گروه غیرمجاز استفاده شود، قابلیت‌های زیر نیز حفظ می‌شوند: CAP_SETGID، CAP_SETUID. مجموعه محدودکننده (bounding set) قابلیت‌ها پاک می‌شود. اینکه آیا امکان ارسال ایمیل از یک پردازش root با تمام قابلیت‌های ساقط‌شده وجود دارد یا خیر، به MTA محلی بستگی دارد. این قابلیت با MTA postfix کار می‌کند.

اگر '--capabilities=mail' مشخص شده باشد، قابلیت‌های زیر به مجموعه محدودکننده اضافه می‌شوند: CAP_SETGID، CAP_SETUID، CAP_CHOWN، CAP_FOWNER، CAP_DAC_OVERRIDE. این به کاربر اجازه می‌دهد تا با MTA exim ایمیل ارسال کند.

اجرای smartd در حالت "اشکال‌زدایی" (debug). در این حالت، اطلاعات وضعیت به جای ثبت در SYSLOG در خروجی استاندارد (STDOUT) نمایش داده می‌شود و برنامه به پس‌زمینه انشعاب (fork(2)) پیدا نکرده و از ترمینال کنترل‌کننده جدا نمی‌شود. در این حالت، smartd همچنین اطلاعات با جزئیات بیشتری نسبت به اجرای در حالت "دیمن" درباره کارهایی که انجام می‌دهد چاپ می‌کند. در این حالت، سیگنال INT (که معمولاً با CONTROL-C از یک ترمینال تولید می‌شود) باعث می‌شود smartd فایل پیکربندی خود را دوباره بارگذاری کند. لطفاً برای خروج از CONTROL-\ استفاده کنید.
چاپ فهرستی (در STDOUT) از تمام دستورالعمل‌های ممکنی که ممکن است در فایل پیکربندی /etc/smartd.conf ظاهر شوند، و سپس خروج. این دستورالعمل‌ها در صفحه راهنمای smartd.conf(5) توضیح داده شده‌اند. آن‌ها ممکن است در فایل پیکربندی پس از نام دستگاه بیایند.
چاپ پیام نحوه استفاده در خروجی استاندارد و خروج.
تنظیم فاصله بین بررسی‌های دیسک به N ثانیه، که در آن N یک عدد صحیح ده‌دهی است. کمترین مقدار مجاز ۱۰ و بیشترین مقدار بزرگ‌ترین عدد صحیح مثبتی است که می‌تواند در سیستم شما نمایش داده شود (اغلب 2^31-1). مقدار پیش‌فرض ۱۸۰۰ ثانیه است. فاصله زمانی می‌تواند با دستورالعمل '-c i=N' بازنویسی شود، به صفحه راهنمای smartd.conf(5) مراجعه فرمایید.

توجه داشته باشید که کاربر ارشد (superuser) می‌تواند با ارسال سیگنال SIGUSR1 به smartd در هر زمان وضعیت دیسک‌ها را بررسی کند، به عنوان مثال با دستور:
kill -SIGUSR1 <pid>
که در آن <pid> شماره شناسه فرآیند smartd است. همچنین می‌توان از:
killall -USR1 smartd
برای همین منظور استفاده کرد.

استفاده از تسهیلات سیستمی (syslog facility) FACILITY برای ثبت پیام‌های smartd. در اینجا FACILITY یکی از مقادیر local0، local1، local7 یا daemon [پیش‌فرض] است. اگر از این گزینه خط فرمان استفاده نشود، پیام‌های smartd به طور پیش‌فرض در تسهیلات daemon ثبت می‌شوند.

اگر مایلید پیام‌های smartd در محلی غیر از محل پیش‌فرض ثبت شوند، به عنوان مثال '-l local3' را در فهرست آرگومان‌های راه‌اندازی آن بگنجانید. به دیمن syslog بگویید که تمام پیام‌های تسهیلات local3 را (برای مثال) در '/var/log/smartd.log' ثبت کند.

برای اطلاعات دقیق‌تر، لطفاً به صفحات راهنمای دیمن محلی syslog، معمولاً syslogd(8)، syslog-ng(8) یا rsyslogd(8) مراجعه کنید.

عدم انشعاب به پس‌زمینه؛ این مورد زمان اجرا از طریق شیوه‌های مدرن init مانند initng، minit، supervise یا systemd سودمند است.
نوشتن pidfile با نام NAME حاوی شماره شناسه فرآیند (PID) برنامه smartd. برای جلوگیری از حملات پیوند نمادین (symlink attacks)، مطمئن شوید دایرکتوری‌ای که pidfile در آن نوشته می‌شود فقط برای root قابل نوشتن باشد. بدون این گزینه، یا اگر گزینه --debug داده شود، در زمان راه‌اندازی هیچ فایل PID نوشته نمی‌شود. اگر smartd با یک سیگنال ماسک‌پذیر (maskable) کشته شود، فایل PID حذف خواهد شد.
مشخص می‌کند که smartd در صورت لزوم، در چه زمانی باید خارج شود. آرگومان‌های معتبر برای این گزینه عبارتند از:

nodev - خروج در صورتی که هیچ دستگاهی برای پایش وجود نداشته باشد، یا اگر در زمان راه‌اندازی هرگونه خطایی در فایل پیکربندی یافت شود. این حالت پیش‌فرض است.

errors - خروج در صورتی که هیچ دستگاهی برای پایش وجود نداشته باشد، یا اگر در زمان راه‌اندازی یا هر بار بازخوانی فایل پیکربندی /etc/smartd.conf خطایی یافت شود.

nodevstartup - خروج در صورتی که در زمان راه‌اندازی هیچ دستگاهی برای پایش وجود نداشته باشد. اما اگر در هنگام بازخوانی فایل پیکربندی دستگاهی یافت نشد، به اجرای خود ادامه دهد.

never - فقط در صورتی خارج شود که خطای مهلکی رخ دهد (نبود حافظه باقی‌مانده در سیستم، آرگومان‌های خط فرمان نامعتبر). در این حالت، حتی اگر هیچ دستگاهی برای پایش نباشد، یا اگر فایل پیکربندی /etc/smartd.conf دارای خطا باشد، smartd به اجرای خود ادامه داده و منتظر بارگذاری یک فایل پیکربندی شامل دستگاه‌های معتبر می‌ماند.

nodev0 - مشابه 'nodev'، با این تفاوت که اگر دستگاهی برای پایش وجود نداشته باشد، وضعیت خروج ۰ خواهد بود.

nodev0startup - مشابه 'nodevstartup'، با این تفاوت که اگر دستگاهی برای پایش وجود نداشته باشد، وضعیت خروج ۰ خواهد بود.

errors,nodev0 - مشابه 'errors'، با این تفاوت که اگر دستگاهی برای پایش وجود نداشته باشد، وضعیت خروج ۰ خواهد بود.

onecheck - اجرای smartd در حالت اشکال‌زدایی، سپس ثبت دستگاه‌ها، سپس یک‌بار بررسی وضعیت SMART دستگاه، و خروج با وضعیت صفر در صورتی که تمام این مراحل به درستی عمل کنند.

این گزینه آخر برای توسعه‌دهندگان توزیع‌ها در نظر گرفته شده که می‌خواهند اسکریپت‌های خودکاری ایجاد کنند تا مشخص شود آیا پس از نصب smartmontools باید smartd را به طور خودکار راه‌اندازی کرد یا خیر. پس از شروع smartd با این گزینه خط فرمان، اسکریپت‌های نصب توزیع باید مدت زمان معقولی (مثلاً ۱۰ ثانیه) منتظر بمانند. اگر smartd تا آن زمان با وضعیت صفر خارج نشد، اسکریپت باید یک SIGTERM یا SIGKILL به smartd ارسال کرده و فرض کند که smartd روی این میزبان به درستی کار نخواهد کرد. برعکس، اگر smartd با وضعیت صفر خارج شود، اجرای smartd در حالت عادی دیمن ایمن است. اگر smartd قادر به پایش هیچ دستگاهی نباشد یا با مشکلات دیگری مواجه شود، با وضعیت خروج غیرصفر بازخواهد گشت.

showtests - اجرای smartd در حالت اشکال‌زدایی، سپس ثبت دستگاه‌ها، سپس نوشتن فهرستی از خودآزمایی‌های زمان‌بندی‌شده آینده در خروجی استاندارد (stdout)، و در نهایت خروج با وضعیت صفر در صورت کارکرد صحیح تمام مراحل. وضعیت SMART دستگاه در این حالت بررسی نمی‌شود.

این گزینه برای آزمایش این نکته در نظر گرفته شده که آیا دستورالعمل‌های '-s REGEX' در smartd.conf اثر مطلوب را خواهند داشت یا خیر. خروجی زمان‌بندی آزمون‌های بعدی را فهرست می‌کند که به ۵ آزمون برای هر نوع و هر دستگاه محدود می‌شود. پس از این، خلاصه‌ای از تمام آزمون‌های هر دستگاه در طول ۹۰ روز آینده ارائه می‌گردد.

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

ioctl - گزارش تمام تراکنش‌های ioctl().

ataioctl - فقط گزارش تراکنش‌های ioctl() با دستگاه‌های ATA.

scsiioctl - فقط گزارش تراکنش‌های ioctl() با دستگاه‌های SCSI.

nvmeioctl - فقط گزارش تراکنش‌های ioctl() با دستگاه‌های NVMe.

هر آرگومان می‌تواند شامل یک عدد صحیح مثبت برای تعیین سطح جزئیات گزارش‌شده باشد. آرگومان باید با یک کاما و سپس عدد صحیح بدون فاصله دنبال شود؛ برای مثال: ataioctl,2. سطح پیش‌فرض ۱ است، بنابراین '-r ataioctl,1' و '-r ataioctl' معادل یکدیگرند.

خواندن/نوشتن اطلاعات وضعیت smartd از/به فایل‌های
'PREFIX''MODEL-SERIAL[-NSID].PRT.state'.
برای PREFIX، MODEL، SERIAL، NSID و PRT، گزینه '-A' در بالا را ببینید.

فایل‌های اطلاعات وضعیت، داده‌های گوناگون را در طول بازراه‌اندازی‌های smartd حفظ می‌کنند؛ برای مثال: ویژگی‌های SMART، حداقل و حداکثر دمای درایو (دستورالعمل '-W')، اطلاعات آخرین ایمیل هشدار ارسالی (دستورالعمل '-m')، زمان بررسی بعدی REGEXP خودآزمایی (دستورالعمل '-s') و اطلاعات مربوط به آخرین ورودی‌های لاگ خطای گزارش‌شده (دستورالعمل‌های '-l [x]error').

فایل‌های اطلاعات وضعیت در زمان راه‌اندازی smartd خوانده می‌شوند. این فایل‌ها همیشه پس از خواندن فایل پیکربندی، قبل از بازخوانی مجدد فایل پیکربندی (SIGHUP)، قبل از خاموش شدن smartd و پس از یک بررسی اجباری توسط SIGUSR1 (باز)نوشته می‌شوند. پس از یک چرخه بررسی عادی، فایل تنها در صورتی بازنویسی می‌شود که تغییر مهمی (که معمولاً به خروجی SYSLOG منجر می‌شود) رخ داده باشد.

اجرای فایل اجرایی PATH به جای اسکریپت پیش‌فرض در زمانی که smartd نیاز به ارسال پیام‌های هشدار دارد. PATH باید به یک فایل باینری اجرایی یا یک اسکریپت اشاره کند. اسکریپت پیش‌فرض عبارت است از: /usr/share/smartmontools/smartd_warning.sh.
اجرای اسکریپت هشدار به عنوان یک کاربر فاقد امتیاز به جای root. مقادیر USER و GROUP اختیاری ممکن است به صورت شناسه‌های عددی یا نام‌ها مشخص شوند. اگر هیچ گروهی (GROUP) مشخص نشود، گروه پیش‌فرض USER به جای آن استفاده می‌شود.

در صورت وقوع هشدار، یک فرآیند فرزند با fork(2) ایجاد می‌شود. این فرآیند تمام توصیف‌کننده‌های فایل موروثی را می‌بندد، ورودی/خروجی استاندارد را به /dev/null متصل می‌کند، شناسه‌های کاربر و گروه را تغییر می‌دهد، هرگونه شناسه‌های گروه تکمیلی را حذف می‌کند و سپس تابع popen(3) از کتابخانه استاندارد را فرامی‌خواند.

اگر '0:0' مشخص شده باشد، کاربر و گروه تغییر نمی‌کنند، اما سایر اقدامات همچنان اعمال می‌شوند.

اگر '-' مشخص شده باشد، popen(3) به طور مستقیم فراخوانی می‌شود. این حالت پیش‌فرض است.

چاپ اطلاعات نسخه، حق نشر، مجوز، صفحه اصلی و ویرایش SVN مربوط به این نسخه از smartd در خروجی استاندارد (STDOUT) و سپس خروج.

smartd
دیمن را در حالت انشعاب‌یافته (forked) اجرا می‌کند. این شیوه معمول اجرای smartd است. ورودی‌ها در SYSLOG ثبت می‌شوند.

smartd -d -i 30
اجرا در حالت پیش‌زمینه (اشکال‌زدایی)، با بررسی وضعیت دیسک در هر ۳۰ ثانیه.

smartd -q onecheck
دستگاه‌ها را ثبت کرده و وضعیت دستگاه‌ها را دقیقاً یک بار بررسی می‌کند. در صورت انجام موفق تمام مراحل، وضعیت خروج (متغیر $? در پوسته) صفر خواهد بود، و در صورتی که هیچ دستگاهی شناسایی نشود یا مشکل دیگری رخ دهد، غیرصفر خواهد بود.

نحوه نگارش فایل smartd.conf(5) به طور جداگانه بررسی شده است.

برنامه smartd اگر مقادیر نرمال‌شده ویژگی‌های SMART بر اساس گزارش دستورالعمل‌های '-t'، '-p' یا '-u' تغییر کرده باشد، ورودی‌های لاگ را در سطح لاگ LOG_INFO ثبت خواهد کرد. به عنوان مثال:
'Device: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93'
توجه داشته باشید که در این پیام، مقدار داده‌شده مقدار ویژگی «نرمال‌شده» (Normalized) است نه مقدار «خام» (Raw) (دمای دیسک در این حالت حدود ۲۲ درجه سانتی‌گراد است). دستورالعمل‌های '-R' و '-r' این رفتار را تغییر می‌دهند تا اطلاعات همراه با مقادیر خام نیز چاپ شوند، به عنوان مثال:
'Device: /dev/sda, SMART Attribute: 194 Temperature_Celsius changed from 94 [Raw 22] to 93 [Raw 23]'
در اینجا مقادیر خام دمای واقعی دیسک بر حسب سانتی‌گراد هستند. نحوه چاپ مقادیر خام و نام‌هایی که ویژگی‌ها تحت آن گزارش می‌شوند، توسط دستورالعمل‌های مختلف '-v Num,Description' که قبلاً شرح داده شد تعیین می‌گردد.

لطفاً برای توضیحات بیشتر درباره تفاوت‌های میان مقادیر نرمال‌شده و مقادیر خام ویژگی‌ها، به صفحه راهنمای smartctl مراجعه کنید.

برنامه smartd اگر یکی از ویژگی‌های SMART دچار شکست یا خرابی شده باشد، ورودی‌های لاگ را در سطح لاگ LOG_CRIT ثبت خواهد کرد، به عنوان مثال:
'Device: /dev/sdc, Failed SMART Attribute: 5 Reallocated_Sector_Ct'
این سطح لاگ برای گزارش‌دهی فعال‌شده توسط دستورالعمل‌های '-H'، '-f'، '-l selftest' و '-l error' استفاده می‌شود. ورودی‌هایی که خرابی ویژگی‌های پیش‌خرابی (Prefailure) در SMART را گزارش می‌دهند نباید نادیده گرفته شوند: این‌ها به این معنا هستند که دیسک در حال خراب شدن است. برای بررسی دقیق‌تر از ابزار smartctl استفاده کنید.

هنگامی که smartd ورودی‌های لاگ را ثبت می‌کند، برچسب زمانی به آن‌ها اختصاص می‌دهد. برچسب‌های زمانی در منطقه زمانی محلی رایانه هستند که عموماً یا با استفاده از متغیر محیطی 'TZ' یا با استفاده از یک فایل منطقه زمانی مانند /etc/localtime تنظیم می‌شود. ممکن است بخواهید در حین اجرای smartd منطقه زمانی را تغییر دهید (مثلاً اگر لپ‌تاپ را به منطقه زمانی جدیدی ببرید و آن را بازراه‌اندازی نکنید). به دلیل وجود یک باگ در تابع tzset(3) بسیاری از کتابخانه‌های استاندارد C یونیکس، ممکن است برچسب‌های منطقه زمانی smartd تغییر نکنند. برای برخی سیستم‌ها، smartd این مشکل را در صورتی که منطقه زمانی با استفاده از /etc/localtime تنظیم شده باشد دور خواهد زد. اگر منطقه زمانی با استفاده از متغیر 'TZ' (یا فایلی که به آن اشاره می‌کند) تنظیم شده باشد، این راهکار دور زدن مشکل با شکست مواجه می‌شود.

وضعیت خروج (مقدار بازگشتی) برنامه smartd می‌تواند مقادیر زیر را داشته باشد:

0:
راه‌اندازی موفقیت‌آمیز دیمن، یا کشته شدن smartd توسط SIGTERM (یا در حالت اشکال‌زدایی، توسط SIGQUIT).
1:
خط فرمان تجزیه نشد (خطای تحلیل دستورات).
2:
یک خطای نگارشی (syntax error) در فایل پیکربندی وجود داشت.
3:
انشعاب (forking) دیمن با شکست مواجه شد.
4:
امکان ایجاد فایل PID وجود نداشت.
5:
فایل پیکربندی وجود ندارد (تنها همراه با گزینه '-c' بازگردانده می‌شود).
6:
فایل پیکربندی وجود دارد، اما قابل خواندن نیست.
8:
حافظه smartd در زمان راه‌اندازی به اتمام رسید.
10:
یک ناهماهنگی در ساختارهای داده داخلی smartd یافت شد. این مورد هرگز نباید رخ دهد و ناشی از باگ در کدنویسی یا کامپایلر است. لطفاً چنین خطاهایی را به توسعه‌دهندگان smartmontools گزارش دهید؛ بخش «گزارش باگ‌ها» در زیر را ببینید.
16:
دستگاهی که صریحاً در /etc/smartd.conf فهرست شده است، قابل پایش نیست.
17:
برنامه smartd هیچ دستگاهی برای پایش نیافت. این مقدار می‌تواند با یکی از گزینه‌های '-q *nodev0*' به 0 (موفقیت) تغییر یابد، در بالا ببینید.
254:
در حالت دیمن، smartd یک سیگنال SIGINT یا SIGQUIT دریافت کرد. (توجه داشته باشید که در حالت اشکال‌زدایی، SIGINT همان اثر SIGHUP را دارد و باعث بارگذاری مجدد فایل پیکربندی توسط smartd می‌شود. SIGQUIT همان اثر SIGTERM را دارد و باعث خروج smartd با وضعیت صفر می‌شود).
132 و بالاتر
برنامه smartd توسط سیگنالی که صریحاً در بالا ذکر نشده کشته شده است. وضعیت خروج در این حالت برابر ۱۲۸ به علاوه شماره سیگنال خواهد بود. برای مثال اگر smartd توسط SIGKILL (سیگنال ۹) کشته شود، وضعیت خروج ۱۳۷ خواهد بود.

/usr/bin/smartd
مسیر کامل این فایل اجرایی.
/etc/smartd.conf
فایل پیکربندی (صفحه راهنمای smartd.conf(5) را ببینید).
/usr/share/smartmontools/smartd_warning.sh
اسکریپتی که هنگام بروز هشدارها اجرا می‌شود (گزینه '-w' در بالا و دستورالعمل '-M exec' در صفحه راهنمای smartd.conf(5) را ببینید).
/usr/share/smartmontools/smartd_warning.d/
دایرکتوری افزونه‌ها برای اسکریپت هشدار smartd (دستورالعمل '-m' در صفحه راهنمای smartd.conf(5) را ببینید).
/usr/share/smartmontools/drivedb.h
پایگاه‌داده درایو (گزینه '-B' را ببینید).
/etc/smart_drivedb.h
پایگاه‌داده محلی اختیاری درایو (گزینه '-B' را ببینید).

Bruce Allen (بنیان‌گذار پروژه)،
Christian Franke (مدیر پروژه، پورت ویندوز و وظایف دیگر)،
Douglas Gilbert (زیرسیستم SCSI)،
Volker Kuhlmann (مدیر فهرست پستی پشتیبانی و پایگاه‌داده)،
Gabriele Pohl (پشتیبانی ویکی و تیم توسعه)،
Alex Samorukov (پورت FreeBSD و موارد دیگر، ویکی جدید Trac).

بسیاری از افراد دیگر مشارکت‌ها و اصلاحاتی انجام داده‌اند؛ فایل‌های AUTHORS، ChangeLog و فایل‌های مخزن را ببینید.

نخستین کدهای smartmontools از بسته smartsuite، نوشته شده توسط Michael Cornwell و Andre Hedrick مشتق شده بود.

برای ارسال گزارش باگ، در ویکی smartmontools یک تیکت ثبت کنید:
https://www.smartmontools.org.
یا اطلاعات را به فهرست پستی پشتیبانی smartmontools بفرستید:
<https://listi.jpberlin.de/mailman/listinfo/smartmontools-support>.

smartd.conf(5)، smartctl(8).
update-smart-drivedb(8).
systemd.exec(5).

لطفاً برای اطلاعات بیشتر به وب‌سایت زیر مراجعه فرمایید: https://www.smartmontools.org

یک مقاله مقدماتی درباره smartmontools مقاله Monitoring Hard Disks with SMART، نوشته Bruce Allen در Linux Journal، ژانویه ۲۰۰۴، صفحات ۷۴–۷۷ است. ببینید: https://www.linuxjournal.com/article/6983.

اگر مایلید چگونگی عملکرد SMART و وظایف آن را بهتر درک کنید، نقطه شروع مناسب بخش‌های ۴.۸ و ۶.۵۴ از جلد اول مشخصات 'AT Attachment with Packet Interface-7' (ATA/ATAPI-7) نسخه 4b است. این بخش کارکرد SMART را که ابزارهای smartmontools امکان دسترسی به آن را فراهم می‌آورند مستند می‌کند.

عملکرد SMART در ابتدا با مشخصات SFF-8035i ویرایش ۲ و SFF-8055i ویرایش ۱.۴ تعریف شد. این‌ها نشریات کمیته Small Form Factors (SFF) هستند.

پیوندهای مربوط به این اسناد و سایر مدارک را می‌توان در صفحه پیوندهای ویکی smartmontools در https://www.smartmontools.org/wiki/Links یافت.

smartmontools-7.5 2025-04-30 r5714
$Id: smartd.8.in 5693 2025-04-22 12:00:11Z chrfranke $

2025-04-30 smartmontools-7.5