Existe-t-il un moyen simple de déterminer si un système de fichiers monté est monté en lecture seule ou en lecture-écriture? Je pensais juste à pipe mount
mais j'ai pensé qu'il pourrait y avoir un moyen plus simple.
Ce petit one-liner sortira quelque chose si un système de fichiers ro existe.
grep "[[:space:]]ro[[:space:],]" /proc/mounts
En supposant que vous n'avez généralement pas de système de fichiers ro comme un CD dans le lecteur, cela suffit pour certains éléments de type de 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 le type de votre système de fichiers. Canalisez-le dans grep -v iso9660 si vous voulez garder vos CD hors de l'enregistrement.
Vieille question, mais je l'ai rencontrée à la recherche de la même aide et semble avoir été trouvée de manière encore plus simple sans avoir à créer de fichier.
[ -w /root-rw ] && echo "rw" || echo "ro"
rw
[ -w /root-ro ] && echo "rw" || echo "ro"
ro
Bien sûr, root-ro est ro monté fs et root-rw est rw fs.
Si le système de fichiers est monté, je ferais un cd vers un répertoire temporaire et j'essaierais 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).
Je viens d'avoir ce problème et ce sont de vraies pâtes ...
Jetez un œil à/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 apparaissent comme étant montées rw lorsque vous utilisez simplement la commande mount.
Basé sur un réponse de flickerdfly , influencé par un commentaire de WhiteKnight
Créez une fonction de détecteur à la volée.
eval "function is_readonly () {
$( grep -P "\sro[\s,]" /proc/mounts | awk '{print "if echo $1 | grep -q \""$2"\"; then return 0;fi"}' )
return 1;}";
l'utiliser 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;
Voici ma solution:
if findmnt -n -o OPTIONS ${YOUR_MOUNT_POINT} | egrep "^ro,|,ro,|,ro$"; then
echo "Read only!"
fi
Semblable à Antonio, vous pouvez utiliser/proc/mounts pour faire la même chose. Utilisez votre propre lecteur à la place de sda4.
chat/proc/monte | grep/dev/sda4 | awk '{print substr ($ 4,1,2)}'
Par exemple, pour vérifier si la partition racine est en mode lecture seule:
if [[ ! -z `mount | grep "on / type ext3 (ro,"` ]]
then
echo "It's in read-only mode"
fi