/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Kan i hjælpe mig med dette lille script ??
Fra : Peter


Dato : 25-08-07 18:52

Hej.

Jeg har en linux-box hvor det via et script er lykedes mig at stoppe USB
harddisk 1 efter et stykke tid uden aktivitet....
Jeg har bare to harddiske, og ville meget gerne kunne stoppe begge på denne
måde, men hvordan skal dette script mon så se ud ??

/mnt/disc0_1 fungere det på, men /mnt/disc0_2 fungere det ikke på......

#!/bin/sh
#while [ true ]; do
# load="$(cat /proc/loadavg |cut -d ' ' -f 1|cut -b '1,3-4')"
# if [ "$load" -lt "105" ]; then
# /usr/sbin/scsi-stop /dev/sda
# fi
# sleep 600
#done

if /usr/bin/[ $# -ne 1 ]; then
/bin/echo 1>&2 "Usage: $0 <device>"
exit 1
fi

PERIOD=30
BOUNDARY=1200
SCSISTOP=/usr/sbin/scsi-stop
LOGFILE=/tmp/scsi-stop.log

searchstr="disk_io:"
devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)"

str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v
'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
cooltime=0
stopped=0

while /bin/true; do
/bin/sleep $PERIOD
newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr"
/usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'`
if /usr/bin/[ "$newstr" = "$str" ]; then
cooltime=$(($cooltime + $PERIOD))
if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ];
then
$SCSISTOP $1
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Cooled down..." >> $LOGFILE
stopped=1
fi
else
if /usr/bin/[ $cooltime -ne 0 ]; then
time=`/bin/date '+%b %e %H:%M:%S'`
/bin/echo "$time: Disk first used after $cooltime
seconds" >> $LOGFILE
fi
cooltime=0
str=$newstr
stopped=0
fi
done

--
Peter



 
 
Jesper Staun Hansen (28-08-2007)
Kommentar
Fra : Jesper Staun Hansen


Dato : 28-08-07 23:50

Peter wrote:
> Hej.
>
> Jeg har en linux-box hvor det via et script er lykedes mig at stoppe USB
> harddisk 1 efter et stykke tid uden aktivitet....
> Jeg har bare to harddiske, og ville meget gerne kunne stoppe begge på denne
> måde, men hvordan skal dette script mon så se ud ??
>
> /mnt/disc0_1 fungere det på, men /mnt/disc0_2 fungere det ikke på......
>

-snip-

Hvorfor virker det på den ene og ikke på den anden? Hvad afprøver du med
af kommandoer for at få disc0_1 til at stoppe med, men som ikke virker
med disc0_2?

Peter (29-08-2007)
Kommentar
Fra : Peter


Dato : 29-08-07 15:56

Hej.

Tusind tak for svar.....

> Hvorfor virker det på den ene og ikke på den anden? Hvad afprøver du med
> af kommandoer for at få disc0_1 til at stoppe med, men som ikke virker med
> disc0_2?

Jeg tror mest at det er fordi at scriptet kun kikker på disc0_1, at det ikke
virker på andre ??
- jeg har nemlig prøvet at flytte den disk som jeg ved at det fungere på,
altså disc0_1 over så den heder disc0_2. og så stopper den ikke længere.....

--
Peter



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste