Openwrt每分钟检查并自动挂载NTFS格式中文内容USB硬盘

上一篇文章后我发现这硬盘连接并不是十分稳定,三天两头掉挂载,每次掉了都要再ctrl C V一遍代码还是蛮麻烦的,干脆多敲点面条字一次完事。

编写代码

注意:取用时请您自己修改代码中的uuid

#!/bin/sh

# 定义硬盘的 UUID 和挂载点
UUID="你硬盘的uuid"
MOUNT_POINT="/mnt/usb"

# 使用 block info 查找与 UUID 匹配的设备路径
DEVICE_PATH=$(block info | grep "$UUID" | awk -F':' '{print $1}')

# 如果未找到设备路径,则提示设备不存在
if [ -z "$DEVICE_PATH" ]; then
    echo "硬盘设备不存在,无法挂载,请检查硬盘连接。"
    exit 1
fi

# 检查硬盘是否已经挂载
if ! block info | grep -q "$MOUNT_POINT"; then
    echo "硬盘未挂载,开始检测并尝试挂载..."

    # 检查挂载点目录是否存在,如果不存在则创建
    if [ ! -d "$MOUNT_POINT" ]; then
        echo "挂载点目录不存在,创建 /mnt/usb 目录..."
        mkdir -p "$MOUNT_POINT"
    fi

    # 尝试挂载硬盘
    echo "硬盘设备存在,尝试挂载..."
    ntfs-3g -o locale=zh_CN.UTF-8 "$DEVICE_PATH" "$MOUNT_POINT"

    # 检查是否挂载成功
    if block info | grep -q "$MOUNT_POINT"; then
        echo "硬盘成功挂载到 $MOUNT_POINT"
    else
        echo "挂载失败,请检查硬盘状态或挂载命令。"
    fi
else
    echo "硬盘已挂载,无需操作。"
fi

此处将代码保存为hotmount.sh保存在/etc/目录下,方便后续取用

设置开机自启动:设定rc.local

修改/etc/rc.local,在exit 0 之前加入

bash /etc/hotmount.sh

也可以在openwrt中的系统 启动项 本地启动脚本中添加该指令,有一点点图形化操作也不错

设置每分钟自动检查:设定cron

一般来说cron都是开机自动运行的,这一步可以略过,但还是写一下吧
依次执行:

/etc/init.d/cron start
#启动cron
/etc/init.d/cron enable
#设定cron开机自启动

设定cron

#首先
crontab -e
#然后添加下面这一行
* * * * * /etc/hotmount.sh
#每分钟执行一次

保存并退出即可,至此所问得解。

posted @ 2024-09-08 18:40  MugenG7  阅读(184)  评论(0编辑  收藏  举报