Meine Shellscripte (bashtools)

tuxlover

tuxlover

Der den Tux knuddelt
Hey Folks,

ich weiß das hatten wir ja schon. Aber dann kam der große Unfall und das Thema war weg.

Naja ich möchte euch hier also zum zweiten mal meine Sammlung von Scripten vorstellen und hoffe ihr könnt etwas damit anfangen.
Wenn ihr Fehler n einem der Scripte findet oder Vorschläge habt, wie man ein Script verbessern oder erweitern kann, dann poste doch bitte deine meinung dazu in diesem thread.

greetz tuxlover
 

Anhänge

  • bashtools-0.4.2.tar.gz
    19,4 KB · Aufrufe: 88
hi,

da du um Meinungen gebeten hast, ich haette da die ein oder andere Anmerkung. Bitte als konstruktive Kritik verstehen und nicht als Angriff auf dich :) (vor allem das mit dem Englisch).

Ahso, aber erstmal das positive Vorweg, prinzipiell gefaellt mir die Skript Sammlung schon ganz gut, vor allem das clearswap, wipefree und logusers find ich ganz interessant, werde ich bei Gelegenheit sicher mal genauer reinschauen.

1. Ich frage mich, ob du die Kommentare nicht vielleicht lieber erst auf Deutsch geschrieben haettest, denn sie sind leider voller (sprachlicher) Fehler, groesstenteils aber nur grammatikalischer Natur. Hier und da bin ich mir aber auch nicht sicher, ob du tatsaechlich meinst was du geschrieben hast.
Um ein Beispiel zu nennen:
#Ideas collected by Mendel Cooper (Advanced Bash Scripting Guide)
Sinngemaess heisst das etwa: Ideen wurden von Mendel Cooper zusammengetragen.
Aber ich vermute dass du eher meintest: Inspiriert durch Ideen von Mendel Cooper.
Aber vielleicht irre ich mich ja auch, und du meintest es wie du es geschrieben hast ;)

2. Das "#!/bin/bash" steht bei dir nicht in der ersten Zeile, und wird dadurch nicht beachtet. Ich weiss nicht ob das Absicht ist, um den Benutzer des Skriptes dazu zu zwingen es vorher anzupassen, oder ob das nur ein Ausrutscher ist.

3. Einige der Skripte sind nicht richtig formatiert (Einrueckung) und dadurch schwer zu lesen und anzupassen. Das kann natuerlich jeder User fuer sich machen, es waere aber natuerlich schon schoener wenn das ganze Package direkt richtig formatiert waere.

mfg,
bytepool
 
hallo bytepool,

ich bin dir für deine kritik sehr dankbar.

1. Naja ich bin der englischen Grammatik nicht wirklich so mächtig. Dass ich die englische Sprach für die Komentare geält habe, hat mehrere Gründe. Zum einen der Faulheit wegen. Englisch kommt einfach mit weniger Wörtern und weniger längeren Wörtern aus. Zum anderen habe ich dir Erfahrung gemacht, dass deutsch in der bash manchmal Schwirigkeiten mit den Umlauten macht. Aber ich kann das ja nochmal überarebiten und ins Deutsche übertragen.

2. An der Übersichtlichkeit versuche ich zu arbeiten. Ich dachte eigentlich ich würde bereits ein geiwsses Maß an Übersichtlichkeit erreichen, indem ich so viele Funktionen wie möglich benutze. Aber ich werde dass ganze gerne noch etwas leserlicher gestalten. Also mehr Einschübe in den if Bedingunen und in den Schleifen benutzen.

3. Inspiriert wurde ich tatsächlich durch Mendel Cooper und sein abs. Aber ich habe auch viele Tricks und Fragmente von da übernommen und entsprechend angepasst. Teilweise sind die Scripte erweiteterte und überarbeitete Versionen aus dem genannen Werk. Deshalb dachte ich, dass ich den Autor gebührend erwähnen sollte.

4. Das man den Sha Bang grundsätzlich am Anfang schreiben muss, wusste ich nicht. Werde das sobald wie möglich korrigieren.

vielen dank für deine konstruktive kritik

liebe grüße tuxlover
 
tuxlover schrieb:
um anderen habe ich dir Erfahrung gemacht, dass deutsch in der bash manchmal Schwirigkeiten mit den Umlauten macht.

Auf deutsch würde ich skripte nicht kommentieren, denn man weiß ja nie, wie die irgendwann die Runde machen, und wir wollen ja auch keine Kommentare auf meinetwegen Kiswahili lesen, nicht wahr? Bitte doch einfach jemanden mit stabileren Englisch-Kenntnissen, dir das zu übersetzen. Ich helfe Dir gerne.

