linux文件系统只读原因和监控脚本监控文件系统只读
导读:在日常工作中,经常碰到服务器由于各种各样的原因,出现IO只读故障,将机器重启后,故障就可以恢复,找不到具体故障原因。频率可能几天或者几周出现1次。
目前已知的造成硬盘分区只读的可能原因有:
文件系统错误
内核相关硬件驱动bug
FW固件类问题
磁盘坏道
硬盘背板故障
硬盘线缆故障
HBA卡故障
RAID卡故障
linux文件系统只读后怎么修复
1 重启系统看是否可以自动修复。
2 使用fsck -y /dev/sda1 进行自动修复。(用”-y”选项来执行该命令对硬盘进行检查和修复)
添加参数:fsck -y -C -t ext3 /dev/sda1 (一般情况下修复完成后,所有文件移动到 lost+found目录,文件名会被改变)
(-C 显示进度条 -t 指定文件系统类型 -y 默认自动yes修复)
3. 如果fsck修复完成后,启动系统依然自读。
#mount 用于查看哪个模块输入只读,一般显示为:
/dev/nb1 on /EarthView/RAW type ext3 (ro)(变为只读了)
重新mount,或者umount以后再remount
umount /dev/nb1
如果发现有提示“device is busy”,找到是什么进程使得他busy
fuser -m /mnt/data 将会显示使用这个模块的pid
fuser -mk /mnt/data 将会直接kill那个pid
然后重新mount即可。
还有一种方法是直接remount,命令为
mount -o rw,remount /mnt/data
使用脚本监控linux系统文件只读
使用了一个最笨的原理:
获取服务器分区,然后在每个分区进行创建文件,如果文件创建成功,删除文件,如果没有创建,那么报警文件系统发生只读。
#!/bin/bash datetime=`date '+%F %T'` hostn=`hostname` ip=`/sbin/ifconfig | grep 192.168|sed 's/ //g;s/Bcast//g'|awk -F : '{print $2}'` read_only() { partition=(`df -Th | awk '{print $7}' | xargs`) for (( i=`expr ${#partition[@]} - 1`;i>0;i-- )) do cd ${partition[i]} touch readonly_test if [ -f "readonly_test" ];then rm -rf readonly_test else the_partition[i]="${partition[i]}" fi done if [[ ${#the_partition[*]} != "0" ]];then message="${the_partition[*]}分区出现只读" echo “文件系统只读” fi } read_only
原创脚本,转载请回复!
相关推荐
bluecarrot 2020-11-23
Attend 2020-11-17
ZHAICAN 2020-11-16
codedecode 2020-11-14
zhangbingb 2020-11-12
ykmail 2020-11-11
futurezone 2020-11-06
rikeyone 2020-11-04
橄榄 2020-11-04
WenCoo 2020-10-31
liuyuchen 2020-10-27
ROES 2020-10-24
Gexrior 2020-10-22
ZHAICAN 2020-10-20
风语者 2020-10-16
zhongguomin 2020-10-16
净无邪 2020-10-15