Hallo zusammen, ich hab mir auf einen älteren Rechner openSuse 10.2 installiert den ich als Netzwerkdatei-Server mit Samba nutzen möchte. Dieser soll rund um die Uhr laufen, jedoch soll die eingebaute IDE Festplatte bei längerem Leerlauf, d.h. wenn niemand auf die Daten zugreift, abgeschaltet werden. Bei einem Zugriff auf die Daten soll die Platte dann wieder hochgefahren werden. Dies hat den Hintergrund das nicht unnötig Strom verbraucht wird und vor allen die Platte nicht zu warm wird. Jetzt zu meinem Problem: Ein Versuch die Platte mit hdparm -y /dev/hda manuell in den Standbymodus zu versetzen hilft nicht, da die Platte gleich wieder anspringt, ich vermute, dass das System selber Daten (logs usw.) auf die Platte schreibt. Ist das wirklich so, wenn ja kann man das irgenwie umgehen, dass die Platte zur Ruhe kommt? Bei einem weiteren Versuch habe ich mit hdparm -Y /dev/hda die Platte in den Schlafenmodus versetzt, hat auch geklappt, nur so kann ich sie nicht wieder aktivieren, weder über einen Netzwerk-Zugriff auf die Daten noch ist mir ein Konsolen-Befehl bekannt der die Platte wieder aufweckt. So dass ein Neustart erforderlich ist und der natürlich die Platte checkt, weil diese nicht sauber ungemountet wurde. Für jeden Tipp bin ich dankbar, vielleicht gibt es ja einen anderen Befehl von dem ich nichts weiß. Weitere Informationen zum System: -BIOS unterstüzt APM und ist auch aktiviert -Platte enthält eine swap, root und eine Daten Partition die auf /home gemountet ist; root und Daten Partition sind mit ext2 formatiert -Suse Minimlinstallation nur Textmodus -256 MB RAM -HD WesternDigital 500GB danke und gruß sonyandi -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Walter Müller wrote:
Hallo zusammen,
ich hab mir auf einen älteren Rechner openSuse 10.2 installiert den ich als Netzwerkdatei-Server mit Samba nutzen möchte. Dieser soll rund um die Uhr laufen, jedoch soll die eingebaute IDE Festplatte bei längerem Leerlauf, d.h. wenn niemand auf die Daten zugreift, abgeschaltet werden. Bei einem Zugriff auf die Daten soll die Platte dann wieder hochgefahren werden. Dies hat den Hintergrund das nicht unnötig Strom verbraucht wird und vor allen die Platte nicht zu warm wird.
Serverdienste und Stromsparen vertragen sich schlecht, da sollte dann schon die Hardware entsprechend ausgesucht sein.
Jetzt zu meinem Problem: Ein Versuch die Platte mit hdparm -y /dev/hda manuell in den Standbymodus zu versetzen hilft nicht, da die Platte gleich wieder anspringt, ich vermute, dass das System selber Daten (logs usw.) auf die Platte schreibt. Ist das wirklich so, wenn ja kann man das irgenwie umgehen, dass die Platte zur Ruhe kommt?
Kaum, du könntest höchstens versuchen, eine Flashcard oder ähnliches für die System bzw. Log-Partition einzusetzen. Insgesamt ist die Stromersparnis damit jedoch nicht besonders hoch. Die Festplatte verbraucht etwa 10 Watt im Betrieb, höchstens 13-15 Watt. Wenn du stattdessen einen Router nehmen würdest, der eine USB-Platte verwenden kann, würdest du vermutlich besser fahren.
Bei einem weiteren Versuch habe ich mit hdparm -Y /dev/hda die Platte in den Schlafenmodus versetzt, hat auch geklappt, nur so kann ich sie nicht wieder aktivieren, weder über einen Netzwerk-Zugriff auf die Daten noch ist mir ein Konsolen-Befehl bekannt der die Platte wieder aufweckt. So dass ein Neustart erforderlich ist und der natürlich die Platte checkt, weil diese nicht sauber ungemountet wurde.
Für jeden Tipp bin ich dankbar, vielleicht gibt es ja einen anderen Befehl von dem ich nichts weiß.
Weitere Informationen zum System: -BIOS unterstüzt APM und ist auch aktiviert -Platte enthält eine swap, root und eine Daten Partition die auf /home gemountet ist; root und Daten Partition sind mit ext2 formatiert -Suse Minimlinstallation nur Textmodus -256 MB RAM -HD WesternDigital 500GB
Interessant wäre es vielleicht, das System über USB-Stick/CF-Card oder ähnliches zu fahren und dann die Platte. Wenn jedoch Energiesparen und Wärme eine hohe Priorität haben, dann würde ich über andere Hardware nachdenken. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 22.07.07 schrieb Sandy Drobic <suse-linux@japantest.homelinux.com>:
Kaum, du könntest höchstens versuchen, eine Flashcard oder ähnliches für die System bzw. Log-Partition einzusetzen. Insgesamt ist die Stromersparnis damit jedoch nicht besonders hoch. Die Festplatte verbraucht etwa 10 Watt im Betrieb, höchstens 13-15 Watt. Wenn du stattdessen einen Router nehmen würdest, der eine USB-Platte verwenden kann, würdest du vermutlich besser fahren.
Welches ist die Log Partition? Etwa root? Bzw. kann ich die logs nicht ausschalten, da ich da eh in den seltensten Fällen reinschauen werde. Router mit USB-Platte habe ich auch schon hintermir, da ist der Flaschenhals USB1 am Router.
Interessant wäre es vielleicht, das System über USB-Stick/CF-Card oder ähnliches zu fahren und dann die Platte. Wenn jedoch Energiesparen und Wärme eine hohe Priorität haben, dann würde ich über andere Hardware nachdenken.
Das System auf CF habe ich auch schon hinter mir, da ist das System um etliches langsamer als auf der Platte. Der Hauptgrund ist allerdings, dass auf der CF ebenfalls ständig geschrieben wird und je nach Karte überlebt diese nur eine begrenzte Anzahl von Schreibvorgängen, d.h. ich müsste mir alle paar Monate eine neue Karte kaufen. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Walter Müller wrote:
Am 22.07.07 schrieb Sandy Drobic <suse-linux@japantest.homelinux.com>:
Kaum, du könntest höchstens versuchen, eine Flashcard oder ähnliches für die System bzw. Log-Partition einzusetzen. Insgesamt ist die Stromersparnis damit jedoch nicht besonders hoch. Die Festplatte verbraucht etwa 10 Watt im Betrieb, höchstens 13-15 Watt. Wenn du stattdessen einen Router nehmen würdest, der eine USB-Platte verwenden kann, würdest du vermutlich besser fahren.
Welches ist die Log Partition? Etwa root?
Meistens. Unter Suse werden normalerweise in /var/log/ die Logdateien von Syslog angelegt. Wenn du einen anderen Linuxserver in der Nähe hast, kannst du die Logs auch zu diesem Server schicken. Dann sollte zumindest das Loggen keine Plattenaktivität mehr zur Folge haben.
Bzw. kann ich die logs nicht ausschalten, da ich da eh in den seltensten Fällen reinschauen werde.
Puh, ein Server ohne Log nennt sich Windows. Zumindest finde ich dort nur in den seltensten Fällen etwas brauchbares im Eventlog.
Router mit USB-Platte habe ich auch schon hintermir, da ist der Flaschenhals USB1 am Router.
Du brauchst also größere Performance als USB 1.1 und weniger Stromverbrauch als ein normaler Rechner. Wie wäre es mit einem günstigen gebrauchten Laptop? Das sollte die Anforderungen erfüllen.
Interessant wäre es vielleicht, das System über USB-Stick/CF-Card oder ähnliches zu fahren und dann die Platte. Wenn jedoch Energiesparen und Wärme eine hohe Priorität haben, dann würde ich über andere Hardware nachdenken.
Das System auf CF habe ich auch schon hinter mir, da ist das System um etliches langsamer als auf der Platte. Der Hauptgrund ist allerdings, dass auf der CF ebenfalls ständig geschrieben wird und je nach Karte überlebt diese nur eine begrenzte Anzahl von Schreibvorgängen, d.h. ich müsste mir alle paar Monate eine neue Karte kaufen.
Wie sind denn jetzt die Rahmenbedingungen bezüglich Leistung/Wärme/Stromverbrauch/Budget? Ohne diese Angaben müsste ich vermutlich meine milchige Kristallkugel bemühen. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Wie sind denn jetzt die Rahmenbedingungen bezüglich Leistung/Wärme/Stromverbrauch/Budget?
ok / naja, könnte kühler sein / zwischen 20 und 40 watt / keins -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Son, 22 Jul 2007, Walter Müller schrieb:
Jetzt zu meinem Problem: Ein Versuch die Platte mit hdparm -y /dev/hda manuell in den [..] Bei einem weiteren Versuch habe ich mit hdparm -Y /dev/hda die Platte
Du suchst eigentlich die Option -S... -S Set the standby (spindown) timeout for the drive. This value is used by the drive to determine how long to wait (with no disk activity) before turning off the spindle motor to save power. Aber dagegen, daß die Platte ständig wieder geweckt wird (z.B. mind. alle 20min durch's Log) hilft das nix... IIRC gibt's aber ein passendes HOWTO wie man dem Problem abhilft, ob das allerdings sinnvoll ist ist eine andere Frage. Und Festplatten sind nicht dafür ausgelegt, ständig gestartet zu werden. -dnh -- On-line, adj.: The idea that a human being should always be accessible to a computer. -- BSD fortune file -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo,
Am Son, 22 Jul 2007, Walter Müller schrieb:
Jetzt zu meinem Problem: Ein Versuch die Platte mit hdparm -y /dev/hda manuell in den
[..]
Bei einem weiteren Versuch habe ich mit hdparm -Y /dev/hda die Platte
Du suchst eigentlich die Option -S...
-S Set the standby (spindown) timeout for the drive. This value is used by the drive to determine how long to wait (with no disk activity) before turning off the spindle motor to save power.
Aber dagegen, daß die Platte ständig wieder geweckt wird (z.B. mind. alle 20min durch's Log) hilft das nix... Es sei denn man schaltet den ab zB mit: echo -n "$0: syslog: " cd /etc/init.d ./syslog stop echo -n "$0: sync: " snc=`sync` if [[ ${#snc} -eq 0 ]]
Am Sonntag, 22. Juli 2007 schrieb David Haller: then echo "OK DONE" else echo " uups:$snc FAILED??" fi LG, Calli -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Es sei denn man schaltet den ab zB mit: echo -n "$0: syslog: " cd /etc/init.d ./syslog stop echo -n "$0: sync: " snc=`sync` if [[ ${#snc} -eq 0 ]] then echo "OK DONE" else echo " uups:$snc FAILED??" fi
Heute abend werde ich zunächst das syslog ausschalten und mein Glück erneut mit hdparm versuchen. Ich nehme an dass mit laptop_mode das syslog ebenfalls ausgeschaltet werden muss. Ist das richtig? Abeer zuerst mal vielen Dank für die Tipps. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Montag, 23. Juli 2007 schrieb Walter Müller:
Es sei denn man schaltet den ab zB mit: echo -n "$0: syslog: " cd /etc/init.d ./syslog stop echo -n "$0: sync: " snc=`sync` if [[ ${#snc} -eq 0 ]] then echo "OK DONE" else echo " uups:$snc FAILED??" fi
Heute abend werde ich zunächst das syslog ausschalten und mein Glück erneut mit hdparm versuchen. Ich nehme an dass mit laptop_mode das syslog ebenfalls ausgeschaltet werden muss. Ist das richtig? Nein, laptop_mode schaut nur wie lange die hd keinen (Schreib-??) Zugriff hatte und wenn das >= als in der conf angeben legt er die Platte schlafen.
Ist eigentlich gedacht für laptops, deren (kleine) Platten für mehr (!) spin-downs und spin-ups ausgelegt sind als IDE (SCSI weiss ich nicht). Du mußt Dir also wirklich überlegen, wann ein runterfahren sinnmacht! Ich hab gefragt, ob irgendwo in /etc vergraben die Zeit stünde, wann der letzte Zugriff auf die Platte passiert ist, er meinte nein, das müsse man selbst mitschreiben - hmm, dann doch lieber laptop_mode. Auf deren Seite gibt es interessante Erklärungen zu dem Thema!
Abeer zuerst mal vielen Dank für die Tipps. Gerne,
Calli -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
So folgendes habe ich nun ausprobiert: /etc/init.d/syslog stop Shutting down syslog services done sync hdparm -y /dev/hda /dev/hda: issuing standby command Ergebnis: tatsächlich die Platte springt nicht sofort wieder an, sondern spätestens nach 10 sekunden :-( ein hadparm -S1 /dev/hda schickt die platte noch nicht mal in den schlaf 2.Versuch: laptop_mode unter http://www.samwel.tk/laptop_mode/ runtergeladen und installiert anschließend der perl skript kopiert und ausgeführt my $state = 'idle'; if (hd_is($state)) { print "$state\n"} else {print "NOT $state\n"} sub hd_is { my $state = ($_[0] && $_[0] =~ /active|idle|standby/) ? shift : die join(' ', caller)." has made wrong call: hd(@_) valid:active|idle|standby\n"; system("hdparm -C /dev/hda | grep $state >/dev/null"); return (($?>>8) ? 0 : 1); } dann erhalte ich die folgende Fehlermeldung: ./test.pl: line 1: my: command not found ./test.pl: line 2: syntax error near unexpected token `$state' ./test.pl: line 2: ` if (hd_is($state)) { print "$state\n"} else {print "NOT $state\n"}' Ist etwa perl nicht installiert ? 3. Versuch Skript unter http://www.pl-berichte.de/t_system/hd-laptop-shutdown.html kopiert und ausgeführt führt zu folgender Meldung nas:/usr/local/sbin # ./laptop_mode Syntax: laptop_mode nas:/usr/local/sbin # Gibt es keine genaue Anleitung (am besten auf deutsch) zu dem Thema? Ich bin nämlich ein Linux newbie.
Du kannst noatime setzen - laptop_mode schreibt wie - alles wird dann in den chache geschrieben bis a) diese Zeit abgelaufen (Zeit ab dem ersten Schreibzugriff bis jetzt) ist, oder b) ein Lese-Zugriff erfolgt zB weil das best. Programm noch nicht im chache ist, oder c) der dirtied-Inode-Speicher voll ist.
wie muss ich meine fstab ändern, die wie folgt aussieht: /dev/hda2 / ext2 acl,user_xattr 1 1 /dev/hda3 /home ext2 acl,user_xattr 1 2 /dev/hda1 swap swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0
Ich habe daher auch die cron 'abschaltet' und starte sie extra durch ein script, dass wiederum von einen 'hd_Wächter' einmal am Tag gestartet wird. mit einem sync am Schluß..
Wie schalte ich die cron ab? Reicht's wenn alle Einträge auskommentiert werden? nas:/usr/local/sbin # crontab -l no crontab for root So wie's aussieht ist kein cron aktiv oder?
Der hd_Wächter kann auch anschalten zu log-schreiben, warum die Platte hoch kam. Kannst alles haben, wenn'st willst, aber ich bin ein lausiger Programmierer, denke ich.
Gerne, wenn eine kleine Anleitung dabei ist. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Walter Müller, Dienstag, 24. Juli 2007 21:16:
dann erhalte ich die folgende Fehlermeldung: ./test.pl: line 1: my: command not found ./test.pl: line 2: syntax error near unexpected token `$state' ./test.pl: line 2: ` if (hd_is($state)) { print "$state\n"} else {print "NOT $state\n"}'
Ist etwa perl nicht installiert ?
rpm -qa | grep perl
Wie schalte ich die cron ab? Reicht's wenn alle Einträge auskommentiert werden?
nas:/usr/local/sbin # crontab -l no crontab for root
Mach ein rccron status Wenn das "running" auswirft, dann mach ein rccron stop
So wie's aussieht ist kein cron aktiv oder?
Vielleicht hat cron keine jobs, aber laufen tut er wahrscheinlich trotzdem. Mach zur Sicherheit auch gleich ein rcatd status, und dann ggf. ein rcatd stop. Der atd ist für einmalige Jobs, cron für wiederkehrende. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
So folgendes habe ich nun ausprobiert:
/etc/init.d/syslog stop Shutting down syslog services done sync hdparm -y /dev/hda /dev/hda: issuing standby command
Ergebnis: tatsächlich die Platte springt nicht sofort wieder an, sondern spätestens nach 10 sekunden :-( Das ist wahrscheinlich der pdflush und das nicht gesetzte noatime, Linux
Am Dienstag, 24. Juli 2007 schrieb Walter Müller: per default ist wohl für SCSI Platten gedacht, die immer laufen sollen und nicht für normale user mit ihren IDEs, die besser mal in Ruhe versetzt werden sollten! Aber google "Linux noatime Commit" brachte gleich einmal: http://linuxenterprise.de/itr/online_artikel/psecom,id,868,nodeid,9.html in Deutsch :) Es gibt aber auch ein Debugging (siehe laptop_mode): anschalten: Konsole oder bash: echo 1 > /proc/sys/vm/block_dump Perl: system('echo 1 > /proc/sys/vm/block_dump');# switch on rw log abschalten (WICHTIG !!!): Bash oder Konsole (su): echo 0 > /proc/sys/vm/block_dump aus einem Perl Prg: system('echo 0 > /proc/sys/vm/block_dump'); # switch off rw log auslesen: Konsole Bash: dmesg |grep READ >/tmp/hd.log 2>&1 dmesg |grep WRITE >/tmp/hd.log 2>&1 Perl: system ( "dmesg |grep READ >$f 2>&1"); und hier mein kl. script um den Ausdruck zu konzentrieren #!/usr/bin/perl use strict; use warnings; # Einlesen in einen Perl Hash und ausdrucken, # Mehrfach Nennungen fallen so weg :) my %show; my $f = '/tmp/hd.log'; system ( "dmesg |grep READ > $f 2>&1"); if ( -s $f > 10 ) { open F, "< $f" or warn "Can't open READ_File:$f< :$!\n"; foreach (<F>) { $show{READ}{"$1_$3"} = "$2 $3\t$1\n" if (/^(.+?): (.+?)(hda[23])[\n\r]*/) } close(F); } system ( "dmesg |grep WRITE > $f 2>&1"); if ( -s $f > 10 ) { open F, "< $f" or warn "Can't open WRITE_File:$f< :$!\n"; foreach (<F>) { $show{WRITE}{"$1_$3"} = "$2 $3\t$1\n" if (/(.+?):(. +?)(hda[23])[\n\r]*/) } close(F); } my $prt; exit 0 unless (exists $show{READ} || exists $show{WRITE} ); foreach (sort keys %{$show{READ}}) { $prt .= 'hd: '.$show{READ}{$_} } foreach (sort keys %{$show{WRITE}}) { $prt .= 'hd: '.$show{WRITE}{$_} } if ($prt) { open F, "> $f" or warn "Can't open hd-log:$f:$!\n"; print F $prt; close(F); } exit 0;
ein hadparm -S1 /dev/hda schickt die platte noch nicht mal in den schlaf naja, da muss wohl ein Blank dazwischen, ich vermute -S1 ist keine Option, -S 1 dann schon.
2.Versuch: laptop_mode unter http://www.samwel.tk/laptop_mode/ runtergeladen und installiert anschließend der perl skript kopiert und ausgeführt hmm, bei mir ist das eine Funktion für andere Programme, so alleine läuft es nicht. Es verändert ja auch nicht die hd, sondern fragt nur, dreht sie oder steht sie..
my $state = 'idle'; if (hd_is($state)) { print "$state\n"} else {print "NOT $state\n"}
sub hd_is { my $state = ($_[0] && $_[0] =~ /active|idle|standby/) ? shift : die join(' ', caller)." has made wrong call: hd(@_) valid:active|idle|standby\n"; system("hdparm -C /dev/hda | grep $state >/dev/null"); return (($?>>8) ? 0 : 1); }
dann erhalte ich die folgende Fehlermeldung: ./test.pl: line 1: my: command not found ./test.pl: line 2: syntax error near unexpected token `$state' ./test.pl: line 2: ` if (hd_is($state)) { print "$state\n"} else {print "NOT $state\n"}'
Ist etwa perl nicht installiert ? Perl Programm haben eine ziemlich wichtige erste Zeile: #!/usr/bin/perl
3. Versuch Skript unter http://www.pl-berichte.de/t_system/hd-laptop-shutdown.html kopiert und ausgeführt führt zu folgender Meldung
nas:/usr/local/sbin # ./laptop_mode Syntax: laptop_mode nas:/usr/local/sbin #
Gibt es keine genaue Anleitung (am besten auf deutsch) zu dem Thema?
Ist eigentlich dort alles beschrieben, in Deutsch nicht, da musst Du googlen, um was zu finden..
Ich bin nämlich ein Linux newbie. das ist wohl jedem hier passiert ;)
Du kannst noatime setzen - laptop_mode schreibt wie - alles wird dann in den chache geschrieben bis a) diese Zeit abgelaufen (Zeit ab dem ersten Schreibzugriff bis jetzt) ist, oder b) ein Lese-Zugriff erfolgt zB weil das best. Programm noch nicht im chache ist, oder c) der dirtied-Inode-Speicher voll ist.
wie muss ich meine fstab ändern, die wie folgt aussieht:
/dev/hda2 / ext2 acl,user_xattr 1 1 /dev/hda3 /home ext2 acl,user_xattr 1 2 /dev/hda1 swap swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0
Meine Zeile (normaler pc) schaut so aus: /dev/hda2 / ext3 noatime,commit=240,acl,user_xattr 1 1 Aber ich weiß zB schon nicht mehr was jetzt das Commit genau bedeutet, seufz. Ich programmiere zwar, aber eigentlich mag und interessiert es mich nicht, und ich vergesse daher alles ziemlich schnell wieder .. Aber sieh oben.
Ich habe daher auch die cron 'abschaltet' und starte sie extra durch ein script, dass wiederum von einen 'hd_Wächter' einmal am Tag gestartet wird. mit einem sync am Schluß..
Wie schalte ich die cron ab? Reicht's wenn alle Einträge auskommentiert werden?
nas:/usr/local/sbin # crontab -l no crontab for root
So wie's aussieht ist kein cron aktiv oder? Ich hab alles in den cron-Foldern /etc/cron/ /etc/cron.daily/ ... auskommentiert und die Routinen in ein script 'verlegt' (auch so was mit einer 'ersten Zeile': #!/bin/bash Infos zu bash:http://linuxreviews.org/beginner/abs-guide/en/index.html) Das einmal am Tag ausgeführt wird, dazu kommt dann die Platte hoch, weil auch best. andere Dinge dann geschehen.
Der hd_Wächter kann auch anschalten zu log-schreiben, warum die Platte hoch kam. Kannst alles haben, wenn'st willst, aber ich bin ein lausiger Programmierer, denke ich.
Gerne, wenn eine kleine Anleitung dabei ist. hmm, das mit der Anleitung ist so eine Sache ;) Aber ich schick's Dir mal als pm.
Calli -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mit, 25 Jul 2007, gooly@gmx.at schrieb: [..]
Es gibt aber auch ein Debugging (siehe laptop_mode): anschalten: Konsole oder bash: echo 1 > /proc/sys/vm/block_dump Perl: system('echo 1 > /proc/sys/vm/block_dump');# switch on rw log
Besser: sysctl -w vm.block_dump=1 Bzw. gleich in der /etc/sysctl.conf eintragen. Mit perl besser: ==== open(PROC, ">/proc/sys/vm/block_dump") or die "$!\n"; print PROC 1; close(PROC) or die "$!\n"; ==== system sollte man eher vermeiden und wenn doch sollte man den Rückgabewert auswerten!
auslesen: Konsole Bash: dmesg |grep READ >/tmp/hd.log 2>&1 dmesg |grep WRITE >/tmp/hd.log 2>&1
Damit überschreibt letzteres aber ersteres.
Perl: system ( "dmesg |grep READ >$f 2>&1");
*urgsl* ==== open(DMESG, "dmesg |") or die "$!\n"; print grep( /READ|WRITE/, <DMESG>); close(DMESG) or die "$!\n"; ====
und hier mein kl. script um den Ausdruck zu konzentrieren #!/usr/bin/perl use strict; use warnings; # Einlesen in einen Perl Hash und ausdrucken, # Mehrfach Nennungen fallen so weg :) my %show; my $f = '/tmp/hd.log'; system ( "dmesg |grep READ > $f 2>&1"); if ( -s $f > 10 ) {
Wieso 10 Byte?
open F, "< $f" or warn "Can't open READ_File:$f< :$!\n";
Du liest aber trotzdem? *waaah*
foreach (<F>) { $show{READ}{"$1_$3"} = "$2 $3\t$1\n" if (/^(.+?): (.+?)(hda[23])[\n\r]*/) } close(F); } system ( "dmesg |grep WRITE > $f 2>&1"); if ( -s $f > 10 ) { open F, "< $f" or warn "Can't open WRITE_File:$f< :$!\n"; foreach (<F>) { $show{WRITE}{"$1_$3"} = "$2 $3\t$1\n" if (/(.+?):(. +?)(hda[23])[\n\r]*/) } close(F); } my $prt; exit 0 unless (exists $show{READ} || exists $show{WRITE} ); foreach (sort keys %{$show{READ}}) { $prt .= 'hd: '.$show{READ}{$_} } foreach (sort keys %{$show{WRITE}}) { $prt .= 'hd: '.$show{WRITE}{$_} } if ($prt) { open F, "> $f" or warn "Can't open hd-log:$f:$!\n"; print F $prt; close(F); } exit 0;
*urgsl* Ich block da nicht durch, v.a. was du da eigentlich machen willst, daher nur "in grob". ==== open(DMESG, "dmesg |") or die "$!\n"; while(<DMESG>) { next unless /READ|WRITE/; if (/(.+?):(.+?)(hda[23])[\n\r]*/) { print "hd: $2 $3\t$1\n"; } } close(DMESG) or die "$!\n"; ====
ein hadparm -S1 /dev/hda schickt die platte noch nicht mal in den schlaf naja, da muss wohl ein Blank dazwischen, ich vermute -S1 ist keine Option, -S 1 dann schon.
Nö. ==== # hdparm -S1 /dev/hdc /dev/hdc: setting standby to 1 (5 seconds) ====
dann erhalte ich die folgende Fehlermeldung: ./test.pl: line 1: my: command not found ./test.pl: line 2: syntax error near unexpected token `$state' ./test.pl: line 2: ` if (hd_is($state)) { print "$state\n"} else {print "NOT $state\n"}'
Ist etwa perl nicht installiert ? Perl Programm haben eine ziemlich wichtige erste Zeile: #!/usr/bin/perl
Nö. Die ist nur zu automatisch ausführen nötig. Ein perl ./test.pl wird immer gehen. Wenn die Zeile fehlt, dann wird das Script durch die shell ausgeführt und das gibt dann obige Fehler. -dnh -- Censorship sucks^W is for your own good. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 26. Juli 2007 schrieb David Haller:
Hallo,
Am Mit, 25 Jul 2007, gooly@gmx.at schrieb: [..]
Es gibt aber auch ein Debugging (siehe laptop_mode): anschalten: Konsole oder bash: echo 1 > /proc/sys/vm/block_dump Perl: system('echo 1 > /proc/sys/vm/block_dump');# switch on rw log
Besser:
sysctl -w vm.block_dump=1
Bzw. gleich in der /etc/sysctl.conf eintragen. Hmm, das 'logging' soll vom programm an und abgeschaltet werden , da macht ein conf-Eintrag nicht wirklich Sinn.
Mit perl besser:
==== open(PROC, ">/proc/sys/vm/block_dump") or die "$!\n"; print PROC 1; close(PROC) or die "$!\n"; ====
system sollte man eher vermeiden warum? und wenn doch sollte man den Rückgabewert auswerten!
auslesen: Konsole Bash: dmesg |grep READ >/tmp/hd.log 2>&1 dmesg |grep WRITE >/tmp/hd.log 2>&1
Damit überschreibt letzteres aber ersteres. Ich weiß, ich benutze es ja auch nicht genau hintereinander..
Perl: system ( "dmesg |grep READ >$f 2>&1");
*urgsl* warum?
==== open(DMESG, "dmesg |") or die "$!\n"; print grep( /READ|WRITE/, <DMESG>); close(DMESG) or die "$!\n"; ==== und warum ist das besser? Ich brauch nur eine Zeile, Du 3; Perl gibt Speicher nicht wirklich wieder her, ich hab daher alles 'externalisiert' und der Speicher ist dann wieder frei.. Dies File kann sehr groß werden und das Programm soll quasi ewig laufen..
und hier mein kl. script um den Ausdruck zu konzentrieren #!/usr/bin/perl use strict; use warnings; # Einlesen in einen Perl Hash und ausdrucken, # Mehrfach Nennungen fallen so weg :) my %show; my $f = '/tmp/hd.log'; system ( "dmesg |grep READ > $f 2>&1"); if ( -s $f > 10 ) {
Wieso 10 Byte?
open F, "< $f" or warn "Can't open READ_File:$f< :$!\n";
Du liest aber trotzdem? *waaah*
Naja, lesen geht doch nicht und Perl erzeugt eine Fehlermeldung, aber dies Programm und seine Kinder laufen weiter, nur das hd-Aufwachdebugging funktioniert halt nicht. Klar, nicht schön, aber möglich und funktioniert.
foreach (<F>) { $show{READ}{"$1_$3"} = "$2 $3\t$1\n" if (/^(.+?): (.+?)(hda[23])[\n\r]*/) } close(F); } system ( "dmesg |grep WRITE > $f 2>&1"); if ( -s $f > 10 ) { open F, "< $f" or warn "Can't open WRITE_File:$f< :$!\n"; foreach (<F>) { $show{WRITE}{"$1_$3"} = "$2 $3\t$1\n" if (/(.+?):(. +?)(hda[23])[\n\r]*/) } close(F); } my $prt; exit 0 unless (exists $show{READ} || exists $show{WRITE} ); foreach (sort keys %{$show{READ}}) { $prt .= 'hd: '.$show{READ}{$_} } foreach (sort keys %{$show{WRITE}}) { $prt .= 'hd: '.$show{WRITE}{$_} } if ($prt) { open F, "> $f" or warn "Can't open hd-log:$f:$!\n"; print F $prt; close(F); } exit 0;
*urgsl* Ich block da nicht durch, v.a. was du da eigentlich machen willst, daher nur "in grob".
Ich will ja nur wissen welche Programme durch READ oder WRITE die hd aufgeweckt haben ergo brauch ich sie nur einmal und nicht jedesmal mit jedem Knötchen den sie gelesen oder geschrieben haben: Perls Hash.
==== open(DMESG, "dmesg |") or die "$!\n"; while(<DMESG>) { next unless /READ|WRITE/; if (/(.+?):(.+?)(hda[23])[\n\r]*/) { print "hd: $2 $3\t$1\n"; } } close(DMESG) or die "$!\n"; ====
Puuhh, so bekam ich 100.000 Einträge vom pdflush und kjournald..
ein hadparm -S1 /dev/hda schickt die platte noch nicht mal in den schlaf
naja, da muss wohl ein Blank dazwischen, ich vermute -S1 ist keine Option, -S 1 dann schon.
Nö.
==== # hdparm -S1 /dev/hdc
/dev/hdc: setting standby to 1 (5 seconds) ====
dann erhalte ich die folgende Fehlermeldung: ./test.pl: line 1: my: command not found ./test.pl: line 2: syntax error near unexpected token `$state' ./test.pl: line 2: ` if (hd_is($state)) { print "$state\n"} else {print "NOT $state\n"}'
Ist etwa perl nicht installiert ?
Perl Programm haben eine ziemlich wichtige erste Zeile: #!/usr/bin/perl
Nö. Die ist nur zu automatisch ausführen nötig. Ein
perl ./test.pl
wird immer gehen. ackn Wenn die Zeile fehlt, dann wird das Script durch die shell ausgeführt und das gibt dann obige Fehler. So hatte er es angewendet.. calli
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Fre, 27 Jul 2007, gooly@gmx.at schrieb:
Am Donnerstag, 26. Juli 2007 schrieb David Haller:
Am Mit, 25 Jul 2007, gooly@gmx.at schrieb: [..]
Es gibt aber auch ein Debugging (siehe laptop_mode): anschalten: Konsole oder bash: echo 1 > /proc/sys/vm/block_dump Perl: system('echo 1 > /proc/sys/vm/block_dump');# switch on rw log
Besser:
sysctl -w vm.block_dump=1
Bzw. gleich in der /etc/sysctl.conf eintragen. Hmm, das 'logging' soll vom programm an und abgeschaltet werden , da macht ein conf-Eintrag nicht wirklich Sinn.
Du weißt aber schon, was "bzw." bedeutet? sysctl zu verwenden ist jedenfalls besser.
Mit perl besser:
==== open(PROC, ">/proc/sys/vm/block_dump") or die "$!\n"; print PROC 1; close(PROC) or die "$!\n"; ====
system sollte man eher vermeiden warum?
und wenn doch sollte man den Rückgabewert auswerten! ^^^^^^^^^^^^^^^^^^^^^^
Einen weiteren Prozess zu starten ist langsam und unnötig. Generell: Es öffnet eine Sicherheitslücke, wenn man nicht 100% selber festlegt, was per system ausgeführt wird. D.h. system mit einem Kommando, das von "aussen" beeinflußt werden kann (Argumente wie z.B. auch Dateinamen), aufzurufen ist eine Sicherheitslücke. Besonders wenn system ein String und keine Liste übergeben wird, dann wird eine Shell gestartet die Wildcards und anderes im Übergebenen String auswertet...
Perl: system ( "dmesg |grep READ >$f 2>&1");
*urgsl* warum?
Gleiche Gründe wie oben.
==== open(DMESG, "dmesg |") or die "$!\n"; print grep( /READ|WRITE/, <DMESG>); close(DMESG) or die "$!\n"; ==== und warum ist das besser?
Siehe oben.
Ich brauch nur eine Zeile, Du 3;
Also _das_ ist wirklich das dümmste "Argument", was ich bisher von dir gelesen habe. Aber bitte, sogar mit Fehlerbehandlung was du nicht machst: open(D,"dmesg|") or die; print grep( /READ|WRITE/, <D>); close(D) or die;
Perl gibt Speicher nicht wirklich wieder her, ich hab daher alles 'externalisiert' und der Speicher ist dann wieder frei..
Und _das_ ist das zweitdümmste "Argument". Perl verwendet intern den Speicher wieder.
Dies File kann sehr groß werden und das Programm soll quasi ewig laufen..
Dann kann man das anpassen. Aber du verrätst ja keine Details, wie die zu verarbeitende Ausgabe von dmesg aussieht, was du damit machen willst etc. [..]
if ( -s $f > 10 ) {
Wieso 10 Byte?
open F, "< $f" or warn "Can't open READ_File:$f< :$!\n";
Du liest aber trotzdem? *waaah*
Naja, lesen geht doch nicht und Perl erzeugt eine Fehlermeldung, aber dies Programm und seine Kinder laufen weiter, nur das hd-Aufwachdebugging funktioniert halt nicht. Klar, nicht schön, aber möglich und funktioniert.
Tolle Ansicht. Arbeitest du in Redmond?
foreach (<F>) { $show{READ}{"$1_$3"} = "$2 $3\t$1\n" if (/^(.+?): (.+?)(hda[23])[\n\r]*/) } close(F); }
Hier liest du die Datei, egal ob sie geöffnet werden konnte oder nicht. Was soll der Mist? [..]
*urgsl* Ich block da nicht durch, v.a. was du da eigentlich machen willst, daher nur "in grob". Ich will ja nur wissen welche Programme durch READ oder WRITE die hd aufgeweckt haben ergo brauch ich sie nur einmal und nicht jedesmal mit jedem Knötchen den sie gelesen oder geschrieben haben: Perls Hash.
S.o. Wie sieht die Ausgabe aus? Was willst du damit anstellen?
==== open(DMESG, "dmesg |") or die "$!\n"; while(<DMESG>) { next unless /READ|WRITE/; if (/(.+?):(.+?)(hda[23])[\n\r]*/) { print "hd: $2 $3\t$1\n"; } } close(DMESG) or die "$!\n"; ==== Puuhh, so bekam ich 100.000 Einträge vom pdflush und kjournald..
Ich hab dein Gewurstel nicht genauer analysiert und eben kein Hash verwendet um die Einträge zu "filtern". Aber das ist ja trivial zu beheben. Je nachdem was man machen will mit unterschiedlichen Varianten. Aber ich rate jetzt nicht weiter. -dnh -- Use strict! *WHAM* Strict, I tell you! And -w! *WHAM* *WHAM* *WHAM* -- Skud -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Samstag, 28. Juli 2007 schrieb David Haller: > Hallo, > > Am Fre, 27 Jul 2007, gooly@gmx.at schrieb: > >Am Donnerstag, 26. Juli 2007 schrieb David Haller: > >> Am Mit, 25 Jul 2007, gooly@gmx.at schrieb: > >> [..] > > Du weißt aber schon, was "bzw." bedeutet? sysctl zu verwenden ist > jedenfalls besser. ok, ich hatte es von der Web-Seite dessen der laptop_mode entwickelt hat und habe damit dann mir geholt, was ich brauchte.. > > >> Mit perl besser: > >> > >> ==== > >> open(PROC, ">/proc/sys/vm/block_dump") or die "$!\n"; > >> print PROC 1; > >> close(PROC) or die "$!\n"; > >> ==== > >> > >> system sollte man eher vermeiden > > > >warum? > > > >> und wenn doch sollte man den Rückgabewert auswerten! > > ^^^^^^^^^^^^^^^^^^^^^^ > > Einen weiteren Prozess zu starten ist langsam und unnötig. Tja, nicht immer. Hab auch so gedacht, aber, nachdem mir ein Programm mit dem Perl-Thread-Paket einfach mal so auffhörte zu arbeiten (ohne crash, ohne Fehler ohne Kommentar, es stand einfach still), erhielt ich dazu als Antwort: "Ja, kann passieren, wenn einer der threads stark belastet wird", und es gäbe zwar den yield-command, aber wirklich zu empfehlen sei der auch nicht, weil .. Also, alles was geht hab ich jetzt 'rausgebracht'. > > Generell: > > Es öffnet eine Sicherheitslücke, wenn man nicht 100% selber festlegt, > was per system ausgeführt wird. D.h. system mit einem Kommando, das > von "aussen" beeinflußt werden kann (Argumente wie z.B. auch > Dateinamen), aufzurufen ist eine Sicherheitslücke. > > Besonders wenn system ein String und keine Liste übergeben wird, dann > wird eine Shell gestartet die Wildcards und anderes im Übergebenen > String auswertet... Ahh, das meinst Du, aber auf meinem pc arbeite nur ich, es sei denn er wird gestohlen, ... > > >> >Perl: > >> > system ( "dmesg |grep READ >$f 2>&1"); > >> > >> *urgsl* > > > >warum? > > Gleiche Gründe wie oben. > > >> ==== > >> open(DMESG, "dmesg |") or die "$!\n"; > >> print grep( /READ|WRITE/, <DMESG>); > >> close(DMESG) or die "$!\n"; > >> ==== > > > >und warum ist das besser? > > Siehe oben. > > >Ich brauch nur eine Zeile, Du 3; > > Also _das_ ist wirklich das dümmste "Argument", was ich bisher von > dir gelesen habe. Bitte? Ein Programm mit 65 Zeile (ca. 1 Din A 4 Seite) ist weit aus besser lesbar und schneller handhabbar als des Gleich auf 3 Seiten mit fasat 200 Zeilen .. > Aber bitte, sogar mit Fehlerbehandlung was du nicht > machst: > open(D,"dmesg|") or die; print grep( /READ|WRITE/, <D>); close(D) or > die; Naja. > > >Perl gibt Speicher nicht wirklich wieder her, > >ich hab daher alles 'externalisiert' und der Speicher ist dann > > wieder frei.. > > Und _das_ ist das zweitdümmste "Argument". Widerspruch. > Perl verwendet intern den Speicher wieder. hmm, manchmal ja, manchmal nein! Hier ein Bispiel der Wiener Perl-Liste. Obwohl nur eine richtige ($s) und eine interne ($_) gibt, steigt der Speicherverbrauch an und an und an, bis zur Schleife, dann bleibt er konstant (hoch) - der Speicher wurde (erstmal) nicht wiederverwendet.. #!/usr/bin/perl use warnings; use strict; my $s; print "me:$$\n"; # A $s = "A" x 10_000_000; print "A\n"; sleep 10; $s = "x"; print "x\n"; sleep 10; # B $s = "B" x 10_000_000; print "B\n"; sleep 10; $s = "x"; print "x\n"; sleep 10; # C $s = "C" x 10_000_000; print "C\n"; sleep 10; $s = "x"; print "x\n"; sleep 10; # [ ... ] # bis hier wird steigt der Speicherverbrauch immer weiter an jedesmal # ab hier ist der verbrauchte Speicher dann konstant (hoch): for ('A' .. 'Z') { $s = $_ x 10_000_000; print "$_\n"; sleep 10; $s = "x"; print "x\n"; sleep 10; } # beobachtar mit top -p ProgID > > >Dies File kann sehr groß werden und das Programm soll quasi ewig > >laufen.. > > Dann kann man das anpassen. Aber du verrätst ja keine Details, wie > die zu verarbeitende Ausgabe von dmesg aussieht, was du damit machen > willst etc. Stand weiter oben im thread, herausfinden welches Programm war die Ursache, dafür dass die Platte 'hoch' kam. > > [..] > > >> >if ( -s $f > 10 ) { > >> > >> Wieso 10 Byte? hat sich irgendwann mal so ergeben.. > >> > >> > open F, "< $f" or warn "Can't open READ_File:$f< :$!\n"; > >> > >> Du liest aber trotzdem? *waaah* und? Das erzeugt in Perl eine Warn-Meldung (use warnings;) aber das Prg läuft weiter bis zum Ende: open F, '-|','./myPrg.pl' or die "can't start Foxi: $!\n"; my $n = 0; while ( defined (my $l = <F>) ) { print "test: $n\t".$l; last if ($n++ >= 5); } close(F); sleep 1; print "NOW, read on closed handle..\n"; my $l = <F>; print "und >$l<\n\t done\n"; print "bye\n"; exit 0; NOW, read on closed handle.. readline() on closed filehandle F at ./test.pl line 15. Use of uninitialized value in concatenation (.) or string at ./test.pl line 16. und >< done bye > > > >Naja, lesen geht doch nicht und Perl erzeugt eine Fehlermeldung, > > aber dies Programm und seine Kinder laufen weiter, nur das > >hd-Aufwachdebugging funktioniert halt nicht. Klar, nicht schön, aber > >möglich und funktioniert. > > Tolle Ansicht. Arbeitest du in Redmond? Wieso, ach SuSe Linux kommt jetzt auch aus Redmont? Jetzt verstehe die viele Fehler und Probleme: - 10.0, 10.1, 10.2, - KDEwallet, speicherte plötzlich nicht mehr die neuen Schlüssel, - nach update auf 9.3 funktieniert plötzlich der Sound nicht mehr, und - die Micros waren dabei ein extra Problem, - wenn ich die aktuelle KDE-Sitzung beenden will muss ich das immer zweimal machen, das erstemal werd ich immer wieder gleich eingeloggt, das zweite Mal dann nich?? Versteh(t) mich nicht falsch, ich will auf keinen Fall Linux oder gar die Leute, die daran arbeiten schlecht machen, im Gegenteil, aber Dein Vergleich mit Redmond ist nicht wirklich mehr aktuell. > > >> > foreach (<F>) { $show{READ}{"$1_$3"} = "$2 $3\t$1\n" if > >> > (/^(.+?): (.+?)(hda[23])[\n\r]*/) } > >> > close(F); > >> >} > > Hier liest du die Datei, egal ob sie geöffnet werden konnte oder > nicht. Was soll der Mist? Perl fängt das ab, das 'Feature' ist halt nicht da, aber das Programm läuft weiter und das ist das was mir wichtig ist! > > [..] > > >> *urgsl* Ich block da nicht durch, v.a. was du da eigentlich machen > >> willst, daher nur "in grob". > > > >Ich will ja nur wissen welche Programme durch READ oder WRITE die hd > >aufgeweckt haben ergo brauch ich sie nur einmal und nicht jedesmal > > mit jedem Knötchen den sie gelesen oder geschrieben haben: Perls > > Hash. > > S.o. Wie sieht die Ausgabe aus? Was willst du damit anstellen? Aussehen: In jeder Zeile steht ein Programmname, der für der up-spin der hd verantwortlich sein könnte, im File steht jeder Programmname nur einmal bzüglich READ und WRITE. Grund: Welche Programme verursachen das spinup der hd Konsequenz: Das verhindern! a) durch zB noatim und commit, b) Prg.-Aufe zeitl. verlegen, dann wenn hd ist up. c) durch einen Aufruf dieser Programme - solange die hd 'oben' ist - diese in den chache holen, dann verursacht der Aufruf spinup. > > >> ==== > >> open(DMESG, "dmesg |") or die "$!\n"; > >> while(<DMESG>) { > >> next unless /READ|WRITE/; > >> if (/(.+?):(.+?)(hda[23])[\n\r]*/) { > >> print "hd: $2 $3\t$1\n"; > >> } > >> } > >> close(DMESG) or die "$!\n"; > >> ==== > > > >Puuhh, so bekam ich 100.000 Einträge vom pdflush und kjournald.. > > Ich hab dein Gewurstel nicht genauer analysiert und eben kein Hash > verwendet um die Einträge zu "filtern". Aber das ist ja trivial zu > beheben. Je nachdem was man machen will mit unterschiedlichen > Varianten. Aber ich rate jetzt nicht weiter. Dann einen schönen Sonntag, Calli -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
Andre Tann
-
David Haller
-
gooly@gmx.at
-
Sandy Drobic
-
Walter Müller