Hi,
ich habe mir hier ein kleines rsync Backup Skript angefertigt und wollte, dass es täglich um 13 Uhr ausgeführt wird.
Um 13 Uhr wird es zwar ausgeführt, aber der rsync Befehl im Skript wird ignoriert und es wird nur eine Logdatei mit den log Nachrichten erstellt.
Weiß jemand was ich verändern müsste, damit der rsync Befehl richtig ausgeführt wird?
Skript:
Bash
#!/bin/bash
datum=$(date +%Y-%m-%d)
# Pfad zur Log-Datei
log_datei="/home/backup/script/logs/log_$datum.txt"
# Funktion, um Nachrichten zu loggen
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$log_datei"
}
# Lösche Log-Dateien, die älter als 30 Tage sind
find /home/backup/script/logs -type f -name "log_*.txt" -mtime +30 -exec rm {} \;
log_message "Alte Log-Dateien gelöscht, falls vorhanden."
# Prüfe, ob der Screen "rsync-backup" existiert
if screen -list | grep -q "rsync-backup"; then
log_message "Screen 'rsync-backup' existiert bereits. Befehl wird nicht ausgeführt."
else
log_message "Screen 'rsync-backup' existiert nicht. Befehl wird ausgeführt."
rsync_command="/usr/bin/rsync -azuvPe 'ssh -oPort=22 -i /root/.ssh/id_ecdsa' --delete --exclude="/var/lib/pterodactyl" --exclude="/proc" --exclude="/sys" --exclude="/mnt" / user@123.123.123.123:/home/user/backup"
screen -S rsync-backup bash -c "$rsync_command | tee -a $log_datei 2>&1"
log_message "Befehl wurde ausgeführt"
fi
Alles anzeigen
Cronjob: