Equivalente do comando "df -t" do Solaris no Linux?

0

O comando df -t no Linux não exibe o número de arquivos como ocorre no Solaris. Existe algum comando equivalente no Linux?

Meu script é assim

for i in /opt/aa /opt/aa/data /opt/aa/bb; do echo -n "$i "; df -t $i | awk ' { if ( NR==1) F=$(NF-1) ; if ( NR==2) print $(NF-1) - F }'; done

Saída:

/opt/aa 397375
/opt/aa/data 24134317
/opt/aa/bb/oracle 529

Eu posso ver o número de arquivos nos respectivos sistemas de arquivos Eu precisaria de comando semelhante para o Linux, este comando acima está funcionando bem com solaris?

    
por Techy 12.02.2014 / 12:13

2 respostas

2

Seu comando analisa df -t output para calcular o número de inodes usados, ou seja, aproximadamente o número de arquivos que foram criados no sistema de arquivos que contém esse diretório.

O Solaris reporta apenas os inodes totais e gratuitos:

Solaris # df -t /home/jlliagre
rpool1/export/home/jlliagre: 20775669 blocks 20775669 files
                      total: 69672960 blocks 20775865 files

No linux, o comando mais próximo é df -i . A coluna IUsed mostra o número de inodes usados e o IFree mostra o número de inodes livres.

Linux # df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/root_vg-lv_root
                     1048576   57730  990846    6% /

Portanto, o equivalente em Linux do seu comando do Solaris seria:

for i in /opt/aa /opt/aa/data /opt/aa/bb; do
    echo -n "$i "; df -i $i | awk 'NR > 1 {print $2}'
done

Observe que, se /opt/aa , /opt/aa/data e /opt/aa/bb pertencerem ao mesmo sistema de arquivos, o número informado será o mesmo para cada um desses diretórios, o que pode não ser o que você deseja.

    
por 12.02.2014 / 13:26
0

No linux eu usaria:

 find /opt/aa           -type f -xdev| wc -l
 find /opt/aa/data      -type f -xdev | wc -l
 find /opt/aa/bb/oracle -type f -xdev | wc -l

Mas isso pode não ser confiável se você não for root.
find folder -type f imprimirá a lista de todos os seus arquivos em uma pasta. -mount é usado para não pesquisar no ponto de montagem e limitar ao sistema de arquivos atual. | wc -l contará as linhas do comando find.

Eu acho que este comando não está disponível porque o tipo de sistema de arquivos é diferente no linux.

    
por 12.02.2014 / 13:21

Tags