「興味深い」マウントポイントのみを表示/面白いタイプのフィルタリング

「興味深い」マウントポイントのみを表示/面白いタイプのフィルタリング

私はマウントされたドライブを表示しようとしましたが、あまりmount興味深いドライブ(例:非物理ドライブ)を見たくありませんでした。だから私はかつて次のスクリプトを持っていましたmnt

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

Ubuntu 8.04では、出てきてマウントポイントのみがext3表示reiserfsされます。その行は実際にコメントされており、今は次のものを使用しています(Ubuntu 12.04の場合)。

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

ext4私のパーティションとパーティションのみを表示しますzfs(使用を放棄するreiserfs)。

Ubuntu 14.04を準備しており、スクリプトを再拡張する必要があります(cgroup、pstore)。スクリプトを拡張せずにこれを行うより良い方法はありますか?私はマウントされた物理ディスクとマウントされたネットワークドライブ(nfs、)にのみ興味がありますcifs

答え1

使用しないでください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-D.... 以下の項目を省略して、ファイルシステムを使用して独自のフィールドリストを指定できます。+findmnt -Dofield,field

答え2

-tこのオプションはマウントポイントを表示するときにも適用されmount、カンマで区切られたファイルシステムタイプのリストを使用します。

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

これが正しいかどうかはわかりません。より良いもの解決策。たとえば、を使い始めてbtrfsリストに追加するのを忘れた場合、その内容は表示されず、おそらく見逃すことはありません。リストが長くなっても新しい「興味深い」ファイルシステムが表示される場合は、事前にフィルタリングすることをお勧めします。

@Graemeが提案したものと同様の興味深いマウントポイントを積極的に使用しようとすることができますが、grepNFS / CIFSマウント(で始まらない)にも興味があるので、/次のことを行う必要があります。

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

(見つかった行のイニシャル色を--color抑制する必要があります。)/Graemeが指摘したように、NFS共有の名前ベースのマウントも許可する必要があります。このモードでは、/「a-zA-Z0-9」または「a-zA-Z0-9」の組み合わせから始まる行を選択します。以下は:/(NFSインストール用)です。

答え3

どうですか?

mount | grep '^/[^/]'

物理ディスクに関連するマウントポイントは常にで始まります。/最初のフィールドがデバイスへのパスであるためです。cifsインストールは so 除外行で始まり、//無視/します。

修正する

質問を間違って読みました。質問したいと思いました。入らないようにする cifsそしてnfs。この試み:

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

答え4

ブロックデバイスをバックアップストレージとして使用するファイルシステムのリストについては、を参照してください/proc/filesystems。たとえば、次のように使用できます。

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

ファイルシステムをブロックデバイスとネットワークファイルシステムでバックアップしたいので、リストを手動で維持する必要性は完全に排除されません。ただし、使用するネットワークファイルシステムのリストだけを保持してください。

/proc/filesystems複数のブロックデバイスをバックアップストレージとして使用するファイルシステム(ファイルシステムにRAIDが組み込まれているファイルシステム)をどのようにすればよいかわかりません。特別な人には特別な治療が必要な場合があります。

関連情報