¿Cómo poner espacio disponible en disco en el nombre del archivo?

¿Cómo poner espacio disponible en disco en el nombre del archivo?

Solo tengo un usuario SFTP y quiero que pueda ver el espacio disponible.

Quiero hacer un cronarchivo que se ejecute cada 30 minutos, para eliminar el archivo antiguo y colocar el archivo nuevo para mostrar el espacio libre en el disco.

Podría simplemente poner df -h > df.txt, pero no quiero hacer eso. Quiero un archivo vacío, con un nombre de archivo como:, 3.1G.availabley luego, en el script de Shell, eliminar *.availabley crear el nuevo archivo, que se ejecuta mediante cron.

Gracias de antemano.

Respuesta1

Comencemos con el dfcomando, usando la -hopción para dar uso al tamaño en formato legible por humanos (gigabytes en este caso)

$ 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

Ahora usemos greppara limitar la salida de ese comando solo a la partición que nos interesa:sda1

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

Se ve bien. Sigamos reduciéndolo solo a la columna 'Disponible', usandoawk

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

Que funcionará. Ahora incluiremos nuestro comando entre comillas invertidas, para que la salida se devuelva al shell. Luego usaremos el touchcomando para crear un archivo vacío usando el resultado del comando que hemos creado, junto con la cadena '.available'

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

¡Ahí tienes!

Respuesta2

De otra manera

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

información relacionada