tools.utils
3:8b31e171c1a0 Browse Files
+ Скрипт для РК бекапов с Proxmox на S3
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/kvm/proxmox-s3-push.sh Wed Dec 27 23:51:50 2023 +0300 1.3 @@ -0,0 +1,58 @@ 1.4 +#!/bin/sh 1.5 +# devel.a0fs.ru -- backup.ncc.vhost:/root/libexec/proxmox-s3-push.sh -- v0.r202312.2 1.6 + 1.7 +export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 1.8 + 1.9 +BACKET="Change-me-please" # Имя бакета на S3 1.10 +STORE_CLASS="COLD" # Тип хранения (см документацию по сервису) 1.11 + 1.12 +operation="$1" 1.13 +# backup-end - Завершение РК, можно отправить файл в s3 1.14 +# log-end - Завершение записи лога, можно отпарвить лог в S3 1.15 + 1.16 +vmid="$3" 1.17 + 1.18 +# Переменные окружения, принимаемые от СРК 1.19 +# TARGET - Имя файла с РК 1.20 +# LOGFILE - Имя файла журнала 1.21 + 1.22 + 1.23 +log () { 1.24 + logger -t proxmox-s3-pusher "$@" 1.25 + 1.26 +} 1.27 + 1.28 + 1.29 +push_s3 () { 1.30 + local fd="$1" 1.31 + local fd_bn="$(basename "$fd")" 1.32 + 1.33 + log "Sending to s3: ${fd_bn} at '$fd'" 1.34 + 1.35 + s3cmd put --storage-class "$STORE_CLASS" "$fd" "s3://${BACKET}/${vmid}/${fd_bn}" 2>&1 | tr -d "\r" | log 1.36 + 1.37 +} 1.38 + 1.39 + 1.40 +# DO 1.41 +log "Got ${operation} on ${vmid}, with arguments: $*" 1.42 +case "$operation" in 1.43 + backup-end ) 1.44 + push_s3 "$TARGET" 1.45 + ;; 1.46 + 1.47 + log-end) 1.48 + push_s3 "$LOGFILE" 1.49 + ;; 1.50 + 1.51 + manual-push) 1.52 + vmid="$2" 1.53 + log "Got manual push, vmid is $vmid" 1.54 + push_s3 "$3" 1.55 + ;; 1.56 + 1.57 + * ) 1.58 + log "Ignoring it..." 1.59 + ;; 1.60 + 1.61 +esac