サーバーからファイルシステム使用量を取得するには、次のコマンドがあります。
df -k | awk '{print $5 " " $6}' | grep %
実行後の結果は次のとおりです。
97% /
0% /proc
0% /etc/mnttab
0% /dev/fd
46% /var
1% /var/run
1% /tmp
54% /opt/app/oracle
22% /opt/app/proviso
私の質問は、埋め込まれた行を消去するにはどうすればよいですか97% /
?
答え1
次のコマンドを使用してフィルタリングしてクリーンアップできますawk
。
df -k | awk '/%/ && NR > 2 {print $5 " " $6}'
/%/
そして同じことをしていますgrep %
。
NR > 2
ラベルと線をフィルタリングします/
。
答え2
tail を使用して最初の行を削除できます。
df -k | awk '{print $5 " " $6}' | grep % | tail --lines +2
+2
2行目から始まるすべての行を印刷したいことを示します。
答え3
df
次のように返すまでは問題ありません。
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-lv_root
367G 246G 103G 71% /
tmpfs 48G 0 48G 0% /dev/shm
これは明らかにスクリプト/コマンドを破るでしょう。だから私はあなたに提案します常にスクリプトのコマンド-P
にキーを適用するdf
。
元の質問に関連する単純な正規表現を使用してこれを行います。
df -Ph |awk '{if($6 ~ /^\/.+/) print $5, $6}'