
SFTP ユーザーのみを所有しており、使用可能なスペースを確認できるようにしたいと考えています。
cron
30 分ごとに実行して、古いファイルを削除し、新しいファイルを配置して空きディスク容量を表示する を作成したいと思います。
と入力するだけでもかまいません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