Ich finde die Ideen Deiner bashtools z.T. sehr gelungen, eine Frage hätte ich aber zu clearswap: und zwar landen Daten doch eigentlich nicht umsonst im swap und diese Daten sollen doch auch irgendwann wieder abgearbeitet werden. Ein Teil eines swaps mag umsonst dort herumlungern (ganz schlimm ist das bei mir z.B. nach einer Google Earth-session, der veranschlagt nach 'ner halben Stunde 200 bis 300 MB, die im swap festkleben), andererseits könnten Teile von ausgelagerten Operationen / Prozessen / wasweißich auch durchaus noch benötigt werden (und i.d.R. baut sich ein swap bei mir nach 'ner Weile von alleine ab). Kann ein clearswap (erst recht wie von Dir im README vorgeschlagen als cronjob eingerichtet) nicht problematisch werden?

Ansonsten würde ich gerade diese Funktion schon sehr gerne nutzen. Trau mich nur nicht. :)
 
Zuletzt bearbeitet:
hi gropiuskalle,

danke für deine positive Rückantwort.

Ich müsste das Readme sowieso komplett überarbeiten.
Meine Englischkenntnisse beschränen sich tatsächlich auf das Verstehen. Leider hatte ich in der Schule ein total verkorksten Englischuntericht, so dass ich das erst jetzt dadurch lerne, indem ich Bücher auf englisch lese oder mir orignalsprachige Filme anschaue.
Für deine Hilfe bin ich dir natürlich sehr dankbar. Wenn du schonmal die gröbsten Fehler korrigieren könntest und die korrigierte Version hier posten würdest, wäre das eine große Hilfe.

Zu deiner Frage:
Eigentlich sollte das Script keine größeren Probleme machen, wenn du es ausführst. So ganz sicher bin ich mir da nur nicht bei der Verwendung als Cron Job, da ich es bei mir noch nicht ausprobiert habe. Das Script legt mittels dd eine Kopie der aktuellen Swp an, und benutzt diese dann während der Aufräumarbeiten. Was allerdings passiert, wenn dieser Job unerwartet beendet wird, habe ich noch nicht probiert. Natürlich solltest du es nicht so einrichten, dass es alle 10 Minuten losrödelt, weil du dann nicht mehr zum arbeiten kommst. Das Script ist leider recht Resourcenhungrig.
Um ehrlich war das nur so ne Idee. Ich werde es wahrscheinlich wieder entfernen.

Vielleicht weiß einer wie man das optimieren kann

so weit und vielen dank

freundliche grüße tuxlover
 
Also zumindest ist Dir die Grundproblematik bewusst, vielleicht folgt hier ja noch ein Kommentar zu dieser Frage von jemandem, der sich auskennt - denn als Kommando wäre das manchmal schon ausgesprochen nützlich. Solange der swap regulär abgebaut wird, brauch man ihn auch nicht löschen (in Arbeit befindliche Auslagerungen laufender oder erst kürzlich beendeter Prozesse mindern bei mir die Performance kaum bis garnicht), aber es gibt nun mal wirklich dieses Problem, dass ein ewig zugemüllter swap das Sys verlangsamt. Die Idee an sich würde ich nicht ad acta legen, aber genauer nachprüfen, was da eigentlich geschieht (nämlich sowohl beim de-swappen als auch beim swappen selbst).

tuxlover schrieb:
Für deine Hilfe bin ich dir natürlich sehr dankbar. Wenn du schonmal die gröbsten Fehler korrigieren könntest und die korrigierte Version hier posten würdest, wäre das eine große Hilfe.

Mach ich gerne, allerdings poste ich das direkt an Dich, wenn Du nichts dagegen hast, zumal ja das README etwas umfangreicher ist und eventuell auch noch Rückfragen notwendig sind, damit ich nicht was falsches schreibe. Ich fange heute oder morgen damit an (*plan*) und halte Dich auf dem Laufenden, sollte aber nicht allzu lange dauern.
 
Hallo
Wenn du wirklich die Swap leeren wisst, dann tust du das doch ohnehin nur, wenn sie nicht mehr gebraucht wird. ( Nur gecachte daten liegen darin).
Im Grunde genommen ist das dann aber nicht nötig.
Die Speicherverwaltung von Linux handelt das sehr zuverlässig.
Gecachte Daten, die nicht gebraucht werden, bremsen auch nichts aus.
Sowie die swap benötigt wird, fliegen diese Daten ohnehin raus -> wenn der Platz nicht reicht.

