У меня есть только пользователь SFTP, и я хочу, чтобы он мог видеть доступное пространство.
Я хочу сделать cron
, который запускается каждые 30 минут, чтобы удалить старый файл и поместить новый файл, чтобы показать свободное место на диске.
Я мог бы просто поставить df -h > df.txt
, но я не хочу этого делать. Я хочу пустой файл с именем файла, например: 3.1G.available
, а затем в сценарии оболочки удалите *.available
и создайте новый файл, который запускается cron.
Спасибо заранее.
Давайте начнем с команды 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
Вот и все!
Другой способ
touch `df -h --output='avail' / | tail -1`.available