asdasd
This commit is contained in:
Executable
+118
@@ -0,0 +1,118 @@
|
||||
#!/bin/bash
|
||||
# Funktion zum Senden der Pushover-Benachrichtigung
|
||||
function send_pushover_notification() {
|
||||
local user_token="uo2sf2pmrtjvt8auu786fviabimimr"
|
||||
local app_token="agse9w3be5wf2stc9u725masjjdqsz"
|
||||
local message="$@"
|
||||
|
||||
curl -s \
|
||||
--form-string "token=$app_token" \
|
||||
--form-string "user=$user_token" \
|
||||
--form-string "title=$title" \
|
||||
--form-string "message=$message" \
|
||||
https://api.pushover.net/1/messages.json
|
||||
|
||||
}
|
||||
|
||||
while IFS= read -r line
|
||||
do
|
||||
if [[ $line == *pbs:* ]]; then
|
||||
output=$(echo "$line" | grep -oP '(?<=pbs:).*'| tr -d '[:space:]')
|
||||
for i in $output;
|
||||
do
|
||||
storage=$i
|
||||
passwort=$(grep -o $i': .*' /root/Scripte/password_7z.txt | awk -F ': ' '{print $2}')
|
||||
export PBS_PASSWORD=2LStkRwtmhYCF3Lu
|
||||
export PBS_REPOSITORY=localbac01@pbs@backup.stines.de:$i
|
||||
lastdate=$(date +"%Y-%m-%d" -d "1 day ago")
|
||||
remove_date=$(date +"%Y-%m-%d" -d "8 day ago")
|
||||
if $storage == "tnp-Invest-GmbH"; then
|
||||
remove_date=$(date +"%Y-%m-%d" -d "6 day ago")
|
||||
fi
|
||||
rm -r /mnt/backup/download/$storage/$remove_date
|
||||
mkdir -p /mnt/restore/download/$storage/$lastdate/
|
||||
mkdir -p /mnt/backup/download/$storage/$lastdate/
|
||||
|
||||
image=$(pvesm list $storage | grep $(date +"%Y-%m-%d" -d "1 day ago")| cut -d ' ' -f1 )
|
||||
|
||||
for f in $image; do
|
||||
path=$(echo "$f" | cut -d ':' -f 2- | sed 's/^backup\///')
|
||||
echo $path
|
||||
if [ -n "$f" ]; then
|
||||
start_time=$(date +%s)
|
||||
id=$(echo "$f" | cut -d ':' -f 2- | sed 's/^backup\///' | cut -d'/' -f2)
|
||||
qm unlock $id
|
||||
qm stop $id
|
||||
qm destroy $id
|
||||
rm -r /var/lib/vz/images/$id
|
||||
qmrestore $f $id --storage local
|
||||
qm set $id -delete cdrom
|
||||
qm set $id -delete ide0
|
||||
for ((net=0; net<=10; net++))
|
||||
do
|
||||
qm set $id -delete net$net
|
||||
done
|
||||
qm set $id --net10 e1000,bridge=vmbr1
|
||||
qm set $id --agent enabled=1,type=virtio
|
||||
qm set $id --net9 virtio,bridge=vmbr1
|
||||
qm start $id
|
||||
end_time=$(date +%s)
|
||||
elapsed_seconds=$((end_time - start_time))
|
||||
elapsed_minutes=$((elapsed_seconds / 60))
|
||||
sleep 60
|
||||
|
||||
status=$(qm status $id | grep "running")
|
||||
if [ "$status" == "status: running" ]; then
|
||||
echo "---------------- Starttime: $(date +"%Y-%m-%d %H:%M:%S") -------------------------" >> /root/$lastdate-backup-restore.log
|
||||
hostname=$(qm agent $id get-host-name | grep host-name)
|
||||
hostname=${hostname//\"/}
|
||||
mountpoint=$(qm agent $id get-fsinfo | grep mountpoint)
|
||||
mountpoint=${mountpoint//\"/}
|
||||
message="$storage - VM $f was Restored and Running! (Dauer $elapsed_minutes/min)" >> /root/$lastdate-backup-restore.log
|
||||
echo "$(echo -e "$message\n${hostname#"${hostname%%[![:space:]]*}"}\n${mountpoint#"${mountpoint%%[![:space:]]*}"}")" >> /root/$lastdate-backup-restore.log
|
||||
echo "----------------------------------------------------------------------------" >> /root/$lastdate-backup-restore.log
|
||||
echo "---------------- Endtime: $(date +"%Y-%m-%d %H:%M:%S") -------------------------" >> /root/$lastdate-backup-restore.log
|
||||
qm stop $id
|
||||
else
|
||||
echo "VM $f was Restored but not Running! (Dauer $elapsed_minutes/min)" >> /root/$lastdate-backup-restore.log
|
||||
echo "----------------------------------------------------------------------------" >> /root/$lastdate-backup-restore.log
|
||||
fi
|
||||
echo $id
|
||||
rm -r /var/lib/vz/images/$id/qemu-server.conf
|
||||
proxmox-backup-client restore $path qemu-server.conf /var/lib/vz/images/$id/qemu-server.conf --keyfile /root/Scripte/$i.keyfile
|
||||
|
||||
else
|
||||
continue
|
||||
fi
|
||||
done
|
||||
for id in /var/lib/vz/images/*;
|
||||
do
|
||||
echo $id
|
||||
name=$(cat $id/qemu-server.conf | grep name | awk -F ': ' '{print $2}')
|
||||
7z a -mmt=on -mfb=48048 -mx=1 -p$passwort /mnt/restore/download/$storage/$lastdate/"$name".7z $id/* >> /root/Scripte/7z_restore.log
|
||||
rsync -avz --progress /mnt/restore/download/$storage/$lastdate/"$name".7z /mnt/backup/download/$storage/$lastdate/"$name".7z >> /root/Scripte/7z_restore.log
|
||||
qm destroy $(basename $id)
|
||||
rm -r /mnt/restore/download/$storage/$lastdate/"$name".7z
|
||||
rm -r $id/qemu-server.conf
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
|
||||
done < /etc/pve/storage.cfg
|
||||
|
||||
NEXTCLOUD_URL="https://cloudstorage.stines.de/"
|
||||
USERNAME="stinesupload"
|
||||
PASSWORD="H9f4SFGtzwdbhokLBpd@nLYRP*ds3X^wY55g79pWk2WdJr7s8wSJzb6TJ6p@T"
|
||||
|
||||
# Pfad zur lokalen Datei, die hochgeladen werden soll
|
||||
LOCAL_FILE="/root/$lastdate-backup-restore.log"
|
||||
|
||||
# Zielpfad in Nextcloud, wo die Datei gespeichert werden soll
|
||||
REMOTE_PATH="/02.%20Server-Logs/01.%20Backup-Server/1.%20Zugriffe/2.%20Integritaetschecks/$(date +"%Y-%M-%D_%H:%M:%S")-Check-Backup.txt"
|
||||
|
||||
# Upload-URL für die WebDAV-API
|
||||
UPLOAD_URL="$NEXTCLOUD_URL/remote.php/dav/files/$USERNAME$REMOTE_PATH"
|
||||
|
||||
# Datei mit curl hochladen
|
||||
curl -u "$USERNAME:$PASSWORD" -X PUT -T "$LOCAL_FILE" "$UPLOAD_URL"
|
||||
Reference in New Issue
Block a user