Um die Nutzung der Swap mal ganz auszusetzen, genügt ein swapoff mit anschließendem swapon.

BTW Ich habe mir das Script nicht angesehen, wollte nur generell zum Swap etwas sagen.

Eine Swap per Cronjob zu leeren halte ich für riskant.
Ich habe z. B. zwei kleinere Swap eingerichtet, die auf zwei verschiedenen HDD liegen.
Die höhere Priorität hat diejenge, welche nicht auf der HD liegt wo das System werkelt. So lässt sich auch mal eine Aushängen, ohne dem System den Boden wegzuziehen.
Danach die Andere und alles ist leer.

Komme allerdings sehr selten in den Swap.
Es sei denn, ich sortiere mal wieder Gigabyte Arrays. ;)

Nur so als Anmerkung von mir.

Gruß Wolfgang
 
...
Um die Nutzung der Swap mal ganz auszusetzen, genügt ein swapoff mit anschließendem swapon.

...

hallo wolfgang,

genau das macht das script. nur musste ich irgendwie umgehen, dass eine zugemüllte swap nicht ausgehängt werden kann. daher benutzt das script dd und fertigt eine kopie der aktuellen swap an die dann temporär eingehängt wird und anschließend ausgehängt und wieder gelöscht wird.

@gropiuskalle schick mir einfach ne pm. nicht die email-adresse nehmen, die ich dir mal gegeben habe. da habe ich das password nicht mehr.

greetz tuxlover
 
Hallo
Dann würde ich das einfach als alias definieren, und im Fall der Fälle selbst starten.
Wobei das Gesagte über den Sinn trotzdem beachtenswert ist.
;)
Was es bringen soll, ist mir nicht klar.
Ist wohl mehr Kosmetik der Ausgabe von free oder Top.

Wenn du wirklich Skripte veröffentlichen willst, ist ja eventuell dieses Template eine gute Orientierung für den Stil.

Gruß Wolfgang
 
tuxlover schrieb:
@gropiuskalle schick mir einfach ne pm. nicht die email-adresse nehmen, die ich dir mal gegeben habe. da habe ich das password nicht mehr.

Okay, ist vermerkt.

Wolfgang schrieb:
Im Grunde genommen ist das dann aber nicht nötig.
Die Speicherverwaltung von Linux handelt das sehr zuverlässig.
Gecachte Daten, die nicht gebraucht werden, bremsen auch nichts aus.
Sowie die swap benötigt wird, fliegen diese Daten ohnehin raus -> wenn der Platz nicht reicht.

Letzteres kann ich mit einem GB swap schlecht nachprüfen, denn komplett voll wird der nie (ist ja auch eigentlich viel zu groß), dass aber ein mit 30 oder 40% belegter swap das Sys grundsätzlich nicht ausbremst, kann ich nicht betätigen. Wie gesagt, wenn ich 'ne Weile mit Google Earth herumfliege, ist mein swap danach wenigstens mit 200MB belastet, und das verschwindet auch nach 'ner Stunde nicht, sondern lässt die Ansprechbarkeit des Systems auch nach Beenden von GE sehr zäh wirken - im Gegensatz zu Auslagerungen, die z.B. Gimp tätigt, die werden tatsächlich sehr zuverlässig beseitigt (und sind auch lange nicht so wuchtig, selbst wenn ich fünf Gimp-Fenster auf habe). Die problematische Handhabe ergibt sich jedoch nicht nur mit Google Earth, sondern z.B. mit sehr intensiv genutzten Firefoxen (>5 tabs über mehrere Stunden plus Java / Flash-Anwendungen etc.), glücklicherweise nicht allzu regelmäßig, manchmal aber eben doch - und deswegen halte ich cleanswap für mehr als Kosmetik.

Ich stelle mir aber immer noch die grundsätzliche Frage: kann man einen derart aufgefüllten swap in einer laufenden Sitzung löschen, ohne befürchten zu müssen, dass da noch benötigte Auslagerungen drunter sind? Wenn ein cronjob-deswapping theoretisch riskant ist, ist es ein händisches doch ebenso, denn wer weiß, was neben dem offensichtlichen Klötzen noch so ausgelagert wurde, das lässt sich ja nicht voneinander differenzieren.
 
Zuletzt bearbeitet:
bashtools 0.4.3 ist da!

So das ganze WE an der neuen version geschraubt und einige Verbesserungen und Fehlerkorrekturen an den Skripten vorgenommen, wobei ich besonders an die Kritik angeknüpft habe, dass die Skripte teilweise zu unlserlich waren. Aber auch das kann man bestimmt noch besser machen.

