GNU/Linux >> Tutoriels Linux >  >> Linux

Déterminez si le système de fichiers ou la partition est monté RO ou RW via Bash Script ?

Solution 1 :

Ce petit one-liner affichera quelque chose si un système de fichiers ro existe.

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

En supposant que vous n'ayez généralement pas de système de fichiers ro comme un CD dans le lecteur, cela suffit pour certains éléments de type surveillance de base et ne nécessite pas de changer le système de fichiers pour trouver l'état actuel. Il ne suppose pas non plus votre type de système de fichiers. Pipez-le dans grep -v iso9660 si vous souhaitez que vos CD ne soient pas enregistrés.

Solution 2 :

Vieille question, mais je l'ai rencontrée à la recherche de la même aide et semble avoir trouvé un moyen encore plus simple sans avoir besoin de créer un fichier.

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

Bien sûr, root-ro est monté sur ro fs et root-rw est rw fs.

Solution 3 :

Si le système de fichiers est monté, je cd dans un répertoire temporaire et j'essaie de créer un fichier. Le code de retour vous indiquera si le système de fichiers est en lecture seule ou en lecture-écriture à condition que le système de fichiers ne soit pas plein (merci Willem).

Solution 4 :

Je viens d'avoir ce problème et ce sont de vraies pâtes...

Jetez un oeil à /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

FYI - Ces deux partitions s'affichent comme étant montées rw lors de l'utilisation de la commande mount.

Solution 5 :

Basé sur la réponse d'un flickerdfly, influencé par un commentaire de WhiteKnight

Créer une fonction de détection de la mouche.

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

utilisez-le pour déterminer si un chemin est sur un fs en lecture seule

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

Et jetez-le une fois terminé

#dump temp function
unset -f is_readonly;

Linux
  1. Un script Bash peut-il être accroché à un fichier ?

  2. Script Bash :vérifier si un fichier est un fichier texte ?

  3. Exécuter un fichier de script sur Ssh via Sudo ?

  4. Script pour déterminer si les fichiers sont des images ?

  5. Rediriger dynamiquement l'entrée standard dans un script bash

35 exemples de scripts bash

Comment puis-je déterminer si le système de fichiers est sensible à la casse dans .net ?

Comment mettre en surbrillance les scripts Bash dans Vim ?

script bash ajoute du texte à la première ligne d'un fichier

Comparer les sommes md5 dans le script bash

Boucle Bash décompressez le script de fichier avec mot de passe