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

Свободное дисковое пространство Linux на устройство

В моей системе df -hT выводит что-то вроде этого:

> df -hT 
Sist. Arq.     Tipo      Tam. Usado Disp. Uso% Montado em
devtmpfs       devtmpfs  1,9G  8,0K  1,9G   1% /dev
tmpfs          tmpfs     1,9G  616K  1,9G   1% /dev/shm
tmpfs          tmpfs     1,9G  1,8M  1,9G   1% /run
tmpfs          tmpfs     1,9G     0  1,9G   0% /sys/fs/cgroup
/dev/sda6      btrfs      80G   22G   58G  27% /
/dev/sda6      btrfs      80G   22G   58G  27% /.snapshots
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/pgsql
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/mysql
/dev/sda6      btrfs      80G   22G   58G  27% /var/opt
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/libvirt/images
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/mailman
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/machines
/dev/sda6      btrfs      80G   22G   58G  27% /var/crash
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/mariadb
/dev/sda6      btrfs      80G   22G   58G  27% /var/lib/named
/dev/sda6      btrfs      80G   22G   58G  27% /boot/grub2/x86_64-efi
/dev/sda6      btrfs      80G   22G   58G  27% /usr/local
/dev/sda6      btrfs      80G   22G   58G  27% /boot/grub2/i386-pc
/dev/sda6      btrfs      80G   22G   58G  27% /var/spool
/dev/sda6      btrfs      80G   22G   58G  27% /opt
/dev/sda6      btrfs      80G   22G   58G  27% /var/cache
/dev/sda6      btrfs      80G   22G   58G  27% /srv
/dev/sda6      btrfs      80G   22G   58G  27% /var/log
/dev/sda6      btrfs      80G   22G   58G  27% /var/tmp
/dev/sda6      btrfs      80G   22G   58G  27% /tmp
/dev/sda8      vfat      340G  313G   27G  93% /mnt/Data
/dev/sda7      xfs       200G  143G   58G  72% /home
tmpfs          tmpfs     385M   44K  385M   1% /run/user/1000
/dev/sda3      fuseblk   287G  190G   98G  67% /run/media/jaques/OS
/dev/mmcblk0p1 vfat      7,5G  2,1G  5,4G  28% /run/media/jaques/9843-A435

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

Я бы хотел что-нибудь попроще, например:

> df -hT 
Sist. Arq.     Tipo      Tam. Usado Disp. Uso%
/dev/sda6      btrfs      80G   22G   58G  27%
/dev/sda8      vfat      340G  313G   27G  93%
/dev/sda7      xfs       200G  143G   58G  72%
/dev/sda3      fuseblk   287G  190G   98G  67%
/dev/mmcblk0p1 vfat      7,5G  2,1G  5,4G  28%

Является ли это возможным? Как?

Системная информация, при необходимости:

OpenSuse Tumbleweed
Kernel 4.10.1

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

Что ж, проще отредактировать вывод df (например, с awk), чем пытаться настроить его параметры. Итак, что бы я сделал, так это определить псевдоним

alias my_df="df -hT|awk -F% '$1!=p&&$1!~/tmpfs/{print $1 FS;p=$1}'" 

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

$ my_df
Sist. Arq.     Tipo      Tam. Usado Disp. Uso%
/dev/sda6      btrfs      80G   22G   58G  27%
/dev/sda8      vfat      340G  313G   27G  93%
/dev/sda7      xfs       200G  143G   58G  72%
/dev/sda3      fuseblk   287G  190G   98G  67%
/dev/mmcblk0p1 vfat      7,5G  2,1G  5,4G  28%

Пояснение: Выход df проходит через awk который, по указанию -F%, разбивает каждую строку ввода на две части, $1 быть обработанным и $2 быть отброшенным. Тогда, если $1 отличается от p (см. ниже) и $1 не совпадает tmpfs, печатаем с финальным %. Наконец, мы присваиваем значение $1 к p так что, если следующая строка такая же, как эта, мы не печатаем ее.

Надеюсь, все ясно.