Come mostrare i dischi disponibili su un sistema Linux?

Se eseguo fdisk -l otterò un'output come:

Disk /dev/sda: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x0003ad9d Device Boot Start End Blocks Id System /dev/sda1 1 1306 10490413+ 83 Linux /dev/sda2 1307 2612 10490445 83 Linux Disk /dev/sdb: 120.0 GB, 120034123776 bytes 255 heads, 63 sectors/track, 14593 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x0003ad9d Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 83 Linux /dev/sdb2 1307 2612 10490445 83 Linux 

Come posso solo mostrare i dischi disponibili sul sistema in modo che possano con uno spazio tra loro come:

/ dev / sda / dev / sdb / dev / sdc

  • Disabilita la possibilità di hide la cronologia dei comandi bash
  • Come faccio a creare un ambiente Linux che specifica versioni specifiche dei pacchetti?
  • Installazione e manutenzione di software su più server Linux
  • come faccio a fare Solaris shell più familiare per un utente di linux?
  • Sono stati eseguiti tutti i registri di if / when "at" jobs?
  • La ridimensionamento dei volumi utilizzati come file di dati VMWare NFS causa problemi Linux VM
  • //, Come proteggere il token di accesso, su Linux, a negozi remoti automatici come Hashicorp Vault?
  • Può scp copiare directory?
  • 7 Solutions collect form web for “Come mostrare i dischi disponibili su un sistema Linux?”

    È ansible utilizzare i tubi per redirect l'output

      fdisk -l | grep ^Disk | awk -F: '{ print $1 }' | awk -F" " '{ print $2 }' 
    • fisk -l: get l'output completo del disco
    • grep Disk: filtrare la row che inizia con Disk
    • awk -F: '{print $ 1}': get la prima parte where il separatore è ":"
    • awk -F "" '{print $ 2}': get la seconda parte in cui il separatore è spazio

    Provare:

     cat /proc/partitions 

    o

     ls /dev/sd* 

    Questo elenca tutte le partizioni disponibili!

    Ecco una versione perl:

     fdisk -l | perl -n -e 'if (m{^Disk (\/.*):}) { print $1," "} END { print "\n"}' 

    stampe:

     /dev/sda /dev/sdc 

    Ciò mostra le partizioni montate come un elenco delimitato da spazi:

     echo $(mount -t ext2,ext3 | cut -f1 -d' ') 

    È ansible aggiungere altri tipi di file system.

    Ecco alcune alternative, se si possono fare alcune ipotesi (mi piace / proc / partizioni, però, fintanto che stai filtrando i principali numbers in modo da non prelevare volumi LVM ecc.)

    Supponendo che i tuoi dischi siano tutti locali (ad es., Non SAN):

     user@host [/home/q0px] $ ls -l /dev/disk/by-path/ total 0 lrwxrwxrwx 1 root root 9 Dec 5 01:27 pci-0000:00:1f.1-ide-0:0 -> ../../hda 

    Se le partizioni hanno tutti UUIDs (funziona anche per i dispositivi SAN)

     user@host [/home/q0px] $ ls -l /dev/disk/by-uuid total 0 lrwxrwxrwx 1 root root 18 Dec 5 01:27 dc13d5cf-ba98-4339-99c5-0136177f7e22 -> ../../cciss/c0d0p1 

    Se tutte le partizioni hanno etichette (anche orche per dispositivi SAN):

     user@host [/home/q0px] $ ls -l /dev/disk/by-label/ total 0 lrwxrwxrwx 1 root root 18 Dec 5 01:27 boot -> ../../cciss/c0d0p1 

    Penso che la soluzione migliore consiste nell'utilizzare un solo command, come:

      awk '/[az]$/ {print $4}' /proc/partitions 

    o se si dispone di dispositivi md o dm e si desidera visualizzare solo unità sata (sdx):

      awk '$4 ~ /^sd.$/ { print $4 }' /proc/partitions 

    Anche non così bella, ancora un liner, utilizza più comandi, ma funziona:

      cat /proc/partitions | awk '{print $4}' | grep sd[az] | grep -v [0-9] 

    Solo i miei 2 centesimi … Spero che aiuta!

    Suppongo comandi come quello in uso, o df (che elenca i dispositivi mentre mostra lo spazio libero e utilizzato) non emetterà i dati in modalità spaziale delimitata come u vuole. U deve usare un command di elaborazione string come sed 'piped' all'output dei comandi di disco precedenti e get l'oputput desiderato.

    -ANNO DOMINI.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.