“흥미로운”마운트 지점 만 표시 / 관심없는 유형 필터링 8.04에서 저를 보여 ext3및 reiserfs마운트

내가 사용하는 mount내가 너무 재미 있지 것들 (즉, 비 물리적)보고 싶지 않아, 탑재 된 드라이브를 표시합니다. 그래서 나는 다음과 같은 스크립트 mnt를 사용했습니다 .

mount | grep -Ev 'type (proc|sysfs|tmpfs|devpts) '

우분투 8.04에서 저를 보여 ext3reiserfs마운트 지점 만. 그 줄은 실제로 주석 처리되었으며 이제는 Ubuntu 12.04에 사용합니다.

mount | grep -Ev 'type (proc|sysfs|tmpfs|devpts|debugfs|rpc_pipefs|nfsd|securityfs|fusectl|devtmpfs) '

내 파티션 ext4zfs파티션 만 표시 합니다 (을 사용하여 삭제했습니다 reiserfs).

이제 우분투 14.04를 준비 중이며 스크립트를 다시 확장해야합니다 (cgroup, pstore). 스크립트를 확장하지 않고도이 작업을 수행하는 더 좋은 방법이 있습니까? 네트워크 드라이브 ( nfs, cifs)를 마운트 및 마운트 한 물리 디스크에만 관심이 있습니다 .



답변

-t에 대한 옵션 mount도는 마운트 지점을 표시 할 때 작동 및 파일 시스템 유형 구분 된 목록을 쉼표를 취합니다

mount -t ext3,ext4,cifs,nfs,nfs4,zfs

그것이 더 나은 해결책 인지 확실하지 않습니다 . (예를 들어 btrfs)를 사용하기 시작 하고 목록에 추가하는 것을 잊어 버리면 목록을 보지 못하거나 놓칠 수 없습니다. 나는 목록이 길어 지더라도 새로운 “무관심한”파일 시스템이 나타날 때 적극적으로 걸러 내고 싶다.

grep@Graeme이 제안한 것과 비슷한 흥미로운 마운트 포인트 만 적극적으로 시도 할 수 있지만 NFS / CIFS 마운트에 관심이 있으므로 (로 시작하지 않음 /) 다음을 수행해야합니다.

mount | grep -E --color=never  '^(/|[[:alnum:]\.-]*:/)'

( 발견 된 선에서 --color이니셜의 채색을 억제하는 데 필요합니다 /). Graeme이 지적한 것처럼 NFS 공유의 이름 기반 마운트도 허용되어야합니다. 패턴 /은 “a-zA-Z0-9″의 조합으로 시작하는 라인을 선택합니다 . 그 뒤에 :/(NFS 마운트의 경우).


답변

사용하지 마십시오 mount.

보낸 사람 man mount:

  • 리스팅.
    • 리스팅 모드는 이전 버전과의 호환성을 위해서만 유지됩니다.
    • 보다 강력하고 사용자 정의 가능한 출력을 얻으 려면 특히 스크립트에서 findmnt(8)을 사용 하십시오.
    • 마운트 포인트 이름의 제어 문자는 ? 로 대체됩니다 . .

findmnt설명서에서 제안하는대로을 사용하십시오 . 다음은 몇 가지 흥미로운 옵션입니다 findmnt --help.

  • -i 또는 --invert
    • 어울리는 감각을 뒤집다
  • -R 또는 --submounts
    • 일치하는 파일 시스템에 대한 모든 서브 마운트를 인쇄
  • -t 또는 --typeslist
    • FS 유형으로 파일 시스템 세트 제한

이것들은 명령 줄에 적용 할 수 있는 많은 필터 중 몇 가지 일뿐 입니다.

man findmnt
  • 실시 예
    • findmnt --fstab -t nfs
    • 에 정의 된 모든 NFS 파일 시스템을 인쇄합니다 /etc/fstab.
    • findmnt --fstab /mnt/foo
    • /etc/fstab마운트 포인트 디렉토리가있는 모든 파일 시스템을 인쇄합니다 /mnt/foo. 또한 소스가있는 --bind마운트 를 인쇄합니다 /mnt/foo.

다음을 사용할 수 있습니다.

findmnt -it sysfs,cgroup,proc,devtmpfs,devpts,pstore,debugfs,hugetlbfs,mqueue,configfs

그것은 모든 의사 파일 시스템을 필터링 해야 한다고 생각합니다.

여전히, 당신은 다음과 같이 할 수 있습니다 mount:

mount -t nosysfs,nodevtmpfs...

아마도 더 나은 방법은 다음 명령 중 하나를 사용하는 것입니다 findmnt --help.

  • findmnt -D 또는 findmnt --df
    • df(1) 의 출력을 모방합니다 . 이 옵션은 -o SOURCE,FSTYPE,SIZE,USED,AVAIL,USE%,TARGET모든 의사 파일 시스템 과 동일 하지만 제외합니다. --all모든 파일 시스템을 인쇄하는 데 사용 합니다.

