升级一下脚本,version 2.0
#!/bin/bash
#检查用户身份
if [ $UID -ne 0 ];then
echo 'Only use by root!'
exit 1
fi
#加载地址账号密码
if [ -f /etc/lanmount.conf ];then
. /etc/lanmount.conf
else
echo 'Need a configure file!'
exit 2
fi
#取得共享目录
SHAREDIR=`smbclient -L $IP -U $USERNAME%$PASSWORD|grep 'Disk'|awk '{print $1}'`
#需要至少1个参数
if [ "$#" -eq 0 ];then
echo "Input a target to mount!"
exit 3
fi
#如果参数为all则挂载所有目录,否则仅挂载指定目录
if [ "$#" -eq 1 ];then
if [ "$@" = "all" ];then
INPUT=$SHAREDIR
else INPUT=$@
fi
else
INPUT=$@
fi
#目标目录逐一带入循环
for DIR in $INPUT
do
#检查目标目录是否存在于共享目录中,不在则提示未共享,并进入下一次循环
[[ ! ${INPUT[@]} =~ ${DIR} ]] && echo "$DIR is not shared!" && continue
#检查目标目录是否已经被挂载
mountpoint -q /mnt/${DIR} && echo "$DIR already mounted!" && continue
#检查挂载位置是否建立目录,没有则建立目录
mkdir -p /mnt/$DIR
#执行挂载指令
mount -t cifs -o rw,username=$USERNAME,password=$PASSWORD,iocharset=utf8,uid=1000,gid=1000,vers=2.0 //$IP/$DIR /mnt/$DIR && echo "$DIR mounted!"
done
第一版绕了好多弯路,基础真心重要,放上来警示一下。version 1.0
#!/bin/bash
#检查用户身份
if [ $UID -ne 0 ];then
echo 'Only use by root!'
exit 1
fi
#加载地址账号密码
if [ -f /etc/lanmount.conf ];then
source /etc/lanmount.conf
else
echo 'Need a configure file!'
exit 2
fi
#取得共享目录
SHAREDIR=`smbclient -L $IP -U $USERNAME%$PASSWORD|grep 'Disk'|awk '{print $1}'`
#取得当前已挂载目录
MOUNTEDDIR=`mount|awk '{print $1}'|grep '^//'`
#需要至少1个参数
if [ "$#" -eq 0 ];then
echo "Input a target to mount!"
exit 3
fi
#如果参数为all则挂载所有目录,否则仅挂载指定目录
if [ "$#" -eq 1 ];then
if [ "$@" = "all" ];then
INPUT=$SHAREDIR
else INPUT=$@
fi
else
INPUT=$@
fi
#check 函数用来检测输入是否存在于变量中
check(){
echo "$2"|grep "^$1$" >/dev/null 2>&1
}
#目标目录逐一带入循环
for DIR in $INPUT
do
#检查目标目录是否存在于共享目录中,不在则提示未共享,并进入下一次循环
check "$DIR" "$SHAREDIR"
if [ $? -ne 0 ];then
echo "$DIR is not shared!"
continue
fi
#检查目标目录是否已经被挂载
check "//$IP/$DIR" "$MOUNTEDDIR"
if [ $? -eq 0 ];then
echo "$DIR already mounted!"
continue
fi
#检查挂载位置是否建立目录,没有则建立目录
if [ ! -d /mnt/$DIR ];then
mkdir /mnt/$DIR
fi
#执行挂载指令
mount -t cifs -o rw,username=$USERNAME,password=$PASSWORD //$IP/$DIR /mnt/$DIR
echo "$DIR mounted!"
done
对应的配置文件
USERNAME=user
PASSWORD=password
IP=192.168.1.100
网友评论