首页
归档
分类
标签
更多
留言板
说说
关于
Search
1
饥荒联机版控制台代码大全
1,024 阅读
2
编译安装带 Brotli 压缩的 Nginx
930 阅读
3
Obsidian多端快速同步插件
901 阅读
4
树莓派+EC20模块实现连接蜂窝网和短信收发
887 阅读
5
EC20通过gammu接收短信再转发优化
865 阅读
软件
CSS
Python
MySql
Java
typecho自定义
Vue
学习笔记
Linux
Shell脚本
Nginx
树莓派
邮件
拍照
热点
ec20
云盘
系统烧录
好玩
饥荒
硬件
工具
笔记
随心记
登录
Search
标签搜索
树莓派
Linux
Java
CSS
饥荒
小妙招
个人热点
nextcloud
云盘
DHT11
学习笔记
树莓派拍照
Nginx
MySql
ESP
娱乐
ec20模块
文件共享
git
图床
Mango
累计撰写
51
篇文章
累计收到
7
条评论
首页
栏目
软件
CSS
Python
MySql
Java
typecho自定义
Vue
学习笔记
Linux
Shell脚本
Nginx
树莓派
邮件
拍照
热点
ec20
云盘
系统烧录
好玩
饥荒
硬件
工具
笔记
随心记
页面
归档
分类
标签
留言板
说说
关于
搜索到
1
篇与
的结果
2022-09-17
Shell脚本自动检查并挂载硬盘
挂载在树莓派上的硬盘经常自己取消了挂载,就改写了一个自动检测并挂载硬盘的Shell脚本代码改自:{% link 一个不知道干嘛的小萌新,Shell编程实例 —— 自动检测并挂载硬盘》,https://www.cnblogs.com/zhuangquan/p/13555793.html %}#!/bin/sh # 判断是否挂载 IS_MOUNT=`df -h | grep /home/pi/Disk | wc -l` DISK_NAME=`lsblk -l | awk '{if ($3=="0") print}' | grep sda | awk '{print $1}'` if [ $IS_MOUNT -eq 0 ]; then echo 硬盘未挂载 # 获取硬盘地址 判断硬盘地址是否存在 if [ -b /dev/$DISK_NAME ]; then echo 硬盘即将挂载 mount /dev/$DISK_NAME /home/pi/Disk sync else echo 设备不存在 fi elif [ $IS_MOUNT -eq 1 ]; then echo 硬盘已挂载 else echo ERROR fi开机自动挂载硬盘获取硬盘 UUIDblkid -s UUID /dev/sda1写入配置vim /etc/fstab # 配置 UUID=9032ef41-46cf-4bc6-ac01-be54be5f6c49 /data ext4 defaults 0 0使用UUID挂载最近新购入了一块硬盘,不知道是树莓派供电不足还是什么原因,开机后硬盘设备不太稳定,有时是 /dev/sda1 有时候又是 /dev/sdb1,之前的脚本就会出现问题#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin export PATH # 判断硬盘是否已挂载和处理挂载点冲突 TIME=$(date "+%Y-%m-%d %H:%M:%S") LOG_FILE="/home/zh/sh/.chickDiskLog" MOUNT_POINT="/mnt/Disk" UUID="34aada44-e3e6-4a7e-b02d-66e672d3ec24" # 替换为你的硬盘UUID # 检查硬盘是否挂载 IS_MOUNT=$(findmnt -rn -S UUID=$UUID -o TARGET) if [ -z $IS_MOUNT ]; then echo "$TIME 硬盘未挂载" >> $LOG_FILE # 检查挂载点是否被占用 MOUNTED=$(mount | grep -w $MOUNT_POINT | wc -l) if [ $MOUNTED -ne 0 ]; then echo "$TIME 挂载点已被占用,尝试卸载当前设备" >> $LOG_FILE umount $MOUNT_POINT if [ $? -ne 0 ]; then echo "$TIME 卸载失败,挂载中止" >> $LOG_FILE exit 1 fi echo "$TIME 卸载成功" >> $LOG_FILE fi # 判断 UUID 是否存在 if blkid | grep -q "UUID=\"$UUID\""; then # 处理 systemd 提示 sudo systemctl daemon-reload # 挂载设备 mount UUID=$UUID $MOUNT_POINT sync if [ $? -eq 0 ]; then echo "$TIME 已挂载新设备" >> $LOG_FILE else echo "$TIME 挂载失败" >> $LOG_FILE fi else echo "$TIME 设备不存在" >> $LOG_FILE fi elif [ "$IS_MOUNT" = "$MOUNT_POINT" ]; then echo "$TIME 硬盘已挂载" >> $LOG_FILE else echo "$TIME ERROR" >> $LOG_FILE fi代码中的 systemctl daemon-reload 不是必须,挂载时出现:mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload. 提示的再添加
2022年09月17日
493 阅读
0 评论
0 点赞