《Shell编程实例 —— 自动检测并挂载硬盘》

1.实例

#!/bin/sh

if [ ! -d "/mnt/data/" ];then
	mkdir -p /mnt/data
fi

MOUNT_DISK()
{
	DISK_NAME=`lsblk -l | awk '{if ($3=="0") print}' | grep sd | awk '{print $1}'`
	
	if [ -b /dev/$DISK_NAME ];then
		
		echo mount /dev/$DISK_NAME /mnt/data

		mount /dev/$DISK_NAME /mnt/data

		chown -R xinda:xinda /mnt/data/

		sync
	
	else
		echo  /dev/$DISK_NAME 不是硬盘设备
	fi
}

while true
do

	sleep 2

	IS_MOUNTED=`df -h | grep /mnt/data | wc -l`

	if [ $IS_MOUNTED -eq 0 ]; then
		echo "/mnt/data 未挂载!"
		MOUNT_DISK
		echo "MOUNT_DISK done!"
	elif [ $IS_MOUNTED -eq 1 ]; then
		echo "/mnt/data 已挂载!"
		sleep 60
	else
		echo "/mnt/data 挂载错误! IS_MOUNTED = $(IS_MOUNTED) " 
	fi

		
	sleep 3
	
done

  

2.部分命令解析

2.1 wc -l

  Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

命令参数:

  • -c 统计字节数。
  • -l 统计行数。
  • -m 统计字符数。这个标志不能与 -c 标志一起使用。
  • -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
  • -L 打印最长行的长度。
  • -help 显示帮助信息
  • --version 显示版本信息

  

原文地址:https://www.cnblogs.com/zhuangquan/p/13555793.html