Назад | Перейти на главную страницу

Определите свободное файловое пространство в Linux

Извиняюсь, если это глупый вопрос, но я еще не нашел ответа.

Как узнать, сколько свободного дискового / файлового пространства для данной папки или раздела.

В основном мне нужно знать, сколько свободного места есть, прежде чем я буду выполнять задачи на сервере, и не хочу неожиданно выходить за пределы.

заранее спасибо.

df -h # shows free disk space on all partitions
du -hs foldername # shows space used by a particular folder

Хаос ответил первым, но я просто хотел добавить «df -h» более полезно (отображать его в удобочитаемых терминах (МБ, ГБ, КБ и т. д.) вместо блоков), но вы можете понять это на странице справки df .

   cd /path/to/dir
   df -h .
   Filesystem            Size  Used Avail Use% Mounted on
   /dev/sda1              36G   20G   14G  60% /

мой любимый трюк для получения списка действительно больших файлов:

du | sort -rn | head

получает список 10 лучших файловых свиней.

Тим

Немного выходит за рамки вопроса, но поскольку 'df' и 'du' уже хорошо освещены ... если вы обнаружите, что они не совпадают, полезно использовать команду 'lsof + L1' для вывода списка удаленных , но по-прежнему открывать файлы.

Ваше дисковое пространство не будет освобождено, если удаленный файл все еще открыт до тех пор, пока он не будет закрыт (это неоднократно наблюдалось при неправильной настройке ротации журналов).

Вы хотите df. (И df -i для inodes бесплатно.)

Я знаю, что это помечено как linux, но в интересах полноты ..

Параметр -h доступен не всегда. Я знаю, что в инструментах Solaris и т. Д. Его нет (du, df, ls и т. Д.).

Цитируемая страница руководства показывает это, и rkthkrв ответе используется, но он не очень заметен: если вы укажете путь в конце df в командной строке он ограничивает отображение файловой системой, содержащей только этот путь.

Если вы хотите обрезать линию заголовка, протяните ее через tail -1, а чтобы захватить только столбец свободного пространства, пропустите его через awk '{print $4}' (или cut выбрав соответствующее поле или столбцы).

Как предлагали другие, используйте df для локально смонтированных дисков, которыми вы управляете.

Для NFS и других удаленных подключенных томов вы можете столкнуться с системой квот. Для этих систем используйте команду «quota», чтобы узнать, сколько осталось свободной квоты, которая, вероятно, будет меньше количества оставшихся байтов. Однако это не всегда так.

Вы можете узнать больше о квотах здесь: http://www.tldp.org/HOWTO/Quota.html

df - отчет об использовании дискового пространства файловой системы (человек)

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 - оценка использования файлового пространства (человек)

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' 

Отличные ответы выше.

Я хотел бы добавить, что df- hP дать вам вывод, который легче анализировать. (P означает переносимость)

в моем случае ответом было «lsof + L1». куча логов apache, удаленных, но не