我只有一个 SFTP 用户,我希望它能够看到可用空间。
我想cron
每 30 分钟运行一次,删除旧文件并放置新文件以显示可用磁盘空间。
我可以只输入df -h > df.txt
,但我不想这样做。我想要一个空文件,文件名类似:3.1G.available
,然后在 shell 脚本中删除*.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
这会起作用。现在我们将命令包装在反引号中,这样输出就会返回到 shell。然后我们将使用该touch
命令创建一个空文件,该文件使用我们构建的命令的输出以及字符串“.available”
$ touch `df -h | grep 'sda1' | awk '{print $4}'`.available
$ ls
213G.available
就这样!
答案2
其他方式
touch `df -h --output='avail' / | tail -1`.available