findmnt -Do+field,+field… 을 사용하여 목록 필드를 기본값에 추가 할 수 있습니다 . like -D를 생략하여 표시 할 파일 시스템 만 사용하여 고유 한 필드 목록을 지정할 수 있습니다 .+findmnt -Dofield,field


답변

어때요?

mount | grep '^/[^/]'

/첫 번째 필드가 장치의 경로이므로 물리 디스크와 관련된 마운트 지점은 항상로 시작 합니다. cifsmounts로 시작 //하므로 라인 /을 무시하기 위해 1 초 를 제외하십시오 .

최신 정보

질문을 잘못 읽었으며을 제외 cifs 하고 싶었습니다 nfs. 대신 이것을 시도하십시오 :

 mount | grep -E '^[^ ]*[/:]'


답변

파티에 늦었지만

흥미롭지 않은 것을보고 싶지 않습니다 (즉, 비 물리적)

로하면 물리적 PC에 연결하면 평균 블록 장치로 이동

$ lsblk
NAME          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sdb             8:16   0 238.5G  0 disk
├─sdb1          8:17   0   100M  0 part  /boot
├─sdb2          8:18   0     1G  0 part
├─sdb3          8:19   0    45G  0 part  /
└─sdb4          8:20   0 192.4G  0 part
  └─ssdhomecr 254:0    0 192.4G  0 crypt /home
sdi             8:128  0 931.5G  0 disk
├─sdi1          8:129  0   801G  0 part
│ └─test      254:2    0   801G  0 crypt /mnt/esata
└─sdi2          8:130  0 130.6G  0 part

--fs/-f스위치 와 함께 자주 사용합니다 (파일 시스템 정보)

$ lsblk -f
NAME          FSTYPE      LABEL  UUID                                 MOUNTPOINT
sdb
├─sdb1        ext2        bootp  7cf4f62a-1111-4e2f-7536-4fc5ad38bd2c /boot
├─sdb2        swap        swapp  4aa6d4ae-11e7-4a35-8bf3-ab42313aca62
├─sdb3        ext4        sysp   b23338ad-5a4b54i54-a842-8164-a9a9a2a /
└─sdb4        crypto_LUKS        112c40c9-7fdd-4158-895c-5344d24c4a6d
  └─ssdhomecr ext4        homecr fc8a92cb-124f-4a0d-b88e-2055c06ffc3g /home
sdi
├─sdi1        crypto_LUKS        a7c9fg87-6962-43e3-b8c6-7605b181630e
│ └─test      ext2        esata1 124657dc-671a-4b7f-b8a7-b64d5341cabe /mnt/esata
└─sdi2        crypto_LUKS        1c5846bb-ce7e-4cbe-bb0a-b687758ea1dc

lsblkutil-linux의 일부입니다 . 분명히 퓨즈 또는 네트워크 마운트가 표시되지 않습니다 .


답변

-v스위치를 사용하지 마십시오 .

용도:

mount | grep -Ew 'ext4|ext3'

ext4 및 ext3 만 표시됩니다. 더 많은 파일 시스템을 보려면 정규식에 추가하십시오.

예를 들어, ext3, ext4, cifs 및 nfs 마운트를 보려면 다음을 사용하십시오.

mount | grep -Ew 'ext4|ext3|cifs|nfs'


답변

백업 장치로 블록 장치를 사용하는 파일 시스템 목록은에서 구할 수 있습니다 /proc/filesystems. 예를 들어 다음과 같이 사용할 수 있습니다.

mount -t "$(grep -v '^nodev' /proc/filesystems | cut -f2 | paste -s -d ,)"

블록 장치와 네트워크 파일 시스템이 지원하는 파일 시스템을 모두 원하므로 목록을 수동으로 유지 관리 할 필요가 없습니다. 그러나 사용하는 네트워크 파일 시스템 목록 만 유지하면됩니다.

/proc/filesystems스토리지를 백업하기 위해 여러 블록 장치를 사용하는 파일 시스템 (예 : RAID가 파일 시스템에 빌드 된 파일 시스템)을 어떻게 처리 할 것인지 모르겠습니다 . 당신은 그 특별한 대우를해야 할 수도 있습니다.


답변

별칭으로 사용하는 것이 가장 좋습니다.

df -Th | grep -Ev ‘(udev | tmpfs)’ ‘

샘플 출력 :

# df -Th| grep -Ev '(udev|tmpfs)'
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/md3       ext4       39G  792M   36G   3% /
/dev/md2       ext4      487M   32M  426M   7% /boot
/dev/sda1      vfat      510M  152K  510M   1% /boot/efi
/dev/md5       ext4      7.2T  311M  6.8T   1% /var

그러나 위의 답변 중 일부는 내가 바꿀 수있는 매우 유용합니다.

findmnt –df

lsblk -f