conky의 디렉토리 크기

conky의 디렉토리 크기

Conky는 시스템 모니터링 소프트웨어입니다. /usr 및 /var의 디렉토리 크기를 표시하고 싶습니다. 아쉽게도 conky 명령을 찾지 못해 직접 만들었습니다.

/usr $alignr${exec du -sch /usr | head -n1 | awk '{print $1}'}
/var $alignr${exec du -sch /var | head -n1 | awk '{print $1}'}

내 /usr 디렉토리에서는 예상대로 작동합니다. /var 디렉토리에 대한 동일한 명령이 내 syslog를 엉망으로 만들었습니다.

#cat /var/log/syslog | tail -n 8
Oct 27 15:17:31 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/systemd-private-3f1797004e2e4fceacc1baad91af9e67-cups.service-LhZ0Wi“ kann nicht gelesen werden: Keine Berechtigung
Oct 27 15:17:31 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/pulse-PKdhtXMmr18n“ kann nicht gelesen werden: Keine Berechtigung
Oct 27 15:17:32 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/.xrdp/xrdp-sesman-yqTUiU“ kann nicht gelesen werden: Keine Berechtigung
Oct 27 15:17:32 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/.xrdp/xrdp-5M2L0E“ kann nicht gelesen werden: Keine Berechtigung
Oct 27 15:17:32 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/systemd-private-3f1797004e2e4fceacc1baad91af9e67-colord.service-3EtIBW“ kann nicht gelesen werden: Keine Berechtigung
Oct 27 15:17:32 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/systemd-private-3f1797004e2e4fceacc1baad91af9e67-rtkit-daemon.service-TgoTcd“ kann nicht gelesen werden: Keine Berechtigung
Oct 27 15:17:32 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/systemd-private-3f1797004e2e4fceacc1baad91af9e67-cups.service-LhZ0Wi“ kann nicht gelesen werden: Keine Berechtigung
Oct 27 15:17:32 Hans gnome-session[1155]: du: das Verzeichnis „/tmp/pulse-PKdhtXMmr18n“ kann nicht gelesen werden: Keine Berechtigung

문제는 du 명령을 실행하려면 슈퍼유저 권한이 필요하다는 것입니다. 루트가 아닌 사용자의 경우 권한 문제 없이 /var 디렉토리의 디렉토리 크기를 얻을 수 있는 다른 방법이 있습니까?

데비안 8.2(제시) | 리눅스 3.16.0 그놈 쉘 3.14.4 |

답변1

sudo du /var예, 사용자에게 비밀번호 없이 실행할 수 있는 권한을 부여할 수 있습니다. 방법은 나중에 설명하겠습니다. 그러나 당신은진짜이것을 원하십니까? du루트 액세스가 필요한 파일과 하위 디렉터리는 거의 없습니다. sudo du /var와 사이에 보고된 크기 차이는 du /var매우 작습니다(적어도 내 시스템에서는).

$ sudo du -s /var/
1830596 /var/
$  du -s /var/
1826040 /var/

모두 정확히 동일한 수의 기가바이트로 해석됩니다.

$ sudo du -hs /var
1.8G    /var
$ du -hs /var
1.8G /var

그렇다면 이렇게 작은 차이가 정말 가치가 있을까요? 제 생각에는 더 간단한 해결책은 다음 주소로 오류 메시지를 보내 무시하는 것입니다 /dev/null.

/var $alignr${exec du -sh /var 2>/dev/null | awk '{print $1}'}

이 옵션은 총계를 인쇄하는 옵션을 head사용하기 때문에 필요하므로 제거했습니다 .-c

상당히 무겁고 몇 초마다 실행해야 할지 의심스럽기 때문에 명령에 1분에 한 번만 실행하도록 du지시할 수도 있습니다 .conky

/var $alignr${execi 60  du -sh /var 2>/dev/null | awk '{print $1}'}

정확한 크기가 정말로 필요하다고 생각되면 다음 줄을 /var실행 하고 추가하세요.sudo visudo

schmiddl ALL=NOPASSWD:/usr/bin/du -ch /var

파일을 저장한 후 사용자는 비밀번호 없이 실행할 수 있는 schmiddl권한을 갖게 되므로 이를 다음 항목에 추가할 수 있습니다 .sudo du -ch /var.conokyrc

/var $alignr${execi 60  sudo du -sh /var | awk '{print $1}'}

관련 정보