一个mount U盘的脚本

来源:互联网 发布:动画运动规律知乎 编辑:程序博客网 时间:2024/05/16 10:39

一个mount U盘的脚本


冷胜魁(Seaquester)
lengshengkui@gmail.com


经常使用U盘,redhat 9下U盘无法自动mount,所以,写了一个脚本来简化操作。

通常情况下,U盘设备应该是 /dev/sda1, 但是,有时候先后使用两个不同的U盘时,后面插入的一个是 /dev/sdb1,所以,使用了 fdisk -l | grep sd[b-z]1 | awk '{print $1}'  来取得它的设备名。代码只能mount 一个U盘,因为我基本上不会同时插入两个U盘,有这一需求的朋友可以自己修改。



  1. #! /bin/sh
  2. #
  3. # Mount/Unmount a USB disk.
  4. #
  5. # Mount:
  6. #    We try to mount /dev/sda1 first, if failed, search /dev/sdb1, /dev/sdc1 ...,
  7. #    and try to mount the 1st one we found.
  8. #
  9. MOUNT_DIR=/mnt/usb
  10. MOUNT_DEV=/dev/sda1
  11. mount | grep $MOUNT_DIR
  12. if [ "$?" = "0" ]
  13. then
  14.     # Kill all process locked the USB disk
  15.     fuser -m -v -k -i $MOUNT_DIR
  16.     umount $MOUNT_DIR
  17.     if [ "$?" = "0" ]
  18.     then
  19.         echo USB disk at $MOUNT_DIR has been unmounted
  20.     else
  21.         echo Can not unmount $MOUNT_DIR
  22.     fi
  23. else
  24.     mount -t vfat /dev/sda1 $MOUNT_DIR -o codepage=936,iocharset=cp936 2>/dev/null
  25.     if [ "$?" = "0" ]
  26.     then
  27.         echo USB disk $MOUNT_DEV has been mounted at $MOUNT_DIR
  28.     else
  29.         #
  30.         # Search all USB disk devices, and mount the first one
  31.         #
  32.         for MOUNT_DEV in $(fdisk -l | grep sd[b-z]1 | awk '{print $1}')
  33.         do
  34.             if [ "$?" = "0" ]
  35.             then
  36.                 mount -t vfat $MOUNT_DEV $MOUNT_DIR -o codepage=936,iocharset=cp936 2>/dev/null
  37.                 if [ "$?" = "0" ]
  38.                 then
  39.                     echo USB disk $MOUNT_DEV has been mounted at $MOUNT_DIR
  40.                     exit 0
  41.                 fi
  42.             fi
  43.         done
  44.         echo Can not mount $MOUNT_DEV to $MOUNT_DIR
  45.     fi
  46. fi
  47. exit 0


 

原创粉丝点击