
Tenho apenas um usuário SFTP e quero que ele veja o espaço disponível.
Quero fazer um cron
que 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.available
e, em seguida, no shell script, exclua *.available
e crie o novo arquivo - que é executado pelo cron.
Desde já, obrigado.
Responder1
Vamos começar com o df
comando, usando a -h
opçã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 grep
restringir 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 touch
comando 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