Как получить доступное дисковое пространство в имя файла?

У меня есть только пользователь SFTP, и я хочу, чтобы он мог видеть доступное пространство.

Я хочу сделать cron, который запускается каждые 30 минут, чтобы удалить старый файл и поместить новый файл, чтобы показать свободное место на диске.

Я мог бы просто поставить df -h > df.txt, но я не хочу этого делать. Я хочу пустой файл с именем файла, например: 3.1G.available, а затем в сценарии оболочки удалите *.available и создайте новый файл, который запускается cron.

Спасибо заранее.

0
задан 7 February 2014 в 20:47

2 ответа

Давайте начнем с команды 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

Вот и все!

0
ответ дан 7 February 2014 в 20:47

Другой способ

touch `df -h --output='avail' / | tail -1`.available
0
ответ дан 7 February 2014 в 20:47

Другие вопросы по тегам:

Похожие вопросы: