美文网首页
局域网自动挂载脚本

局域网自动挂载脚本

作者: Farseer_2025 | 来源:发表于2018-04-17 21:25 被阅读0次

升级一下脚本,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

相关文章

  • 局域网自动挂载脚本

    升级一下脚本,version 2.0 第一版绕了好多弯路,基础真心重要,放上来警示一下。version 1.0 对...

  • 局域网共享和自动同步u盘

    1 samba共享 2 udev自动挂载 3 挂载和同步脚本 4 卸载脚本

  • 华硕官方固件设置挂载usb后自启动相关软件

    设置挂载usb后启动脚本 注意xxx必须要有可执行权限 例如usb挂在之后自动挂载 entware 环境变量,可以...

  • Unity 小技巧积累

    网络判断 挂载脚本后,有的脚本左侧有复选框,有的没有。原因是没有写Start函数。这种脚本启动不会自动调用。 Ed...

  • 宝塔自动挂载磁盘脚本

    一条命令解决

  • 挂载命令

    查询与自动挂载 mount -l 查询系统中已经挂载的设备 mount -a 自动挂载 挂载命令 mount -t...

  • Lliux 硬盘命令

    查看磁盘 格式化 挂载 (开机不会自动挂载) 查看UUID 设置开机自动挂载 重启即可看到结果

  • 2019-06-26

    如何实现磁盘自动挂载(开机自动挂载)方法一:/etc/rc.local(执行权限)条件挂载命令echo 'moun...

  • UI跟随相机视角旋转

    将脚本挂载到UI上:

  • DoTween

    /* 项目: 脚本:校园导航管理脚本 脚本:此脚本挂载在SchoolMenuPanel上 脚本:点击二级导航按钮,...

网友评论

      本文标题:局域网自动挂载脚本

      本文链接:https://www.haomeiwen.com/subject/msshyxtx.html