嵌入式技术
【要求】
写一个检测脚本,用来检测本机所有磁盘分区读写是否都正常。
提示:可以遍历所有挂载点,然后新建一个测试文件,然后再删除测试文件,如果可以正常新建和删除,那说明该分区没问题
【解析】
该脚本核心点有两个
1)如何遍历所有挂载点
2)如何正常新建、删除文件
先来说第一点,遍历所有挂载点,可以使用df命令 ,首先运行看下结果吧
挂载点就是最后面那一列,但是这些挂载点里,好几个都是devtmpfs和tmpfs,这些都不用管,这些是内存文件系统。
所以,需要过滤掉devtmpfs和tmpfs,可以这样实现
df |grep -v 'tmpfs'
还需要将第一行去掉,可以使用sed '1d'实现:
df|sed '1d' |grep -v 'tmpfs'
如何获取到最后一列呢?可以使用awk '{print $NF}'
再来看第二点,如何正常新建、删除文件。可以使用touch testfile 来测试创建一个临时文件,创建成功后再删除掉 rm testfile。
当然,需要创建成功后,才能删除,所以中间需要一个 &&
touch testfile && rm -f testfile
【答案】
最终脚本是这样的:
#!/bin/bash for mount_p in `df |sed '1d' |grep -v 'tmpfs' |awk '{print $NF}'` do touch $mount_p/testfile && rm -f $mount_p/testfile if [ $? -ne 0 ] then echo "$mount_p 读写有问题" else echo "$mount_p 读写正常" fi done
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !