tools.utils
2025-05-04
Parent:8b31e171c1a0
tools.utils/kvm/proxmox-s3-push.sh
+ time/seconds
| awgur@3 | 1 #!/bin/sh |
| awgur@3 | 2 # devel.a0fs.ru -- backup.ncc.vhost:/root/libexec/proxmox-s3-push.sh -- v0.r202312.2 |
| awgur@3 | 3 |
| awgur@3 | 4 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| awgur@3 | 5 |
| awgur@3 | 6 BACKET="Change-me-please" # Имя бакета на S3 |
| awgur@3 | 7 STORE_CLASS="COLD" # Тип хранения (см документацию по сервису) |
| awgur@3 | 8 |
| awgur@3 | 9 operation="$1" |
| awgur@3 | 10 # backup-end - Завершение РК, можно отправить файл в s3 |
| awgur@3 | 11 # log-end - Завершение записи лога, можно отпарвить лог в S3 |
| awgur@3 | 12 |
| awgur@3 | 13 vmid="$3" |
| awgur@3 | 14 |
| awgur@3 | 15 # Переменные окружения, принимаемые от СРК |
| awgur@3 | 16 # TARGET - Имя файла с РК |
| awgur@3 | 17 # LOGFILE - Имя файла журнала |
| awgur@3 | 18 |
| awgur@3 | 19 |
| awgur@3 | 20 log () { |
| awgur@3 | 21 logger -t proxmox-s3-pusher "$@" |
| awgur@3 | 22 |
| awgur@3 | 23 } |
| awgur@3 | 24 |
| awgur@3 | 25 |
| awgur@3 | 26 push_s3 () { |
| awgur@3 | 27 local fd="$1" |
| awgur@3 | 28 local fd_bn="$(basename "$fd")" |
| awgur@3 | 29 |
| awgur@3 | 30 log "Sending to s3: ${fd_bn} at '$fd'" |
| awgur@3 | 31 |
| awgur@3 | 32 s3cmd put --storage-class "$STORE_CLASS" "$fd" "s3://${BACKET}/${vmid}/${fd_bn}" 2>&1 | tr -d "\r" | log |
| awgur@3 | 33 |
| awgur@3 | 34 } |
| awgur@3 | 35 |
| awgur@3 | 36 |
| awgur@3 | 37 # DO |
| awgur@3 | 38 log "Got ${operation} on ${vmid}, with arguments: $*" |
| awgur@3 | 39 case "$operation" in |
| awgur@3 | 40 backup-end ) |
| awgur@3 | 41 push_s3 "$TARGET" |
| awgur@3 | 42 ;; |
| awgur@3 | 43 |
| awgur@3 | 44 log-end) |
| awgur@3 | 45 push_s3 "$LOGFILE" |
| awgur@3 | 46 ;; |
| awgur@3 | 47 |
| awgur@3 | 48 manual-push) |
| awgur@3 | 49 vmid="$2" |
| awgur@3 | 50 log "Got manual push, vmid is $vmid" |
| awgur@3 | 51 push_s3 "$3" |
| awgur@3 | 52 ;; |
| awgur@3 | 53 |
| awgur@3 | 54 * ) |
| awgur@3 | 55 log "Ignoring it..." |
| awgur@3 | 56 ;; |
| awgur@3 | 57 |
| awgur@3 | 58 esac |