Dank Gropiuskalle wurden auch einige Englischfehler korrigiert, aber es sind bestimmt wieder welche hinzugekommen. ;)

Außerdem gibts jetzt endlich die versprochenen rpm und debs und die instabile version des ganzen. leider kann ich sie irgendwie nicht hochladen.

hmm @gropiuskalle ich schick dir die dinger mal per mail. kannst du sie dann hochladen?
 
Hier sind sie.

Ich schau auch noch mal nach den Kommentaren und so (und testen sollte ich die Dinger auch mal...).
 

Anhänge

  • bashtools_0.4.3-1_all.deb.tar.gz
    26 KB · Aufrufe: 3
  • bashtools-0.4.3.tar.gz
    22,3 KB · Aufrufe: 4
  • bashtools-0.4.3-MP1.noarch.rpm.tar.gz
    21,9 KB · Aufrufe: 0
  • bashtools_unstable-0.5.0.1.tar.gz
    18,9 KB · Aufrufe: 0
jo danke,

kannst dann die mit dem verbssertem english hier hochladen.

thx und grüße

tuxlover
 
Ich habe in deinen Scripten noch einen meiner Meinung nach großen Fehler gesehen.
Die Abfrage nach root-Rechten:

Code:
#checking for root
root_check ()
{
echo "Checking whether you have root privilegs."
if [ $USER != "root" ]
then
echo "Not Root"
drop_failure
exit $NOT_ROOT
else
drop_ok
fi
}

Ich würde lieber nach der UID abfragen, denn $USER kann auch != root sein.

Code:
root@yoda:~# echo $USER
nils
root@yoda:~# id -u
0

Ich für meinen Teil nutze den "root"-User garnicht, sondern lege für jeden, der root-Rechte hat, einen eigenen Benutzer an (useradd -u 0 -o -g 0 -d /root/<user> -m <user>). Damit lässt sich später auch ein wenig mehr nachvollziehen.

Gruß Nils
 
ja gut der unterschied ist mir nicht bewusst gewesen. werde das auf jeden fall berücksichtigen. das wäre dann ja noch einfacher, da man ja dann enfach $UID verwenden kann.

vielen dank für den hinweis

gruß tuxlover
 
Korrekt, du kannst nach $UID suchen. Ich persönlich bevorzuge immer direkt nach `id -u` abzufragen, Gewohnheit irgendwie.
 
bashtools 0.4.4

hallo allerseits,

einige von euch haben bestimmt nicht mehr damit gerechnet, dass hier nochmal etwas neues kommt. Aber nach fast einem halben jahr möchte ich euch nun bashtools in der version 0.4.4 vorstellen.

ich habe mich in dieser version hauptächlich auf die behebung von fehlern konzentriert. AUßerdem habe ich kleinere Änderungen und aufhübschungen an den scripten vorgenommen. lediglich das zipmore script wurde komplett neu geschrieben.

Wie immer suche ich noch nach fleißigen mitstreitern. ganz egal, ob ihr eine idee für ein script habt, mir bei meinem verkorkstem englisch weiterhelfen wollt ;) oder nur ein paar verbesserungsvorschläge machen wollt.

jegliche kritik ist willkommen und erwünscht.

viel spaß und liebe grüße

tuxlover
 

Anhänge

  • bashtools-0.4.4.tar.gz
    22,6 KB · Aufrufe: 19
  • bashtools_unstable-0.5.2.tar.gz
    7,5 KB · Aufrufe: 5
  • MD5SUMS.txt
    196 Bytes · Aufrufe: 2
Zuletzt bearbeitet:
ich werde sie mir mal ansehen, eigentlich finde ich das ne gute sache aber wenn man die scripts nicht selber geschrieben hat braucht man erstmal ne weile um da durchzusteigen was es macht.

zumal man ja keins einfach starten sollte ohne zu wissen was es macht gerade bei dir wo viele root rechte haben wollen *ggg

ich bin auch gerade an einem bei, das hatte ich hier auch schonmal gepostet und habe es die tage weiter entwickelt

icqcontrol
 
ich habe nichts dagegen, wenn wir das in der nächsten verison mit in die bashtools reintun, wenn du nichts dagegen hast?
 
ne nix dagegen, ich hab da sicher noch ein gutes das mach ich vielleicht heute abend noch fertig, kannst dich ja mal melden per jabber


schon fertig :)http://www.ale-x.com/page/ncprof
 
Zuletzt bearbeitet:

Ähnliche Themen

Java (weiter)lernen

Probleme mit opensuse 10.2

Server-Monitoring mit RRDTool

wer kann mir anhand eines beispiels mein problem lösen

Zurück
Oben