Hallo Liste, nachdem meine Root Partition durch clamav beim virenscannen gut befüllt wurde habe ich beim Speichern eines *.conf files zweidrittel des eigentlichen inhaltes verloren. Da die SuSE unter MC mich nicht gewarnt hat, das zum schreiben des Files kein Platz mehr da ist, bin ich prompt gegen die Wand gelaufen (Überschreibhinweis ist da leider etwas dürftig). Kann man da wo drehen das man bei Platzproblemen gewarnt wird ? Schliesslich schaut man nicht unbedingt beim Speichern eines Files nach ob auch Platz für das Configfile da ist. Gottlob gibt es Sicherungen wo man sich seine config wirder ziehen kann. Gruß und Danke
Am Dienstag, 20. Dezember 2005 08:27 schrieb Uwe Großkinsky:
Hallo Liste,
nachdem meine Root Partition durch clamav beim virenscannen gut befüllt wurde habe ich beim Speichern eines *.conf files zweidrittel des eigentlichen inhaltes verloren.
Da die SuSE unter MC mich nicht gewarnt hat, das zum schreiben des Files kein Platz mehr da ist, bin ich prompt gegen die Wand gelaufen (Überschreibhinweis ist da leider etwas dürftig).
Kann man da wo drehen das man bei Platzproblemen gewarnt wird ? Schliesslich schaut man nicht unbedingt beim Speichern eines Files nach ob auch Platz für das Configfile da ist.
Gottlob gibt es Sicherungen wo man sich seine config wirder ziehen kann.
meines wissens kann man sich als root auch noch bei einer vollen platte einloggen um Aufräumarbeiten zu machen. Dafür wird etwas Platz "vorgehalten". Ansonsten gibt's quota. bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Hmm das muss man wissen Aufräumen konnte ich wenn man das so nennen darf muss mal schaun ob man clamd erklären kann das er sein tmp wo anders aufschlägt so wie clamscan tmpdir=/home/vscan .. in der richtung wo halt platz ist Danke dir für den Hinweis Am Dienstag, 20. Dezember 2005 08:38 schrieb Dr. Jürgen Vollmer:
Am Dienstag, 20. Dezember 2005 08:27 schrieb Uwe Großkinsky:
Hallo Liste,
nachdem meine Root Partition durch clamav beim virenscannen gut befüllt wurde habe ich beim Speichern eines *.conf files zweidrittel des eigentlichen inhaltes verloren.
Da die SuSE unter MC mich nicht gewarnt hat, das zum schreiben des Files kein Platz mehr da ist, bin ich prompt gegen die Wand gelaufen (Überschreibhinweis ist da leider etwas dürftig).
Kann man da wo drehen das man bei Platzproblemen gewarnt wird ? Schliesslich schaut man nicht unbedingt beim Speichern eines Files nach ob auch Platz für das Configfile da ist.
Gottlob gibt es Sicherungen wo man sich seine config wirder ziehen kann.
meines wissens kann man sich als root auch noch bei einer vollen platte einloggen um Aufräumarbeiten zu machen. Dafür wird etwas Platz "vorgehalten". Ansonsten gibt's quota.
bye Jürgen
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Uwe Großkinsky wrote:
Hallo Liste,
nachdem meine Root Partition durch clamav beim virenscannen gut befüllt wurde habe ich beim Speichern eines *.conf files zweidrittel des eigentlichen inhaltes verloren.
Da die SuSE unter MC mich nicht gewarnt hat, das zum schreiben des Files kein Platz mehr da ist, bin ich prompt gegen die Wand gelaufen (Überschreibhinweis ist da leider etwas dürftig).
Kann man da wo drehen das man bei Platzproblemen gewarnt wird ? Schliesslich schaut man nicht unbedingt beim Speichern eines Files nach ob auch Platz für das Configfile da ist.
Gottlob gibt es Sicherungen wo man sich seine config wirder ziehen kann.
Gruß und Danke
Um das zu vermeiden richtet man verschiedene Partitionen ein. Läuft dann eine voll bleibt das System reaktionsfähig. Gruß -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFDp7edgRRKXJrQjTsRAvhlAJ9S0aBOoyrITSqzRl62RAlmHqw7eQCdGAHQ 4ux0R0LRXGgCsvg081tm9+o= =26ki -----END PGP SIGNATURE-----
Hallo, On 20-Dec-2005 Ralf Prengel wrote:
Um das zu vermeiden richtet man verschiedene Partitionen ein. Läuft dann eine voll bleibt das System reaktionsfähig.
Sein System bliebt doch lauffaehig. Er hat sich nur eine Konfigurationsdatei zerschossen. Und das war's. Als root sollte man eben genau wissen, wie sein System funktioniert und was man tut. Oder man weiss es nach dem ersten Zwischenfall. Wenn man Programme laufen laesst, die viel Festplattenspeicher brauchen, aber nur eingeschraenkt Festplattenspeicher zur Verfuegung steht, bleibt einem nichts weiter uebrig, als immer mal wieder df zu befragen. Letzteres laesst sich uebrigens auch mit einem cron-Job regeln. Entweder laesst man sich das komplette Ergebnis per Mail zustellen, oder man bastelt sich etwas, dass das Ergebnis auswertet und nur dann eine Mail schickt, wenn ein bestimmter Wert unterschritten wird. Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-)) Beste Gruesse, Heinz. -- Reiseberichte aus Mittel- und Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de
Am Dienstag, 20. Dezember 2005 09:17 schrieb Heinz W. Pahlke:
Hallo,
On 20-Dec-2005 Ralf Prengel wrote:
Um das zu vermeiden richtet man verschiedene Partitionen ein. Läuft dann eine voll bleibt das System reaktionsfähig.
Sein System bliebt doch lauffaehig. Er hat sich nur eine Konfigurationsdatei zerschossen. Und das war's.
Als root sollte man eben genau wissen, wie sein System funktioniert und was man tut. Oder man weiss es nach dem ersten Zwischenfall.
Wenn man Programme laufen laesst, die viel Festplattenspeicher brauchen, aber nur eingeschraenkt Festplattenspeicher zur Verfuegung steht, bleibt einem nichts weiter uebrig, als immer mal wieder df zu befragen.
Letzteres laesst sich uebrigens auch mit einem cron-Job regeln. Entweder laesst man sich das komplette Ergebnis per Mail zustellen, oder man bastelt sich etwas, dass das Ergebnis auswertet und nur dann eine Mail schickt, wenn ein bestimmter Wert unterschritten wird.
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
hat nur einen Nachteil: man muß dran denken..... Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Hallo! Am Dienstag, 20. Dezember 2005 09:40 schrieb Dr. Jürgen Vollmer:
Am Dienstag, 20. Dezember 2005 09:17 schrieb Heinz W. Pahlke:
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
hat nur einen Nachteil: man muß dran denken.....
Da ich das "Problem" auch schon immer mal lösen wollte, habe ich kurzerhand mal die Zeit für 5000 df's eingesetzt, um es lösen, weil es bei uns halt nicht nur um EINE Maschine geht, sondern um einige... df + ssh + df + exit + ssh + ... summiert sich ganz schön mit der Zeit. Auf einer Solaris 5.6 Maschine steht jetzt im cron: 33 6,12 * * * /usr/ucb/df | /bin/grep ^/dev/dsk | /bin/awk '$5~/^9[7-9]%/||$5~/^1..%/{print}' | /usr/xpg4/bin/grep -q % && ( /usr/ucb/df | /bin/grep ^/dev/dsk | /bin/awk '$5~/^9[0-89]%/||$5~/^1..%/{print}' | /bin/grep % | /usr/ucb/mail -s "Dateisystem auf der xyz voll!" email@host.domain ) Das /bin/grep kann keine -q Option, deshalb zwei verschiedene grep... Grüße, Thomas Mack
* Thomas Mack wrote on Tue, Dec 20, 2005 at 10:19 +0100:
Da ich das "Problem" auch schon immer mal lösen wollte, habe ich kurzerhand mal die Zeit für 5000 df's eingesetzt, um es lösen, weil es bei uns halt nicht nur um EINE Maschine geht, sondern um einige... df + ssh + df + exit + ssh + ... summiert sich ganz schön mit der Zeit.
Bei mehreren Maschinen möchtest Du vielleicht nagios probieren. Das find ich fein, dass Tool. Diskspace monitore ich damit über SNMP. Ist beim erstenmal /richtig/ Arbeit (ein Tag für ein paar Server und ein paar Dienste), aber hat mir immer gut geholfen - kann ich empfehlen. Weiss aber nicht, wie das SUN SNMP ist, hab immer net/ucd-snmpd genommen, da war ne Option genau dafür drin. Nagios macht dann noch die hundert anderen Tests, nur für df lohnt nicht. Kann mail und web mit History und Statistik, braucht man finde ich.
Auf einer Solaris 5.6 Maschine steht jetzt im cron:
33 6,12 * * * /usr/ucb/df | /bin/grep ^/dev/dsk | /bin/awk '$5~/^9[7-9]%/||$5~/^1..%/{print}' | /usr/xpg4/bin/grep -q % && ( /usr/ucb/df | /bin/grep ^/dev/dsk | /bin/awk '$5~/^9[0-89]%/||$5~/^1..%/{print}' | /bin/grep % | /usr/ucb/mail -s "Dateisystem auf der xyz voll!" email@host.domain )
<btw> ARGH! 7 fork()s :) und mail explizit rufen? Macht doch cron eh! Da fand ich mein Zeilchen schicker ;) </btw> oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.
Hallo, Am Tue, 20 Dec 2005, Steffen Dettmer schrieb:
* Thomas Mack wrote on Tue, Dec 20, 2005 at 10:19 +0100: [..]
Auf einer Solaris 5.6 Maschine steht jetzt im cron: 33 6,12 * * * /usr/ucb/df | /bin/grep ^/dev/dsk | /bin/awk '$5~/^9[7-9]%/||$5~/^1..%/{print}' | /usr/xpg4/bin/grep -q % && ( /usr/ucb/df | /bin/grep ^/dev/dsk | /bin/awk '$5~/^9[0-89]%/||$5~/^1..%/{print}' | /bin/grep % | /usr/ucb/mail -s "Dateisystem auf der xyz voll!" email@host.domain )
<btw> ARGH! 7 fork()s :) und mail explizit rufen? Macht doch cron eh! Da fand ich mein Zeilchen schicker ;) </btw>
Das sind ein paar fork() + exec() mehr. Mindestens 11: /bin/sh /usr/ucb/df /bin/grep /bin/awk /usr/xpg4/bin/grep /bin/sh /usr/ucb/df /bin/grep /bin/awk /bin/grep /usr/ucb/mail Implizite subshells wg. der Pipes nicht mitgerechnet. Ein 'strace -eprocess' unter Linux wuerde helfen, unter Solaris kann das evtl. IIRC 'ptrace' (ggfs. mit einem '2>&1 | grep "fork\|exec"' hintendran, keine Ahnung, ob das *trace von Solaris sowas wie die -e Option kennt). Anders gesagt: Ein GRAUS! 1. gehoert sowas nicht in die crontab sondern in ein shell-script und nur das script laesst man per cron(tab) aufrufen 2. gehe ich fast jede Wette ein, dass man das alles mit einem awk + einem aus awk gestarteten '/usr/ucb/df' + /usr/ucb/mail erledigen kann. grep + awk ist hyperfluid. Denn greppen kann awk auch. GRUNDREGEL: HAT MAN MEHR ALS EIN GREP ODER AWK ODER GREP UND AWK IN BELIEBIGER REIHENFOLGE IN EINER "PIPE"-KETTE MACHT MAN WAS FASLCH.[tm] Speziell "grep | awk | grep" ist grauslig. Vielleicht liegt ja in /usr/ucb oder /usr/xpg4/bin auch ein GNU awk, da koennte man dann sogar alles, inkl. Aufruf von df in einem gawk-script erledigen und dessen Ausgabe dann cron per Mail zustellen lassen, oder ggfs. auch "per Hand" an 'mail' verfuettern. -dnh, der selber auch schon df per gawk zu einem dfall verwurstet hat. -- "Sorry, I'm currently working with simpler life forms. Nothing with a backbone." -- "Winston Scudder Thurmad" "Oh. Can I have a middle manager then?" -- "Helix" [from "Freefall" [http://freefall.purrsia.com/ff600/fv00507.htm]
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 12/21/2005 05:45, David Haller schrieb: | | GRUNDREGEL: HAT MAN MEHR ALS EIN GREP ODER AWK ODER GREP UND AWK IN | BELIEBIGER REIHENFOLGE IN EINER "PIPE"-KETTE MACHT MAN WAS FASLCH.[tm] | Wow, eine selbst-beweisende Aussage (gibt's bestimmt ein schickes Wort dafür): 1) du hast grep und awk in einer beliebigen Reihenfolge in einer Kette benutzt ;-) 2) und falsch ist tatsächlich "faslch" geschrieben ;-) - -- Konstantin www.konmal.de: GPG key and grecipes software Get more SUSE RPMs at packman.links2linux.org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) iD8DBQFDqRTroJMoTQilaMYRAnPNAJ48Gpb0hREJi8Md1RBexNvVchO8XwCglQxx lKQgnTzXU6bY+B3iMqhLxbc= =XDUf -----END PGP SIGNATURE-----
Hallo, On 20-Dec-2005 Dr. Jürgen Vollmer wrote:
Am Dienstag, 20. Dezember 2005 09:17 schrieb Heinz W. Pahlke:
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
hat nur einen Nachteil: man muß dran denken.....
Klar, aber als Admin muss man ohnehin staendig an vieles denken. Auf eine Sache mehr oder weniger kommt es da auch nicht mehr an. Beste Gruesse, Heinz. -- Reiseberichte aus Mittel- und Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de
Am 20 Dec 2005 um 10:36 hat Heinz W. Pahlke geschrieben:
Hallo,
On 20-Dec-2005 Dr. Jürgen Vollmer wrote:
Am Dienstag, 20. Dezember 2005 09:17 schrieb Heinz W. Pahlke:
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
hat nur einen Nachteil: man muß dran denken.....
Klar, aber als Admin muss man ohnehin staendig an vieles denken. Auf eine Sache mehr oder weniger kommt es da auch nicht mehr an.
Hi, Kleinfiiieeech macht auch mist ! Ich finde es besser, sich Routinearbeiten durch Cronjobs vom Hals zu halten. Und durch ein Script kann auch noch reagiert werden, wenn man gerade im Meeting steckt :-) Gruß, Lothar
Beste Gruesse,
Heinz.
--
Reiseberichte aus Mittel- und Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
-- Lothar Behrens | Rapid Prototyping ... Rosmarinstr 3 | 40235 Düsseldorf | www.lollisoft.de
hallo Ursache war bei mir clamd der alle zu öffnende und zu speichernde Dateien über das smb protokoll scannt. aber mal erhlich wer macht schon jedesmal df -h nach dem login das volumen der mountpoints zu checken... da gäbe es wohl noch files mehr zu tun als nur das. 1 GB sollte schon reichen nur kam jemand auf die idee eine 450 MB grosse mysql db abzulegen ... das war es dann auch. Das System selber macht ansonsten das was es machen soll. und muckt auch nicht deshalb schau ich mal wie ich clamd konfiguriere das er nichtmehr unter / macht (ich habe bei der installation nur das /home auf einen eigenen mountpoint gesetzt was schon ne weile her ist suse 9.0 so 1.5 jahre oder so und root 5 GB ... 1 GB frei) platz ist knapp und der geiz ist manchmal eben do nicht so angebracht. ich hab aus diesem Grund auch schonmal gepostet ob man über samba in der smb.conf sagen kann das dateien grösser als 50 MB verboten sind. und quota ist da nicht ganz das richtige denke ich. im "Das Samba Buch" steht davon auch nichts ... leider. was ist eine sinnvolle aufteilung für die mountoints ? das hängt doch von dem ab was alles auf der kiste laufen soll wie mysql entwicklungsserver wo unter /var auch die mysql db's liegen Die wenigsten werden wohl quellcode neu compilieren um pfade von packeten anzupassen, das passiert doch erst wenn man sieht das es in den standard rpm's zu problemen führt trotzdem danke für die kommentare Am Dienstag, 20. Dezember 2005 09:17 schrieb Heinz W. Pahlke:
Hallo,
On 20-Dec-2005 Ralf Prengel wrote:
Um das zu vermeiden richtet man verschiedene Partitionen ein. Läuft dann eine voll bleibt das System reaktionsfähig.
Sein System bliebt doch lauffaehig. Er hat sich nur eine Konfigurationsdatei zerschossen. Und das war's.
Als root sollte man eben genau wissen, wie sein System funktioniert und was man tut. Oder man weiss es nach dem ersten Zwischenfall.
Wenn man Programme laufen laesst, die viel Festplattenspeicher brauchen, aber nur eingeschraenkt Festplattenspeicher zur Verfuegung steht, bleibt einem nichts weiter uebrig, als immer mal wieder df zu befragen.
Letzteres laesst sich uebrigens auch mit einem cron-Job regeln. Entweder laesst man sich das komplette Ergebnis per Mail zustellen, oder man bastelt sich etwas, dass das Ergebnis auswertet und nur dann eine Mail schickt, wenn ein bestimmter Wert unterschritten wird.
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
Beste Gruesse,
Heinz.
--
Reiseberichte aus Mittel- und Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de
* Heinz W. Pahlke wrote on Tue, Dec 20, 2005 at 09:17 +0100:
steht, bleibt einem nichts weiter uebrig, als immer mal wieder df zu befragen.
Letzteres laesst sich uebrigens auch mit einem cron-Job regeln. Entweder laesst man sich das komplette Ergebnis per Mail zustellen, oder man bastelt sich etwas, dass das Ergebnis auswertet und nur dann eine Mail schickt, wenn ein bestimmter Wert unterschritten wird.
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
df | perl -ane ' if ($F[3] < 100 * 1024) { print "$F[0]: disk low ($F[3]/$F[4]) on \n" }' Bei cron auf Pfade achten. Testen. Keine Gewährleistung irgendeiner Art. hostname sollte über den Cron-Mail-Absender erkennbar sein. Cron mailt nicht, wenn keine Ausgaben. Sollte also schon reichen die Zeile da oben. Bei mir: link:/usr/lib/pl-5.0.10/dotfiles # df | perl -ane '
if ($F[3] < 100 * 1024) { print "$F[0]: disk low ($F[3]/$F[4]) on \n" }' Filesystem: disk low (Available/Use%) on /dev/hda1: disk low (73953/23%) on /dev/hdb1: disk low (73949/23%) on
weil /dev/hda1 99M 22M 73M 23% /boot weniger als 100MB frei. Bugs: Überlange mountpunkte: /disk3/xfer/tocopy/suse-10.0-x86_32/iso/SUSE-10.0-CD-OSS-i386-GM-CD1.iso 615136 615136 0 100% /home/public/mnt mit Zeilenumbruch werden nicht korrekt verarbeitet, soll man also nicht machen. Kann man natürlich einbauen. (So Heinz, Dich darf ich jetzt 13 Jahre lang jeden Tag anrufen? ^^) oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.
Hallo, Am Tue, 20 Dec 2005, Steffen Dettmer schrieb:
* Heinz W. Pahlke wrote on Tue, Dec 20, 2005 at 09:17 +0100: [..]
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
df | perl -ane ' if ($F[3] < 100 * 1024) { print "$F[0]: disk low ($F[3]/$F[4]) on \n" }'
df | gawk '$4 < 102400 { print $1": disk low ("$4"/"$5")";}'
Bei cron auf Pfade achten. Testen. Keine Gewährleistung irgendeiner Art. hostname sollte über den Cron-Mail-Absender erkennbar sein.
Oder 'hostname' ;) df | gawk ' BEGIN { H="'`hostname`'"; ## kurz mal entquoten zur shell *eg* } $4 < 102400 { print $1": disk low ("$4"/"$5") on "H; } ' Praktisch wuerde ich das aber samt dem 'df' in ein gawk-script verpacken: ==== ACHTUNG: ungetestet! ==== #!/usr/bin/gawk -f BEGIN { hncmd="hostname"; hncmd | getline HOSTNAME; close(hncmd); WARNBELOW=100*1024; DF="df" while( DF | getline ) { if ( $4 < WARNBELOW ) { print $1": disk low ("$4"/"$5") on "HOSTNAME; } } close(DF); } ==== Hm. Lt. den -W Optionen von gawk ist das auch recht portabel: $ gawk -W lint-old -f ~/bin/warndiskfull.awk >/dev/null gawk: /home/dh/bin/warndiskfull.awk:4: warning: getline is not supported in old awk gawk: /home/dh/bin/warndiskfull.awk:5: warning: close is not supported in old awk gawk: /home/dh/bin/warndiskfull.awk:8: warning: getline is not supported in old awk $ gawk -W posix -f ~/bin/warndiskfull.awk >/dev/null $ gawk -W compat -f ~/bin/warndiskfull.awk >/dev/null $ AWK Versionen, die kein getline/close koennen duerften also eher selten sein, aber man weiss ja nie, vor allem bei den doch teilweise sehr seltsamen Implementationen auf kommerziellen Unices... Kurz: das ganze sollte auch als #!/usr/bin/awk -f oder so funktionieren.
Bugs: Überlange mountpunkte: /disk3/xfer/tocopy/suse-10.0-x86_32/iso/SUSE-10.0-CD-OSS-i386-GM-CD1.iso 615136 615136 0 100% /home/public/mnt
mit Zeilenumbruch werden nicht korrekt verarbeitet, soll man also nicht machen. Kann man natürlich einbauen.
Habe ich jetzt auch nicht getestet, sollte aber auch mit gawk gehen. Falls df das ueberhaupt zweizeilig ausgibt und es nicht nur einfach das Terminal umbricht.
(So Heinz, Dich darf ich jetzt 13 Jahre lang jeden Tag anrufen? ^^)
Ich auch!!1elf!! -dnh -- In an organization, each person rises to the level of his own incompetency -- The Peter Principle [from the BSD fortune file]
* David Haller wrote on Wed, Dec 21, 2005 at 06:08 +0100:
Am Tue, 20 Dec 2005, Steffen Dettmer schrieb:
* Heinz W. Pahlke wrote on Tue, Dec 20, 2005 at 09:17 +0100: [..]
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
df | perl -ane ' if ($F[3] < 100 * 1024) { print "$F[0]: disk low ($F[3]/$F[4]) on \n" }'
df | gawk '$4 < 102400 { print $1": disk low ("$4"/"$5")";}'
Ist genau das gleiche oder? das "on " steht bei mir noch, weil da ein `hostname` dran war, bis mir einfiel, dass das cron eh schon macht.
Bei cron auf Pfade achten. Testen. Keine Gewährleistung irgendeiner Art. hostname sollte über den Cron-Mail-Absender erkennbar sein.
Oder 'hostname' ;)
redundant :-)
Praktisch wuerde ich das aber samt dem 'df' in ein gawk-script verpacken:
Warum?
Bugs: Überlange mountpunkte: /disk3/xfer/tocopy/suse-10.0-x86_32/iso/SUSE-10.0-CD-OSS-i386-GM-CD1.iso 615136 615136 0 100% /home/public/mnt
mit Zeilenumbruch werden nicht korrekt verarbeitet, soll man also nicht machen. Kann man natürlich einbauen.
Habe ich jetzt auch nicht getestet, sollte aber auch mit gawk gehen. Falls df das ueberhaupt zweizeilig ausgibt und es nicht nur einfach das Terminal umbricht.
Nee, das funktioniert genauso wenig wie mein Perl-Vorschlag; es macht genau die gleichen Ausgaben: /disk3/xfer/tocopy/suse-10.0-x86_32/iso/SUSE-10.0-CD-OSS-i386-GM-CD1.iso: disk low (/) on link 615136: disk low (100%//home/public/mnt) on link Überrascht mich auch nicht, es tut ja das gleiche (nur auf etwas umständlichere Art SCNR :)). oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.
* Steffen Dettmer wrote on Wed, Dec 21, 2005 at 14:59 +0100: [once upon a time in china...]
[Programm, um Plattenplatz zu prüfen]
df | perl -ane ' if ($F[3] < 100 * 1024) { print "$F[0]: disk low ($F[3]/$F[4]) on \n" }' [...] Überrascht mich auch nicht, es tut ja das gleiche (nur auf etwas umständlichere Art SCNR :)).
<precondition> Proportionalen Font? Terminal 80 breit und 50 lang? Sonst erkennt man die Kerze unten evtl. nicht :-) </precondition> Hier eine zeitlich hoffentlich von der Stimmung her gut passende (und noch etwas umständlichere) Version: =====8<---------------------------------------------------------- perl <<'EOT' eval eval '"'. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (( ( ( '#' ) ) ) ) ) ))))) ) )))))))) ) . '!'.'/'.( ( ( ( ('['))))^ '.').( ( '[') ^ ( ( '('))).( ( '[')^"\)"). '/'.('`'|"\"").( '`'|')').('`'|'.').'/' .('['^'+').('`'|'%').('['^ ')').('`'|',').('!'^'+').( '['^'+').('['^')').("\`"| ')').('`'|'.').('['^'/'). ('{'^'[').'<'.'<'."'".('`' ^'%').('`'^'/').('{'^"\/"). "'".('!'^'+').('!'^'+').('{' ^'+').('`'|',').('`'|'!'). ('['^'/').('['^'/').("\`"| '%').('`'|'.').('{'^'[' ).('['^'(').('`'|')').( '`'|'.').('`'|'$').('{' ^'[').('`'|'$').(('`')| '/').('`'|'#').('`'|'(' ).('{'^'[').('`'|'%').( '`'|"'").('`'|'!').('`' |',').':'.('!'^('+')).( '!'^'+').('`'^'&').('[' ^ ')').('`'|'/').('`'|'(' ).(('`')| '%').('{'^'[').('{'^',' ) . ('`'|('%')).( '`'|')').('`'|'(').('`' | '.').('`'| '!').('`'|"\#").( '`'|'(').('['^'/').('`' |'%').('`'|"\."). (( '!')).('!'^'+').('!'^'+').('`'^'%'). ('`'^'/').('{'^'/'). +( '!'^'+').'"';$:='.'^'~';$~='@'|'(';$^=')'^"\[";$/= '`'| '.';$,='('^'}';$\='`' |+ ( ( ( ( "\!"))));$:= ')'^'}';$~='*' |'`';$^='+'^'_';$/ ='&'|'@';$,=('[')& '~' ;#; #;# EOT --------------------------------------------------------->8====== Kann man so einer bash vorwerfen. Anmerkungen: - Wer unverständlichen Code aus ungesicherter Quelle (unsignierte eMails, mit unbekanntem Schlüssel signierte eMails, eMails - selbst wenn verifizierbar PGP signiert - von nicht persönlich bekannten) ausführt, ist selbst Schuld. --> Das macht man nicht! - Es gab schon "Scherze", mit denen sich Leute Dateien gelöscht haben oder ähnliches, weil es jemand lustig fand, etwas gemeines in einem Script zu verstecken. - Obige Kerze kann man auch in eine Datei schreiben (einschliesslich der Zeile mit "eval eval", aber ohne das "EOT" am Ende, also 50 Zeilen), die z.B. candle.pl nennen. Da kann man auch als erste Zeile hinzufügen: "#!/usr/bin/perl", dann kann man es als ./candle.pl starten. Sollte man aber nur machen, wenn man es versteht, weil ihr dürft dem Script ja sonst nicht trauen, könnte ja was gemeines sein! - "perl -MO=Deparse < candle.pl" bringt dann möglicherweise etwas Licht in das Programm, welches (neben eval, aber egal) nur eine einzige Perlfunktion aufruft. - Mit http://search.cpan.org/dist/Acme-EyeDrops/lib/Acme/EyeDrops.pm können alle mitspielen, aber bitte nicht auf der Liste :) oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.
Hallo, Am Wed, 21 Dec 2005, Steffen Dettmer schrieb:
* Steffen Dettmer wrote on Wed, Dec 21, 2005 at 14:59 +0100: [once upon a time in china...]
[Programm, um Plattenplatz zu prüfen]
df | perl -ane ' if ($F[3] < 100 * 1024) { print "$F[0]: disk low ($F[3]/$F[4]) on \n" }' [...] Überrascht mich auch nicht, es tut ja das gleiche (nur auf etwas umständlichere Art SCNR :)). [..] Hier eine zeitlich hoffentlich von der Stimmung her gut passende (und noch etwas umständlichere) Version: [..Perlcode in Form einer ASCII-Art Kerze..] Kann man so einer bash vorwerfen.
*g*
Anmerkungen: [gesnippt]
ACK. HANXmas, -dnh, der sich aber erst Freitag "abmeldet" -- 55: Fachhändler Student, 24 Jahre, Geologie (vormals Informatik), Gewerbeschein (15 DM), wohnt bei den Eltern (Kristian Köhntopp)
Hallo, Am Wed, 21 Dec 2005, Steffen Dettmer schrieb:
* David Haller wrote on Wed, Dec 21, 2005 at 06:08 +0100:
Am Tue, 20 Dec 2005, Steffen Dettmer schrieb:
* Heinz W. Pahlke wrote on Tue, Dec 20, 2005 at 09:17 +0100: [..]
Mir ist das mit einem cron-Job allerdings zu aufwendig. In der Zeit, in der ich das geschrieben habe, kann ich schaetzungsweise 5000 Mal df aufrufen. Pro Tag einmal aufgerufen, reicht die eingesparte Programmierzeit fuer gut 13 Jahren ;-))
df | perl -ane ' if ($F[3] < 100 * 1024) { print "$F[0]: disk low ($F[3]/$F[4]) on \n" }'
df | gawk '$4 < 102400 { print $1": disk low ("$4"/"$5")";}'
Ist genau das gleiche oder?
Jup. Aber schneller.
Praktisch wuerde ich das aber samt dem 'df' in ein gawk-script verpacken:
Warum?
Einfacher in der Verarbeitung der Daten, spart evtl. auch ne sub-shell.
Bugs: Überlange mountpunkte: [..] Habe ich jetzt auch nicht getestet, sollte aber auch mit gawk gehen. Falls df das ueberhaupt zweizeilig ausgibt und es nicht nur einfach das Terminal umbricht.
df gibt leider einen Zeilenumbruch mit aus.
Nee, das funktioniert genauso wenig wie mein Perl-Vorschlag; es macht genau die gleichen Ausgaben:
/disk3/xfer/tocopy/suse-10.0-x86_32/iso/SUSE-10.0-CD-OSS-i386-GM-CD1.iso: disk low (/) on link 615136: disk low (100%//home/public/mnt) on link
==== #!/usr/bin/gawk -f BEGIN { hncmd="hostname"; hncmd | getline HOSTNAME; close(hncmd); WARNBELOW=100*1024; DF="df" while( DF | getline ) { if ( ! $6 ) { tmp = $0; DF | getline; $0 = tmp $0; } if ( $4 < WARNBELOW ) { print; print $1": disk low ("$4"/"$5") on "HOSTNAME; } } } ==== Getestet mit einem device-Namen mit 117 Zeichen (und Terminal auf 80x24). Kann man auch in Perl so machen. Davon wird das Perl-script aber nicht schneller. *hurhur*
Überrascht mich auch nicht, es tut ja das gleiche (nur auf etwas umständlichere Art SCNR :)).
Umstaendlicher??? Das glaub' ich nicht Tim^WSteffen! -dnh PS: Nur damit keine Missverstaendnisse aufkommen: ich mag Perl. Sehr. Aber eben nicht fuer alles. -- "Here, in the bare dark face of night / A calm unhurried eye draws sight -- We see in what we think we fear / The cloudings of our thought made clear" "A most interesting contribution, we're sure, but can we keep this just a little more focused?" -- GSV "Wisdom Like Silence" to LSV "Serious Callers Only"
Steffen Dettmer wrote:
Nee, das funktioniert genauso wenig wie mein Perl-Vorschlag; es macht genau die gleichen Ausgaben:
/disk3/xfer/tocopy/suse-10.0-x86_32/iso/SUSE-10.0-CD-OSS-i386-GM-CD1.iso: disk low (/) on link 615136: disk low (100%//home/public/mnt) on link
Überrascht mich auch nicht, es tut ja das gleiche (nur auf etwas umständlichere Art SCNR :)).
Dann filtere doch die unerwünschten Dateisysteme zB. folgendermaßen aus: # df -x iso9660 | perl .... Es sind übrigens mehrere -x möglich. Ciao, Daniel
Hi Uwe, Am Di 20.Dezember 2005 08:27 schrieb Uwe Großkinsky:
nachdem meine Root Partition durch clamav beim virenscannen gut befüllt wurde habe ich beim Speichern eines *.conf files zweidrittel des eigentlichen inhaltes verloren.
Kann man da wo drehen das man bei Platzproblemen gewarnt wird ? Schliesslich schaut man nicht unbedingt beim Speichern eines Files nach ob auch Platz für das Configfile da ist.
Stichwort Nagios, sicherlich ist es für _einen_ Rechner overkill aber spätestens wenn man sich auch noch für die Servicequalität seines Providers interessiert ist das Tool den (geringen) Aufwand fürs setting wert. auch das ganze rrd* geraffel hilft mit etwas mehr Aufwand gute Statistiken über alle möglichen Parameter des Rechners zu erhalten, das ist auch oft ein brauchbarer pool um im nachhinein die Ursachen für plötzlichen Platzverbrauch im Filesystem zu finden. Konstruiertes Beispiel: Kollege x legt ein backup seines notebooks im filesystem ab, der Admin bemerkt es erst nicht, x macht das noch ein paar mal, irgendwann wird der warnlevel erreicht, der admin sucht nach den Zunahmeevents, aber nach was soll er suchen? Mit der statistik kann er mit find gezielt nach dateien suchen die an einem bestimmten datum oder einem datumsbereich hinzugekommen sind evtl. noch mit der ungefähren gösse der Zunahme, und schon hat er nach einem Bruchteil der Zeit die ein du -sh /home/* brauchen würde den Übeltäter ausfindig gemacht. Genauso findet man auch amok laufende dienste die logs zumüllen etc. und kann sich vielleicht erinnern was man getan hat als der spuk anfing. Merke: die meisten Probleme bemerkt man erst wenn es zu spät ist. *) rrd-tool google hilft hier weiter Gruss Falk
Deinen Hinweis werde ich beherzigen und mich zu rrd-tool infomieren Aber .. träume ich wenn ich nach einer möglichkeit suche über den Samba Dienst eine Filegrösse zu beschränken ? Damit hätte ich das Problem ohnehin schon erschlagen ? Wenn ich dazu ein Script basteln müsste wäre ich dem Wahnsinn nahe weil ich's nicht kann ..scripten meine ich. Dankeschön Am Dienstag, 20. Dezember 2005 11:22 schrieb Falk Sauer:
Hi Uwe,
Am Di 20.Dezember 2005 08:27 schrieb Uwe Großkinsky:
nachdem meine Root Partition durch clamav beim virenscannen gut befüllt wurde habe ich beim Speichern eines *.conf files zweidrittel des eigentlichen inhaltes verloren.
Kann man da wo drehen das man bei Platzproblemen gewarnt wird ? Schliesslich schaut man nicht unbedingt beim Speichern eines Files nach ob auch Platz für das Configfile da ist.
Stichwort Nagios, sicherlich ist es für _einen_ Rechner overkill aber spätestens wenn man sich auch noch für die Servicequalität seines Providers interessiert ist das Tool den (geringen) Aufwand fürs setting wert.
auch das ganze rrd* geraffel hilft mit etwas mehr Aufwand gute Statistiken über alle möglichen Parameter des Rechners zu erhalten, das ist auch oft ein brauchbarer pool um im nachhinein die Ursachen für plötzlichen Platzverbrauch im Filesystem zu finden. Konstruiertes Beispiel: Kollege x legt ein backup seines notebooks im filesystem ab, der Admin bemerkt es erst nicht, x macht das noch ein paar mal, irgendwann wird der warnlevel erreicht, der admin sucht nach den Zunahmeevents, aber nach was soll er suchen? Mit der statistik kann er mit find gezielt nach dateien suchen die an einem bestimmten datum oder einem datumsbereich hinzugekommen sind evtl. noch mit der ungefähren gösse der Zunahme, und schon hat er nach einem Bruchteil der Zeit die ein du -sh /home/* brauchen würde den Übeltäter ausfindig gemacht. Genauso findet man auch amok laufende dienste die logs zumüllen etc. und kann sich vielleicht erinnern was man getan hat als der spuk anfing.
Merke: die meisten Probleme bemerkt man erst wenn es zu spät ist.
*) rrd-tool google hilft hier weiter
Gruss Falk
Hi Uwe, Am Di 20.Dezember 2005 11:48 schrieb Uwe Großkinsky:
Deinen Hinweis werde ich beherzigen und mich zu rrd-tool infomieren
Nagios ist für dein Problem imho besser geeignet.
Aber .. träume ich wenn ich nach einer möglichkeit suche über den Samba Dienst eine Filegrösse zu beschränken ?
imho ja, mir ist kein parameter bekannt der es erlaubt die filegrösse in der smb.conf zu begrenzen, aaaaber siehe unten.
Damit hätte ich das Problem ohnehin schon erschlagen ?
nicht wirklich. mehrere files sind auch ein grosses ... hier hilft nur eine userquota oder ein spezialisierter ansatz.
Wenn ich dazu ein Script basteln müsste wäre ich dem Wahnsinn nahe weil ich's nicht kann ..scripten meine ich.
das lässt sich recht flott lernen. ... aber du könntest in einem preexec oder postexec event dieses share überwachen aber dafür brauchts halt auch wieder ein paar zeilen script. Diese Lösung verhindert aber auch nicht das schreiben bis zum limit. preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' & das ist ein original beispiel um eine windows nachricht zu senden wenn man sich mit dem share verbindet, das könnte man _untested_ so ähnlich abändern: postexec = csh -c 'echo \"the space of %S i actual \`/usr/bin/du -sh /unixpfad\`!\" | /usr/bin/smbclient -M %m -I %I' & genausogut könntest du files in so einem script nach bestimmten Kriterien direkt wieder löschen. irgendwo hab ich auch noch ein schönes Beispiel in perl für preexec um ein logon script on-the-fly userbezogen zu erzeugen. Gruss Falk
participants (11)
-
David Haller
-
Dr. Jürgen Vollmer
-
Falk Sauer
-
Heinz W. Pahlke
-
Jens Daniel Schmidt
-
Konstantin
-
lothar.behrens@lollisoft.de
-
Ralf Prengel
-
Steffen Dettmer
-
Thomas Mack
-
Uwe Großkinsky