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コマンドを実行するにはスーパーユーザー権限が必要であることです。 root以外のユーザーの場合、権限の問題なしに/ varディレクトリのディレクトリサイズを取得する他の方法はありますか?

Debian 8.2(提示)| Linux 3.16.0 GNOMEシェル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分に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}'}

関連情報