Como colocar espaço em disco disponível no nome do arquivo?

Como colocar espaço em disco disponível no nome do arquivo?

Tenho apenas um usuário SFTP e quero que ele veja o espaço disponível.

Quero fazer um cronque rode a cada 30 minutos, para deletar o arquivo antigo e colocar o novo arquivo para mostrar espaço livre em disco.

Eu poderia simplesmente colocar df -h > df.txt, mas não quero fazer isso. Quero um arquivo vazio, com o nome do arquivo: 3.1G.availablee, em seguida, no shell script, exclua *.availablee crie o novo arquivo - que é executado pelo cron.

Desde já, obrigado.

Responder1

Vamos começar com o dfcomando, usando a -hopção de usar o tamanho em formato legível por humanos (gigabytes neste 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

Agora vamos greprestringir a saída desse comando apenas à partição que nos interessa -sda1

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

Parece bom. Vamos continuar restringindo apenas a coluna 'Disponível', usandoawk

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

Isso vai funcionar. Agora vamos agrupar nosso comando em crases, para que a saída seja retornada ao shell. Em seguida, usaremos o touchcomando para criar um arquivo vazio usando a saída do comando que construímos, junto com a string '.available'

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

Ai está!

Responder2

Outra maneira

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

informação relacionada