Mijn vraag
Disclaimer: Ik ben een totale amateur als het komt op code. Alles heb ik gemaakt met de behulp van chat gpt.
Hi allemaal,
- Ik heb sinds kort een valheim server gestart voor mijn vrienden. Hierbij wil ik graag iedere uur een back up van de server
hebben die iedere uur een copy maakt van de wereld bestanden en deze kopieert naar mijn nas waar die vrij toegang op
heeft. deze command word via cron gedaan
- Daarbij wil ik dat de script het bestands naam veranderd en er een tijd/datum mark er bij zet. Bijvoorbeeld: Vwereld 09:00
20/09/2021.
- Vervolgens bekijkt de script of er een bestand is die ouder is dan 7 dagen en verwijderd die dan.
Oke nu kom ik tegen een probleem aan.
1. De script kan het naam niet veranderen want het pad bestaat niet. Hij kan wel een copy maken naar de nas
2. in het logboek verwijderd hij de entrys die 1 uur oud is. Ik denk dat hij een complete nieuw log bestand maakt ipv de huidige te aantepassen.
Ik heb gekeken op google en wezen stoeien met Chat-gpt wat mij nergens naar toe bracht.
Ik loop op Ubuntu desktop wat op een kleine nuc draait. mochten jullie meer informatie hebben laat het dan aub weten
Hier is mijn code en mijn error codes die ik heb gekregen. Mocht iemand enige advies, ik sta open voor alles:
foutmelding die ik krijg:
Disclaimer: Ik ben een totale amateur als het komt op code. Alles heb ik gemaakt met de behulp van chat gpt.
Hi allemaal,
- Ik heb sinds kort een valheim server gestart voor mijn vrienden. Hierbij wil ik graag iedere uur een back up van de server
hebben die iedere uur een copy maakt van de wereld bestanden en deze kopieert naar mijn nas waar die vrij toegang op
heeft. deze command word via cron gedaan
- Daarbij wil ik dat de script het bestands naam veranderd en er een tijd/datum mark er bij zet. Bijvoorbeeld: Vwereld 09:00
20/09/2021.
- Vervolgens bekijkt de script of er een bestand is die ouder is dan 7 dagen en verwijderd die dan.
Oke nu kom ik tegen een probleem aan.
1. De script kan het naam niet veranderen want het pad bestaat niet. Hij kan wel een copy maken naar de nas
2. in het logboek verwijderd hij de entrys die 1 uur oud is. Ik denk dat hij een complete nieuw log bestand maakt ipv de huidige te aantepassen.
Ik heb gekeken op google en wezen stoeien met Chat-gpt wat mij nergens naar toe bracht.
Ik loop op Ubuntu desktop wat op een kleine nuc draait. mochten jullie meer informatie hebben laat het dan aub weten
Hier is mijn code en mijn error codes die ik heb gekregen. Mocht iemand enige advies, ik sta open voor alles:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| #!/bin/bash # Directories and files SRC_DIR="/home/prd-01/.config/unity3d/IronGate/Valheim/worlds_local" DEST_DIR="/mnt/valheim/Valheim world save" LOG_FILE="/mnt/valheim/Valheim world save/Valheim world save log/backup_log.txt" PROGRAM_NAME="valheim_server.x86_64" # Correct process name # Ensure log directory exists mkdir -p "$(dirname "$LOG_FILE")" # Clean log file by removing entries older than 7 days awk -v date="$(date --date='7 days ago' +%d-%m-%Y)" \ '$0 ~ date {p=1} $0 !~ date {if(p==0) next} {print}' \ "$LOG_FILE" > "$LOG_FILE.tmp" && mv "$LOG_FILE.tmp" "$LOG_FILE" # Check if the correct program (Valheim server) is running if pgrep -f "$PROGRAM_NAME" > /dev/null; then echo "$(date +"%d-%m-%Y %H:%M:%S %Z"): Program is running. Starting backup..." >> "$LOG_FILE" # Perform the backup for only LD-01.fwl and LD-01.db (handle case sensitivity) if ! rsync -av --include='LD-01.fwl' --include='LD-01.db' --exclude='*' "$SRC_DIR/" "$DEST_DIR/"; then echo "$(date +"%d-%m-%Y %H:%M:%S %Z"): Backup failed" >> "$LOG_FILE" exit 1 fi # Add a 5-second delay before renaming sleep 5 # Rename the files with a timestamp TIMESTAMP=$(date +"%H:%M %d/%m/%Y") # Rename LD-01.fwl if [ -f "$DEST_DIR/LD-01.fwl" ]; then mv "$DEST_DIR/LD-01.fwl" "$DEST_DIR/LD-01 ${TIMESTAMP}.fwl" fi # Rename LD-01.db if [ -f "$DEST_DIR/LD-01.db" ]; then mv "$DEST_DIR/LD-01.db" "$DEST_DIR/LD-01 ${TIMESTAMP}.db" fi # Cleanup old backups find "$DEST_DIR" -type f -name 'LD-01_*.fwl' -mtime +7 -exec rm {} \; find "$DEST_DIR" -type f -name 'LD-01_*.db' -mtime +7 -exec rm {} \; echo "$(date +"%d-%m-%Y %H:%M:%S %Z"): Backup completed successfully" >> "$LOG_FILE" else echo "$(date +"%d-%m-%Y %H:%M:%S %Z"): Program is not running. Backup not performed." >> "$LOG_FILE" fi |
foutmelding die ik krijg:
code:
1
2
3
4
5
6
7
| rd-01@prd-01:~$ /home/prd-01/backup_valheim.sh sending incremental file list sent 96 bytes received 12 bytes 216.00 bytes/sec total size is 76,744,756 speedup is 710,599.59 mv: cannot move '/mnt/valheim/Valheim world save/LD-01.fwl' to '/mnt/valheim/Valheim world save/LD-01 08:37 20/09/2024.fwl': No such file or directory mv: cannot move '/mnt/valheim/Valheim world save/LD-01.db' to '/mnt/valheim/Valheim world save/LD-01 08:37 20/09/2024.db': No such file or directory |