Conky: إضافة وحدة جديدة لمراقبة SMART

تم إنشاؤها على ٢٩ مايو ٢٠١٧  ·  3تعليقات  ·  مصدر: brndnmtthws/conky

أفكر في إنشاء وحدة جديدة لمراقبة قرص SMART. بقدر ما أستطيع أن أقول ، هناك ثلاثة خيارات لتنفيذ ذلك:

  • استدعاء smartctl (smartmontools)
  • ربط libatasmart
  • ربط udisks باستخدام اتصالات DBUS

أفضل استخدام libatasmart لأن هذا سيضيف دعمًا محليًا مع تبعية إضافية واحدة فقط.

لا أحد يعرف ما إذا كان من الممكن استخدام libatasmart دون امتيازات الجذر؟

enhancement

التعليق الأكثر فائدة

تضمين التغريدة لا استطيع الانتظار لرؤية هذا التنفيذ. : تصرخ:

ال 3 كومينتر

libatasmart

#include <stdio.h>
#include <string.h>
#include <errno.h>

#include <atasmart.h>

int main(void) {
  uint64_t mkelvin = 0;
  const char *device = "/dev/sda";
  SkDisk *d = NULL;

  if (-1 == (sk_disk_open(device, &d))) {
    fprintf(stderr, "Failed to open disk %s: %s\n", device, strerror(errno));
    return 1;
  }

  if (-1 == (sk_disk_smart_read_data(d))) {
    fprintf(stderr, "Failed to read SMART data: %s\n", strerror(errno));
    goto finish;
  }

  if (-1 == (sk_disk_smart_get_temperature(d, &mkelvin))) {
    fprintf(stderr, "Failed to get temperature: %s\n", strerror(errno));
    goto finish;
  }

  printf("%llu\n", (unsigned long long)mkelvin);

finish:
  if (NULL != d) {
    sk_disk_free(d);
  }
  return 0;
}

smartmontools متاحة عبر الأنظمة الأساسية وستستفيد منها أيضًا نكهات BSD.

أولئك مثلي الذين لا يستخدمون init systemd سيضطرون إلى تثبيت تبعيات إضافية.

لا أحد يعرف ما إذا كان من الممكن استخدام libatasmart دون امتيازات الجذر؟

visudo

computer_name ALL=NOPASSWD:/usr/bin/program_name

تضمين التغريدة لا استطيع الانتظار لرؤية هذا التنفيذ. : تصرخ:

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات