重写了一遍硬盘的spindown休眠脚本

重写了一遍硬盘的spindown休眠脚本,增加了一个硬盘,觉得之前写的那个硬盘的spindown休眠脚本有点问题。

#!/bin/bash
if [ ! -f /dev/shm/1 ]
then
touch /dev/shm/1 /dev/shm/2
echo "$(date '+%F %T') Tempfile does not exist, creating" >> /var/log/hd_spindown.log
fi
mv /dev/shm/1 /dev/shm/2

cat /proc/diskstats > /dev/shm/1

aa=`ls -l /dev/disk/by-id |grep WDC_WD10EARS|sed '2,$d'|sed 's/^.*\///g'|grep s`
if [ ! "$aa" = "" ]
then
   if [ "$(diff /dev/shm/1 /dev/shm/2 | grep $aa )" = "" ]
     then
       if [ "$(/sbin/hdparm -C /dev/$aa | grep "drive state" | cut -d: -f2 | awk '{ print $1}')" = "active/idle" ] 
         then
           /sbin/hdparm -y /dev/$aa &
           echo "$(date '+%F %T') $aa Spindown" >> /var/log/hd_spindown.log
         else
           echo "$(date '+%F %T') already spun down $aa" >> /var/log/hd_spindown.log
         fi
     else
       echo "$(date '+%F %T') $aa is in use" >> /var/log/hd_spindown.log
     fi
fi


z=`ls -l /dev/disk/by-id |grep WDC_WD10EZEX|sed '2,$d'|sed 's/^.*\///g'|grep s`  
if [ ! "$z" = "" ]
then 
   if [ "$(diff /dev/shm/1 /dev/shm/2 | grep $z )" = "" ]
     then
       if [ "$(/sbin/hdparm -C /dev/$z | grep "drive state" | cut -d: -f2 | awk '{ print $1}')" = "active/idle" ] 
         then
           /sbin/hdparm -y /dev/$z &
           echo "$(date '+%F %T') $z Spindown" >> /var/log/hd_spindown.log
         else
           echo "$(date '+%F %T') already spun down $z" >> /var/log/hd_spindown.log
         fi
     else
         echo "$(date '+%F %T') $z is in use" >> /var/log/hd_spindown.log
     fi
fi 

根据/dev/disk/by-id里硬盘的id来确定是那个硬盘, 比较精确。

关于无聊人

一个无聊人而已
此条目发表在技术生活分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注