vim auto_mountUsb.sh
#auto check usb
#by auth toyix
#2021年4月26日 15:45:04
MOUNT_PATH="/fat"
DATE=`date +%Y%m%d_%H%M`
fdisk -l|grep -Ei 'FAT32|NTFS' >${DATE}a
USB_DEV_NAME=`cat ${DATE}a|grep '^/dev'|awk '{print $1}'`
if [ ! -d ${MOUNT_PATH} ];then
mkdir -p ${MOUNT_PATH}
fi
if [ -z $USB_DEV_NAME ];then
echo "usb is not into ,exit now"
exit 1
fi
#判断是否已挂载,已挂载则退出
df -Th |grep -Ew $USB_DEV_NAME >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "${USB_DEV_NAME}已挂载"
exit 0
fi
#挂载,先判断是否为NTFS格式,如果是,则安装依赖包
fdisk -l|grep -Ei ntfs >/dev/null 2>&1
if [ $? -eq 0 ];then
mount -t ntfs-3g $USB_DEV_NAME ${MOUNT_PATH}
if [ $? -ne 0 ];then
tar -xf ntfs-3g_ntfsprogs-2017.3.23.tgz
cd ntfs-3g_ntfsprogs-2017.3.23/
./configure
if [ $? -ne 0 ];then
cd ..
rm -rf gccrpm
tar -xf gccrpm.tar.gz
rpm -ivh gccrpm/*.rpm --nodeps --force
cd ntfs-3g_ntfsprogs-2017.3.23/
fi
./configure
make && make install
cd ..
mount -t ntfs-3g $USB_DEV_NAME ${MOUNT_PATH}/
fi
else
mount $USB_DEV_NAME ${MOUNT_PATH} >/dev/null 2>&1
fi
#判断是否已挂载
df -Th |grep -Ew $USB_DEV_NAME >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "${USB_DEV_NAME}已成功挂载"
else
echo "${USB_DEV_NAME}未挂载成功"
fi
rm -rf ${DATE}a
注:
1、脚本会检测u盘是否为ntfs格式,由于centos 7不能自动识别,需要安装ntfs-3g工具包,而安装ntfs-3g工具包需要gcc环境,故,执行此脚本需要先下载相关的包,放到脚本同级目录,见下:
(有ntfs环境支持,则忽略)
下载ntfs-3g工具包
wget -c https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz
下载gcc离线包,有网络可以直接使用yum install gcc -y
yum install --downloadonly --downloaddir=./gccrpm gcc
tar -czf gccrpm.tar.gz gccrpm 打包目录,脚本中有解压的步骤
2、如果是标准U盘,是fat32格式,可以直接执行以下命令,直接挂载
USB_PATH=`fdisk -l|grep -Ei fat|awk '{print $1}'` && mount $USB_PATH /fat
---------------------------end