ich habe mir eine Update Skript für die routinemäßigen Updates gebastelt. Das möchte ich hier mal vorstellen. Vielleicht findet der eine oder andere das ja gut und möchte es haben. In meinem Fall heißt es "worldupdate":
Code: Select all
#!/bin/bash
# Fehlerfunktion für einheitliche Fehlerbehandlung
error_exit() {
local message="$1"
telegram "Beim Worldupdate auf Kellerkind ist ein Fehler aufgetreten: $message"
exit 1
}
# Funktion für das World-Update
do_world_update() {
if [[ $1 != "nosync" ]]; then
emaint sync -a || error_exit "emaint sync fehlgeschlagen"
fi
emerge -avuDN --with-bdeps=y @world && \
emerge @preserved-rebuild && \
emerge -a --depclean && \
revdep-rebuild -p && \
eix-update || error_exit "Ein Schritt des World-Updates ist fehlgeschlagen"
}
# Funktion für fstrim
do_fstrim() {
if fstrimcount; then
echo "fstrimcount erreicht, führe fstrim aus..."
fstrim -v /tmp && fstrim -v /var/tmp || error_exit "fstrim ist fehlgeschlagen"
else
echo "fstrimcount nicht erreicht, überspringe fstrim"
fi
}
# Hauptfunktion
main() {
do_world_update "$1" && \
do_fstrim && \
(
echo "eclean distfiles in 5s. Ctrl-c to interrupt .."
sleep 5
eclean distfiles
) || error_exit "Ein Schritt des Hauptprozesses ist fehlgeschlagen"
}
# Skript ausführen
main "$1"
Das verwendete Skrip "fstrimdount", welches hier aufgerufen wird, sorgt dafür, dass fstrim nur bei jedem 20zigsten Update auf die SSDs, die unter /tmp und /var/tmp liegen ausgeführt wird. Für die root Platte mache ich das ab und wann manuelle, aber da spielt ja weniger Musik. Daher ist das selten nötig.
fstrimdount:
Code: Select all
#!/bin/bash
# Konfigurationsvariablen
CONFIG_DIR="$HOME/.config/counter"
COUNTER_FILE="$CONFIG_DIR/fstrimcount"
MAX_COUNT=19
# Funktion zum Erstellen des Konfigurationsverzeichnisses, falls es nicht existiert
create_config_dir() {
if [[ ! -d "$CONFIG_DIR" ]]; then
mkdir -p "$CONFIG_DIR" || { echo "Fehler: Konnte Verzeichnis $CONFIG_DIR nicht erstellen" >&2; exit 1; }
fi
}
# Funktion zum Lesen des Zählerstands
read_counter() {
if [[ ! -f "$COUNTER_FILE" ]]; then
echo 0 > "$COUNTER_FILE"
fi
COUNTER=$(cat "$COUNTER_FILE")
if ! [[ "$COUNTER" =~ ^[0-9]+$ ]]; then
echo "Fehler: Ungültiger Zählerstand in $COUNTER_FILE" >&2
exit 1
fi
}
# Funktion zum Aktualisieren des Zählerstands
update_counter() {
COUNTER=$((COUNTER + 1))
if [[ $COUNTER -gt $MAX_COUNT ]]; then
COUNTER=0
echo "fstrim wird ausgeführt .."
echo "$COUNTER" > "$COUNTER_FILE"
return 0
else
echo "Kein fstrim!"
echo "$COUNTER" > "$COUNTER_FILE"
return 1
fi
}
# Hauptfunktion
main() {
create_config_dir
read_counter
echo "Aktueller fstrim count: $COUNTER"
update_counter
exit $?
}
# Skript ausführen
main
Was haltet Ihr davon?



