Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Impressum
x# Erstellt mit Hilfe von KI
# Remote Server IPrserver=<###-###-#-###>
# Local backup locationlbackuploc=/<quelle>
# Local backup locationlbackuploc1=/<quelle2>
# Remote backup location Datenrbackuploc=/<ziel>
# Remote backup location Medienrbackuploc1=/<ziel2>
# Pfad zur exclude.txt-DateiEXCLUDE_FILE="$(dirname "$0")/exclude.txt"
# Pfad zum LogverzeichnisLOGFILE_DIR="/<speicherort>/log"
# Sicherstellen, dass das Logverzeichnis existiertmkdir -p "$LOGFILE_DIR"
# Backup Datenrsync -avz --info=progress2,stats \ --log-file="$LOGFILE_DIR/$(date +'%Y%m%d-%H%M%S')-daten.log" \ -e "ssh -T -c aes128-gcm@openssh.com -o Compression=no -x" \ "$lbackuploc" "$rserver:$rbackuploc" &
# Backup Medienrsync -avz --info=progress2,stats --remove-source-files \ --exclude-from="$EXCLUDE_FILE" \ --log-file="$LOGFILE_DIR/$(date +'%Y%m%d-%H%M%S')-medien.log" \ -e "ssh -T -c aes128-gcm@openssh.com -o Compression=no -x" \ "$lbackuploc1" "$rserver:$rbackuploc1" &
# Hinweis: Das automatische Löschen von alten Backups sollte auf dem Remote-Server erfolgen.# Beispiel (auskommentiert):# ssh "$rserver" 'find /<ziel>/* -mtime +10 -exec rm {} \;'Die Angaben sind den eigenen Verhältnissen entsprechend anzupassen.
xxxxxxxxxx # Verzeichnis für Downloads abfragen echo -n "Bitte gib das Verzeichnis für den Download ein (Standard: aktuelles Verzeichnis $(pwd)): " read INPUT_DIR # Falls keine Eingabe, aktuelles Verzeichnis setzen if [ -z "$INPUT_DIR" ]; then DOWNLOAD_DIR="$(pwd)" else DOWNLOAD_DIR="$INPUT_DIR" fi mkdir -p "$DOWNLOAD_DIR" # Prüfen, ob eine urls.txt Datei existiert und URLs aus der Datei einlesen if [ -f "urls.txt" ]; then mapfile -t FILE_URLS < urls.txt else FILE_URLS=() fi # Zusätzliche URLs manuell eingeben echo -n "Bitte gib eine oder mehrere URLs (durch Leerzeichen getrennt) ein: " read -a INPUT_URLS # Alle URLs kombinieren URLS=("${FILE_URLS[@]}" "${INPUT_URLS[@]}")
# yt-dlp für jede URL ausführenfor URL in "${URLS[@]}"; do yt-dlp \ --restrict-filenames \ -f "bestvideo[ext=mp4][vcodec^=avc]+bestaudio[ext=m4a]/bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio/best[ext=mp4]/best" \ -o "$DOWNLOAD_DIR/%(playlist_index)s-%(title)s.%(ext)s" \ --write-info-json \ --write-description \ --parse-metadata "title:%(artist)s - %(title)s" \ --embed-metadata \ --embed-thumbnail \ "$URL"done
# Hinweis zur Nutzungecho "Download abgeschlossen! Dateien gespeichert in: $DOWNLOAD_DIR"Die urls.txt ist eine einfache Textdatei, in der jede URL Zeile für Zeile unter einander eingetragen wird (keine Leerzeichen, Tab).
xxxxxxxxxx# System Update Script# Erstellt mit Hilfe von KI
set -euo pipefail# -e: Abbrechen bei Fehlern# -u: Abbrechen bei Verwendung nicht gesetzter Variablen# -o pipefail: Fehler in Pipelines korrekt erkennen
log() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] $*"}
log "Starte Systemaktualisierung..."
log "Aktualisiere APT-Paketlisten..."sudo apt-get update
log "Führe vollständige Systemaktualisierung durch..."sudo apt-get dist-upgrade -ysudo apt-get upgrade -y
log "Entferne nicht mehr benötigte Pakete..."sudo apt-get autoremove -y
log "Aktualisiere Snap-Pakete..."if command -v snap &>/dev/null; then sudo snap refreshelse log "Snap nicht installiert. Überspringe."fi
log "Aktualisiere Flatpak-Pakete..."if command -v flatpak &>/dev/null; then sudo flatpak update -yelse log "Flatpak nicht installiert. Überspringe."fi
# Optional: Kommentierung entfernen, wenn gewünscht# log "Führe Release-Upgrade durch..."# sudo do-release-upgrade
if [ -f /var/run/reboot-required ]; then log "Neustart erforderlich. Starte System neu..." sudo rebootelse log "Kein Neustart erforderlich."fi
log "Systemaktualisierung abgeschlossen."x
# Erstellt mit Hilfe von KI# Speichern als get-verzeichnisstruktur.sh
DIR_PATH="."DEFAULT_OUTPUT_FILE="dirs.txt"
echo "Wählen Sie eine Option:"echo "1. Sicherung der Verzeichnisstruktur"echo "2. Wiederherstellung der Verzeichnisstruktur"read -p "Eingabe (1 oder 2): " OPTION
case "$OPTION" in 1) # Sicherung der Verzeichnisstruktur read -p "Geben Sie den Namen der Ausgabedatei ein (Standard: $DEFAULT_OUTPUT_FILE): " OUTPUT_FILE if [ -z "$OUTPUT_FILE" ]; then OUTPUT_FILE="$DEFAULT_OUTPUT_FILE" fi find "$DIR_PATH" -type d > "$OUTPUT_FILE" echo "Verzeichnisstruktur wurde in $OUTPUT_FILE gespeichert." ;; 2) # Wiederherstellung der Verzeichnisstruktur read -p "Geben Sie den Namen der Datei mit der Verzeichnisstruktur ein (Standard: $DEFAULT_OUTPUT_FILE): " DIRS_FILE if [ -z "$DIRS_FILE" ]; then DIRS_FILE="$DEFAULT_OUTPUT_FILE" fi
if [[ ! -f "$DIRS_FILE" ]]; then echo "Datei $DIRS_FILE nicht gefunden!" exit 1 fi
while IFS= read -r line || [[ -n "$line" ]]; do dir=$(echo "$line" | xargs) if [[ -n "$dir" ]]; then mkdir -p "$dir" echo "Erstellt: $dir" fi done < "$DIRS_FILE" ;; *) echo "Ungültige Option. Bitte 1 oder 2 wählen." exit 1 ;;esac
Wolfgang Kirk

Veröffentlicht: 2025-03-20, 08:00 Uhr aktualisiert: 16:45 Uhr, 2025-05-24