
|
|
|
Dismount multiple but not all mount points
Hack to dismount multiple mount points (or, with a little hacking, devices) without dismounting needed ones (/proc, etc)

Contributed by: Donovan Warren
[03/28/03 | Discuss (0) | Link to this hack] |
from just about anywhere, in the bash shell, do:
root@venus:~# for i in `mount | grep "regexp" | awk '{ print $3 }'`; do umount $i ; done
for regexp, use any search pattern you like; for example, if you have multiple disks for
/usr/local/
/usr/home/
/usr/database/
/usr/web/
etc, use:
root@venus:~# for i in `mount | grep "/usr/[dhlw]" | awk '{ print $3 }'`; do umount $i ; done
This will first pipe the "mount" output through grep, finding only those mount points which match the regexp. awk then prints the 3rd field from each line, and each iteration of the "for" will fill $i with that awk output, in turn. Then, once the "for" finds no more output from mount, it ends.
If you would prefer, you can have it do raw devices (/dev/sdb1, for example) by changing the field that awk prints to $1, and the regexp to something like
grep "/dev/sd[a-z]1"
instead. For example, to dismount /dev/sdb1 thru /dev/sdf1, use
root@venus:~# for i in `mount | grep "/dev/sd[b-f]1" | awk '{ print $1 }'`; do umount $i ; done
Also, it would work to use
df | grep "regexp" | awk '{ print $6 }'
(for mount points) or
df | grep "regexp" | awk '{ print $1 }'
(for device names)
instead of mount | grep | awk
from above.
This avoids using umount -a which dismounts all filesystems not activly in use, including /dev/shm and sometimes /proc
See also:
awk manpage
|
O'Reilly Home | Privacy Policy

© 2007 O'Reilly Media, Inc.
Website:
| Customer Service:
| Book issues:
All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.
|
|