LINUX.ORG.RU

как заставить винт уснуть?


0

0

Задача: перевести винт принудительно в спящее положение.
раньше это делалось с помощью hdparm -Y /dev/hdc (винт PATA)
теперь переполз на 2.6.21 с новой ATA подсистемой, винт стал /dev/sdb, hdparm отказывается с ним работать. Как быть?

anonymous

Ответ на: комментарий от anonymous

hdparm -S 5 /dev/sda
hdparm -S 5 /dev/hda

винт уснёт, если к нему не будет обращений. Для этого

echo 5> /proc/sys/vm/laptop_mode

Но. Некоторые вещи видимо используют sync(). Поэтому запись идёт сквозная чекрез кеш. Это такие вещи как klogd и squid. Для этого я сделал скрипт boot.logtmpfs
--------------------------------------------
#!/bin/sh

case "$1" in
'start')
mount -t tmpfs tmpfs /var/log
cd /var/log
echo -n "loading empty logs..."
tar -xf ../log.u/initial.tar.gz
echo "done"
;;
'stop')
cd /var/log
echo -n "saving logs..."
tar -czf ../log.u/`date +%Y-%m-%d-%H-%m-%S`.tar.gz *
echo "done"
umount /var/log
;;
'restart')
cd /var/log
echo "restarting:"
echo -n "saving logs..."
tar -czf ../log.u/`date +%Y-%m-%d-%H-%m-%S`.tar.gz *
tar -xf ../log.u/initial.tar.gz
echo "done"
;;
*)
echo "usage $0 start|stop|restart" ;;
esac

--------------------------------------------

ссылки на который повесил в
/etc/rc.d/boot.d/K13boot.logtmpfs
/etc/rc.d/boot.d/S09boot.logtmpfs

в другой системе ссылки могут быть другими.

Чтоб сделать /var/log.u/initial.tar.gz я сотворил такой скрипт:
--------------------------------------------

#!/usr/bin/perl
chdir "/var/log";
#system "rmdir -rvf ../log.t"
mkdir "../log.t";
mkdir "../log.u";
system "cp -rp * ../log.t";

foreach my $f (`find * -type f`)
{
chomp $f;
#print "touch $f\n";
#system "touch ../log.t/$f";
print "cutting $f\n";
system "echo -n '' > ../log.t/$f";
}

chdir "../log.t";
system "cd ../log.t;tar -cvzf ../log.u/initial.tar.gz * ; cd .. ; rm -rvf log.t";

--------------------------------------------
он создаёт каталоги, обрезает все файлы и пакует их.

при запуске будет создан каталог /var/log в памяти и логи будут писаться туда. При выключении или при
/etc/rc.d/boot.logtmpfs restart
будет создан архив с логами в /var/log.u/
наподобие
-rw-r--r-- 1 root root 57209 2007-05-24 01:55 2007-55-24-01-05-58.tar.gz
-rw-r--r-- 1 root root 2382 2007-05-24 21:20 initial.tar.gz
-rw-r--r-- 1 root root 12325519 2007-05-24 21:24 old.tar.gz

Такие скрипты можно сделать и для squida.

scyld
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.