Determine o espaço de arquivos livre no Linux

7

Desculpas se esta é uma pergunta idiota, mas ainda não encontrei resposta.

Como você descobre quanto espaço livre em disco / arquivo para uma determinada pasta ou partição.

Basicamente, eu preciso saber quanto espaço livre há antes de realizar tarefas no servidor e não quero atingir os limites inesperadamente.

obrigado antecipadamente.

    
por OilyRag 05.06.2009 / 21:42

12 respostas

21
df -h # shows free disk space on all partitions
du -hs foldername # shows space used by a particular folder
    
por 05.06.2009 / 21:45
4

O caos respondeu primeiro, mas eu só queria adicionar "df -h" é mais útil (exibi-lo em termos legíveis por humanos (MB, GB, KB, etc) em vez de blocos), mas você pode descobrir isso página de ajuda do df.

    
por 05.06.2009 / 21:45
4
   cd /path/to/dir
   df -h .
   Filesystem            Size  Used Avail Use% Mounted on
   /dev/sda1              36G   20G   14G  60% /
    
por 05.06.2009 / 21:46
3

meu truque favorito para colocar os arquivos realmente grandes listados:

du | sort -rn | head

obtém os 10 principais arquivos listados.

Tim

    
por 05.06.2009 / 21:50
3

Um pouco fora do escopo da questão, mas como 'df' e 'du' já estão bem cobertos ... se você achar que os dois não combinam, é útil usar o comando 'lsof + L1' para listar arquivos excluídos, mas ainda assim abertos.

Seu espaço em disco não será liberado se um arquivo excluído ainda estiver aberto até que seja fechado (visto muito isso com configurações incorretas de rotação de log).

    
por 06.06.2009 / 00:25
1

Você deseja df . (E df -i para inodes livres.)

    
por 05.06.2009 / 21:44
1

Eu sei que isso é marcado como linux, mas no interesse da perfeição ...

A opção -h nem sempre está disponível. Eu sei Solaris, etc não tem em suas ferramentas (du, df, ls, etc).

    
por 05.06.2009 / 22:44
1

A página de manual que é citada mostra isso, e a resposta do rkthkr usa isso, mas não é muito visível: se você especificar um nome de caminho no final da linha de comando df , ele limita sua exibição ao sistema de arquivos que contém apenas esse caminho.

Se você quiser recortar a linha de cabeçalho, passe-a por tail -1 e, para obter apenas a coluna de espaço livre, canalize para awk '{print $4}' (ou cut selecionando o campo ou colunas apropriados). / p>     

por 06.06.2009 / 11:15
0

Como outros sugeriram, use df para discos montados localmente que você está gerenciando.

Para o NFS e outros volumes montados remotamente, você pode encontrar um sistema de cotas. Para esses sistemas, use o comando "quota" para descobrir quanto de cota livre permanece, o que provavelmente será menor que o número de bytes restantes. Isso nem sempre é verdade, no entanto.

Você pode encontrar mais informações sobre cotas aqui: link

    
por 05.06.2009 / 21:55
0

df - informa o uso do espaço em disco do sistema de arquivos ( man )

df [OPTION]... [FILE]...
Description
This manual page documents the GNU version of df. df displays the amount of disk space available on the file system containing each file name argument. If no file name is given, the space available on all currently mounted file systems is shown. Disk space is shown in 1K blocks by default, unless the environment variable POSIXLY_CORRECT is set, in which case 512-byte blocks are used.

If an argument is the absolute file name of a disk device node containing a mounted file system, df shows the space available on that file system rather than on the file system containing the device node (which is always the root file system). This version of df cannot show the space available on unmounted file systems, because on most kinds of systems doing so requires very nonportable intimate knowledge of file system structures.
Options

Show information about the file system on which each FILE resides, or all file systems by default.

Mandatory arguments to long options are mandatory for short options too.

-a, --all
    include dummy file systems 
-B, --block-size=SIZE use SIZE-byte blocks
-h, --human-readable
    print sizes in human readable format (e.g., 1K 234M 2G) 
-H, --si
    likewise, but use powers of 1000 not 1024 
-i, --inodes
    list inode information instead of block usage 
-k
    like --block-size=1K 
-l, --local
    limit listing to local file systems 
--no-sync
    do not invoke sync before getting usage info (default) 
-P, --portability
    use the POSIX output format 
--sync
    invoke sync before getting usage info 
-t, --type=TYPE
    limit listing to file systems of type TYPE 
-T, --print-type
    print file system type 
-x, --exclude-type=TYPE
    limit listing to file systems not of type TYPE 

du - estimar o uso do espaço no arquivo ( man )

du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
Description

Summarize disk usage of each FILE, recursively for directories.

Mandatory arguments to long options are mandatory for short options too.

-a, --all
    write counts for all files, not just directories 
--apparent-size
    print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indirect blocks, and the like 
-B, --block-size=SIZE use SIZE-byte blocks
-b, --bytes
    equivalent to '--apparent-size --block-size=1' 
-c, --total
    produce a grand total 
-D, --dereference-args
    dereference FILEs that are symbolic links 
--files0-from=F
    summarize disk usage of the NUL-terminated file names specified in file F 
-H
    like --si, but also evokes a warning; will soon change to be equivalent to --dereference-args (-D) 
-h, --human-readable
    print sizes in human readable format (e.g., 1K 234M 2G) 
--si
    like -h, but use powers of 1000 not 1024 
-k
    like --block-size=1K 
-l, --count-links
    count sizes many times if hard linked 
-m
    like --block-size=1M 
-L, --dereference
    dereference all symbolic links 
-P, --no-dereference
    don't follow any symbolic links (this is the default) 
-0, --null
    end each output line with 0 byte rather than newline 
-S, --separate-dirs
    do not include size of subdirectories 
-s, --summarize
    display only a total for each argument 
-x, --one-file-system
    skip directories on different file systems 
-X FILE, --exclude-from=FILE
    Exclude files that match any pattern in FILE. 
--exclude=PATTERN Exclude files that match PATTERN.
--max-depth=N
    print the total for a directory (or file, with --all) only if it is N or fewer levels below the command line argument; --max-depth=0 is the same as --summarize 
--time
    show time of the last modification of any file in the directory, or any of its subdirectories 
--time=WORD
    show time as WORD instead of modification time: atime, access, use, ctime or status 
--time-style=STYLE show times using style STYLE:
    full-iso, long-iso, iso, +FORMAT FORMAT is interpreted like 'date' 
    
por 05.06.2009 / 22:12
0

Excelentes respostas acima.

Uma coisa que gostaria de acrescentar é que df- hP fornece uma saída mais fácil de ser analisada. (P é para portabilidade)

    
por 06.06.2009 / 04:02
0

no meu caso, 'lsof + L1' foi a resposta. um monte de logs do Apache, excluídos, mas não

    
por 02.09.2009 / 05:30