GNU/Linux >> Linux Esercitazione >  >> Linux

Determina se il filesystem o la partizione è montata RO o RW tramite Bash Script?

Soluzione 1:

Questo piccolo one-liner farà apparire qualcosa se esiste un file system ro.

grep "[[:space:]]ro[[:space:],]" /proc/mounts 

Supponendo che di solito non si disponga di un file system ro come un CD nell'unità, è sufficiente per alcune cose di tipo di monitoraggio di base e non richiede la modifica del file system per trovare lo stato corrente. Inoltre, non presuppone il tipo di file system. Inseriscilo in grep -v iso9660 se vuoi tenere i tuoi CD fuori dal registro.

Soluzione 2:

Vecchia domanda, ma l'ho trovata cercando lo stesso aiuto e sembra aver trovato un modo ancora più semplice senza la necessità di creare file.

    [ -w /root-rw ] && echo "rw" || echo "ro"
    rw
    [ -w /root-ro ] && echo "rw" || echo "ro"
    ro

Naturalmente, root-ro è ro mount fs e root-rw è rw fs.

Soluzione 3:

Se il file system è montato, cd su una directory temporanea e tento di creare un file. Il codice di ritorno ti dirà se il file system è di sola lettura o lettura-scrittura a condizione che il file system non sia pieno (grazie Willem).

Soluzione 4:

Ho appena avuto questo problema e queste sono paste vere...

Dai un'occhiata a /proc/mounts -

egrep " ro,|,ro " /proc/mounts 
/dev/sda3 / ext4 ro,seclabel,relatime,barrier=1,data=ordered 0 0    
/dev/sda5 /var ext4 ro,seclabel,relatime,barrier=1,data=ordered 0 0

Cordiali saluti - Queste due partizioni vengono visualizzate come montate rw quando si utilizza solo il comando mount.

Soluzione 5:

Basato su una risposta di flickerdfly, influenzata da un commento di WhiteKnight

Crea una funzione di rilevamento al volo.

eval "function is_readonly () {
          $( grep -P "\sro[\s,]" /proc/mounts | awk '{print "if echo $1 | grep -q \""$2"\"; then return 0;fi"}' )
      return 1;}";    

usalo per determinare se un percorso è su un fs di sola lettura

is_readonly /path/to/file/on/read/only/fs && echo "sorry. can't delete that"

E smaltiscilo quando hai finito

#dump temp function
unset -f is_readonly;

Linux
  1. Uno script Bash può essere agganciato a un file?

  2. Script Bash per rimuovere il file più vecchio da una cartella?

  3. Script per determinare se i file sono immagini?

  4. Script Bash:pessimo interprete

  5. Come includere un file in uno script di shell bash

35 Esempi di script Bash

Come evidenziare gli script Bash in Vim?

lo script bash aggiunge il testo alla prima riga di un file

Confronta le somme md5 nello script bash

Come eseguire uno script bash tramite percorso assoluto?

Come grep per unicode � in uno script bash