使用可能なディスク容量をファイル名に入れるにはどうすればいいですか?

使用可能なディスク容量をファイル名に入れるにはどうすればいいですか?

SFTP ユーザーのみを所有しており、使用可能なスペースを確認できるようにしたいと考えています。

cron30 分ごとに実行して、古いファイルを削除し、新しいファイルを配置して空きディスク容量を表示する を作成したいと思います。

と入力するだけでもかまいませんdf -h > df.txtが、そうしたくはありません。 のようなファイル名の空のファイルを作成し3.1G.available、シェル スクリプトでそのファイルを削除し*.availableて新しいファイルを作成します。これは cron によって実行されます。

前もって感謝します。

答え1

まずは、サイズを人間が読める形式(この場合はギガバイト)で指定するオプションをdf使用してコマンドを実行してみましょう。-h

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       226G  2.4G  213G   2% /
udev            1.7G  4.0K  1.7G   1% /dev
tmpfs           691M  324K  690M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.7G     0  1.7G   0% /run/shm

ここで、grepこのコマンドの出力を、必要なパーティションのみに絞り込むために、sda1

$ df -h | grep 'sda1'
/dev/sda1       226G  2.4G  213G   2% /

よさそうです。「利用可能」列のみに絞り込みを続けましょう。awk

$ df -h | grep 'sda1' | awk '{print $4}'
213G

これでうまくいきます。今度はコマンドをバッククォートで囲み、出力がシェルに返されるようにします。次に、touchコマンドを使用して、構築したコマンドの出力と文字列「.available」を使用して空のファイルを作成します。

$ touch `df -h | grep 'sda1' | awk '{print $4}'`.available
$ ls
213G.available

そうですよ!

答え2

別の方法

touch `df -h --output='avail' / | tail -1`.available

関連情報