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

0

Eu tenho apenas um usuário SFTP e quero que ele consiga ver o espaço disponível.

Eu quero fazer um cron que seja executado a cada 30 minutos, para excluir o arquivo antigo e colocar o novo arquivo para mostrar espaço livre em disco.

Eu poderia colocar apenas df -h > df.txt , mas não quero fazer isso. Eu quero um arquivo vazio, com o nome do arquivo como: 3.1G.available e, em seguida, no script de shell excluir *.available e criar o novo arquivo - que é executado pelo cron.

Obrigado antecipadamente.

    
por JemoeE 07.02.2014 / 17:10

2 respostas

1

Vamos começar com o comando df , usando a opção -h para usar o tamanho em formato legível (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 usar grep para restringir a saída desse comando para apenas a partição que nos interessa - sda1

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

Parece bom. Vamos continuar limitando-a apenas à coluna "Disponível", usando awk

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

Isso vai funcionar. Agora vamos envolver nosso comando em backticks, então a saída é retornada ao shell. Então usaremos o comando touch para criar um arquivo vazio usando a saída do comando que criamos, junto com a string '.available'

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

Lá vai você!

    
por Bert 07.02.2014 / 17:38
0

Outra maneira

touch 'df -h --output='avail' / | tail -1'.available
    
por user.dz 07.02.2014 / 17:48