动态 版块 发帖 消息 我的
Loading...
HadSky
支持原创软件,共创美好明天!
qq446825518
创始人Lv4   
cnetos7宝塔挂载smb服务     

进程守护者版本:


启动命令:nohup ./smb_guard.sh > /tmp/smb_guard.log 2>&1 &



停止守护命令:pkill -f smb_guard.sh




smb_guard.sh(守护进程版)


#!/bin/bash

# =========================================

# 宝塔 SMB 守护进程脚本

# 功能:

# 1. 挂载 SMB 共享

# 2. 自动检测挂载状态,如果断开则重连

# 3. 输出日志

# =========================================


# ===== 配置区 =====

SMB_IP="IP地址"

SMB_USER="用户名"

SMB_PASS="密码"

SMB_SHARE="smb"  # 共享文件夹目录名称

LOCAL_MOUNT="/mnt/smb"   # 挂载到centos目录下的名称

SMB_VERSION="3.0"      # SMB 协议版本,可改为2.0或1.0

CHECK_INTERVAL=30       # 每隔多少秒检测挂载状态

LOG_FILE="/tmp/smb_guard.log"

# ==================


# 安装cifs-utils(可选)

if ! command -v mount.cifs &> /dev/null

then

    echo "$(date) 未安装 cifs-utils,开始安装..." | tee -a $LOG_FILE

    if command -v yum &> /dev/null; then

        yum install -y cifs-utils | tee -a $LOG_FILE

    elif command -v apt &> /dev/null; then

        apt update && apt install -y cifs-utils | tee -a $LOG_FILE

    else

        echo "$(date) 无法自动安装 cifs-utils,请手动安装" | tee -a $LOG_FILE

        exit 1

    fi

fi


# 创建挂载目录

mkdir -p $LOCAL_MOUNT


# 守护循环

while true; do

    if mountpoint -q $LOCAL_MOUNT; then

        echo "$(date) SMB 挂载正常: $LOCAL_MOUNT" | tee -a $LOG_FILE

    else

        echo "$(date) 挂载丢失,重新挂载..." | tee -a $LOG_FILE

        mount -t cifs //$SMB_IP/$SMB_SHARE $LOCAL_MOUNT -o username=$SMB_USER,password=$SMB_PASS,vers=$SMB_VERSION,cache=none

        if mountpoint -q $LOCAL_MOUNT; then

            echo "$(date) ✅ 挂载成功" | tee -a $LOG_FILE

        else

            echo "$(date) ❌ 挂载失败,请检查网络/用户名/密码" | tee -a $LOG_FILE

        fi

    fi

    sleep $CHECK_INTERVAL

done




完整脚本:mount_smb.sh


终端命令版本

赋予执行权限chmod +x mount_smb.sh


./mount_smb.sh


#!/bin/bash # ========================================= # 宝塔 SMB 自动挂载脚本 # 功能: # 1. 挂载 SMB 共享到本地 # 2. 自动检测已有挂载并卸载 # 3. 禁用缓存,保证文件实时刷新 # 4. 列出挂载目录文件 # ========================================= # ===== 配置区 ===== SMB_IP="IP地址" SMB_USER="用户名" SMB_PASS="密码" SMB_SHARE="share" # 文件夹名字 LOCAL_MOUNT="/mnt/smb" # centos挂载显示的目录名字 SMB_VERSION="3.0" # SMB 协议版本,可改为2.0或1.0 # ================== # 安装cifs-utils(可选,如果未安装) if ! command -v mount.cifs &> /dev/null then echo "未安装 cifs-utils,开始安装..." if command -v yum &> /dev/null; then yum install -y cifs-utils elif command -v apt &> /dev/null; then apt update && apt install -y cifs-utils else echo "无法自动安装 cifs-utils,请手动安装" exit 1 fi fi # 创建挂载目录 mkdir -p $LOCAL_MOUNT # 如果已经挂载,先卸载 if mountpoint -q $LOCAL_MOUNT; then echo "检测到已挂载,正在卸载..." umount $LOCAL_MOUNT sleep 1 fi # 挂载 SMB 共享 echo "挂载 SMB 共享..." mount -t cifs //$SMB_IP/$SMB_SHARE $LOCAL_MOUNT -o username=$SMB_USER,password=$SMB_PASS,vers=$SMB_VERSION,cache=none # 检查挂载是否成功 if mountpoint -q $LOCAL_MOUNT; then echo "✅ 挂载成功!挂载目录:$LOCAL_MOUNT" echo "文件列表如下:" ls -l $LOCAL_MOUNT else echo "❌ 挂载失败,请检查用户名/密码/共享名/网络" exit 1 fi # ===== 可选:循环刷新文件列表 ===== # echo "开始循环刷新文件列表,每10秒刷新一次(Ctrl+C停止)" # while true; do # echo "===== 文件列表 $(date) =====" # ls -l $LOCAL_MOUNT # sleep 10 # done






下面是卸载命令:

文件名字 unmount_smb.sh

./unmount_smb.sh





#!/bin/bash

# =========================================

# 宝塔 SMB 卸载脚本

# 功能:

# 1. 检测挂载

# 2. 安全卸载 SMB 挂载目录

# =========================================


# 挂载目录

LOCAL_MOUNT="/mnt/smb"


# 检查是否挂载

if mountpoint -q $LOCAL_MOUNT; then

    echo "检测到挂载,正在卸载..."

    umount $LOCAL_MOUNT

    if [ $? -eq 0 ]; then

        echo "✅ 卸载成功!"

    else

        echo "❌ 卸载失败,请检查目录是否被占用"

    fi

else

    echo "⚠️ 目录未挂载,无需卸载"

fi




 0  已被阅读了10次  楼主 2025-10-31 13:44:05
回复列表

回复:cnetos7宝塔挂载smb服务

guest
登录之后更精彩~
Powered by HadSky 7.1.1
© 2015-2025 PuYueTian
您的IP:216.73.216.38,2025-12-06 11:21:45,Processed in 0.01058 second(s).
Powered by HadSky
© 2012 - 2022 壹素天财 版权所有