局域网自动挂载脚本

升级一下脚本,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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,464评论 19 139
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,348评论 0 5
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,075评论 6 342
  • 我似在对云诉说 云似在对我诉说 看过往烟云 浮华盛世 或下一秒变为瓢泼大雨 或下一秒变为漫天飞雪 它轻轻的 不动声...
    清如许阅读 1,631评论 0 3
  • 1.5
    A杨江湖阅读 929评论 0 0