• Hallo Gast, du kaufst gerne günstig ein und erfährst oft vor deinen Freunden von interessanten Angeboten? Dann kannst du dein Talent als Schnäppchenjäger jetzt zu Geld machen und anderen PCGH-Lesern beim Sparen helfen! Schau einfach mal rein - beim Test der Community Deals!

Linux ./boot Partition Alert

Goldini50

Freizeitschrauber(in)
Heyho Community
Ich möchte ein kleines Script (mit Bash)schreiben welches ein Prompt ausgibt wenn die Boot-Partition über 90% ist.
Und das dann anschließend in den Autostart des Rechners einpflegen.

Falls ihr die Lösung schon habt könnt ihr sie hier posten .
Mir wären aber lieber Vorschläge/Hinweise wie man an so eine Sache ranzugehen hat.


EDIT // Meine jetzige version schaut so aus
Code:
if du -hs /boot > 140m
then
zenity --Warning --text 'Deine Boot-Partition ist zu 90% voll !!!'
else echo "Test"
fi


Problem ist das ich den Befehl "du" nicht ohne root rechte anwenden kann .... allerdings wenn ich sudo davor haue klappt es auch nicht ....


----------------
Vielen dank schonmal .
 
Zuletzt bearbeitet:

Ojdadnamo

Schraubenverwechsler(in)
Man kann mit dem df Befehl Informationen zum verfügbaren Speicherplatz anzeigen. Um Informationen zum Speicherplatz auf der /boot Partition anzeigen, kann man den Befehl df /boot benutzen. Hier hat man ein solches Skript
 
TE
Goldini50

Goldini50

Freizeitschrauber(in)
Hey ich bin mittlerweile etwas weiter mein Script funktioniert ( jedenfalls teilweise)
Code:
 #!/bin/bash

df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  echo $output
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
  partition=$(echo $output | awk '{ print $2 }' )
  if [ $usep -ge 15 ]; then
    echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)"

fi
done
if zenity --question --title="Boot-Partition fast voll" --text  'Deine Boot-Partition ist zu 20% voll !!!\nMöchtest du sie jetzt leeren ?';then

sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
zenity --info --text 'Deine alten Kernels wurden erfolgreich gelöscht'
fi

Wenn ich das script nomal ausführe funktioniert es ! Ich habe es jedoch in den Autostart von Ubuntu eingebunden , und wenn ich dann neustarte sagt er mir auch das meine Boot-Partition über 20% hat - aber das Terminal öffnet sich nicht, demzufolge kann ich auch keine Sudo abfrage machen und die alten Kernels löschen , weiß jemand wie ich das Script in einem Terminal starten kann ? Bzw. das sich zu Systemstart ein Terminal mit öffnet ?
 

Jimini

PCGH-Community-Veteran(in)
Das Terminal öffnet sich wahrscheinlich deswegen nicht, weil das Script ja mit Root-Rechten läuft, dein User aber als normaler User eingeloggt ist. Ich würde das Script stattdessen in den Autostart deines Desktop-Environments packen und es dann mit Userrechten laufen lassen.

Davon abgesehen sieht es für mich so aus, als würdest du die Kernel deinstallieren - die eigentlichen Files, welche unter /boot liegen, bleiben davon aber unberührt. Daher würde ich es so machen, dass du den laufenden Kernel abfragst oder schaust, welcher installierte Kernel der neuste ist (ist die sicherere Methode), das würde ich mit dpkg -l, grep und ggf. tail, head oder cut lösen. Die anderen Kernelfiles kannst du dann löschen lassen.

MfG Jimini
 
TE
Goldini50

Goldini50

Freizeitschrauber(in)
Zum ersten Teil...wie packe ich das Script in die "Dektop Environment" und wie lass ich es mit normalen Userrechten laufen ? ^^


Zum 2. Teil - ichhatte mich falsch ausgedrückt .Mein Ziel ist es alle alten Kernels zu löschen ( bis auf die letzten 3 aktuellsten)
 

Jimini

PCGH-Community-Veteran(in)
Zum ersten Teil...wie packe ich das Script in die "Dektop Environment" und wie lass ich es mit normalen Userrechten laufen ? ^^
Was für eine Distribution / welches Desktop Environment nutzt du denn?
Zum 2. Teil - ichhatte mich falsch ausgedrückt .Mein Ziel ist es alle alten Kernels zu löschen ( bis auf die letzten 3 aktuellsten)
Ja, aber mit
Code:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
deinstallierst du doch nur die alten Kernelpakete, die Kerneldateien unter /boot bleiben davon doch unberührt, oder? Beziehungsweise wäre ein apt-get autoremove an der Stelle doch ebenso sinnvoll, denke ich.

MfG Jimini
 
TE
Goldini50

Goldini50

Freizeitschrauber(in)
Was für eine Distribution / welches Desktop Environment nutzt du denn?
Ubuntu /Unity

Mit dem Befehl lösche ich veraltete Kernelpakete, die sich letzten endes auf den Speicher meiner /Boot Partition auswirken ! Ich habe im moment 8 Kernels(56% Belegt) wenn ich nun den Befehl ausführe habe ich noch 3 Kernels(die aktuellsten 3) Dann ist meine Partition zu 21% belegt... Also wirkt es sich ja doch aus.
 
TE
Goldini50

Goldini50

Freizeitschrauber(in)
Das ist doch gar nicht mein Problem ! Es ist schon im Autostart , das Problem ist das nach einem Neustart sich die Konsole nicht mit dem Script zusammen öffnet und dem zufolge keine Sudo abfrage zustande kommt und dann "die Reinigung" nicht absolviert wird.
 

Jimini

PCGH-Community-Veteran(in)
Schau mal, ob dir gksudo da weiterhilft - das müsste dann ein Fenster zur Passworteingabe öffnen und danach den folgenden Befehl mit Root-Rechten ausführen.

MfG Jimini
 
TE
Goldini50

Goldini50

Freizeitschrauber(in)
gksu kann ich auch nicht benutzen da man dafür sich ein Paket runterladen muss... und meine Bedingung ist das es ohne zusatzpakete funktioniert ( weil es auch auf anderen PC´s laufen soll)
 
Oben Unten