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}'}