tools.utils

Yohn Y. 2023-12-27 Parent:1080c58bc4ee Child:c4bc2d77d4be

3:8b31e171c1a0 Browse Files

+ Скрипт для РК бекапов с Proxmox на S3

kvm/proxmox-s3-push.sh

     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