Jan Wagner revisou este gist 6 years ago. Ir para a revisão
1 file changed, 4 insertions, 1 deletion
backuppc-achive-rclone.sh
| @@ -67,6 +67,9 @@ case ${1} in | |||
| 67 | 67 | rm $(get_archived_host_files) | |
| 68 | 68 | ;; | |
| 69 | 69 | *) | |
| 70 | - | echo "ERROR: Use 'export' for queuing BackupPC archive export or 'sync' to start rcloud sync!" | |
| 70 | + | echo "ERROR: Use the following keywords:" | |
| 71 | + | echo "'export' for queuing BackupPC archive export" | |
| 72 | + | echo "'sync' to start rcloud sync" | |
| 73 | + | echo "'cleanup' for removing unneeded archives" | |
| 71 | 74 | exit 1 | |
| 72 | 75 | esac | |
Jan Wagner revisou este gist 6 years ago. Ir para a revisão
1 file changed, 2 insertions, 2 deletions
backuppc-achive-rclone.sh
| @@ -64,9 +64,9 @@ case ${1} in | |||
| 64 | 64 | ${RCLONE_BIN} sync ${BACKUPPC_ARCHIVE_PATCH} ${RCLONE_REMOTE}:${RCLONE_BUCKET} --bwlimit '06:00,512 22:00,1M' # ${RCLONE_BWLIMIT} | |
| 65 | 65 | ;; | |
| 66 | 66 | cleanup) | |
| 67 | - | get_archived_host_files | |
| 67 | + | rm $(get_archived_host_files) | |
| 68 | 68 | ;; | |
| 69 | 69 | *) | |
| 70 | 70 | echo "ERROR: Use 'export' for queuing BackupPC archive export or 'sync' to start rcloud sync!" | |
| 71 | 71 | exit 1 | |
| 72 | - | esac | |
| 72 | + | esac | |
Jan Wagner revisou este gist 6 years ago. Ir para a revisão
1 file changed, 0 insertions, 0 deletions
Arquivo vazio
waja revisou este gist 6 years ago. Ir para a revisão
Sem alterações
waja revisou este gist 6 years ago. Ir para a revisão
1 file changed, 72 insertions
backuppc-achive-rclone.sh(arquivo criado)
| @@ -0,0 +1,72 @@ | |||
| 1 | + | #!/bin/bash | |
| 2 | + | ||
| 3 | + | if [ -r /opt/etc/default/backuppc-achive-rclone ]; then | |
| 4 | + | source /opt/etc/default/backuppc-achive-rclone | |
| 5 | + | else | |
| 6 | + | source /etc/default/backuppc-achive-rclone | |
| 7 | + | fi | |
| 8 | + | ||
| 9 | + | if [ -r /opt/etc/backuppc-achive-rclone.conf ]; then | |
| 10 | + | source /opt/etc/backuppc-achive-rclone.conf | |
| 11 | + | else | |
| 12 | + | source /etc/backuppc-achive-rclone.conf | |
| 13 | + | fi | |
| 14 | + | ||
| 15 | + | BACKUPPC_HOSTS="${BACKUPPC_HOSTS:=/etc/backuppc/hosts}" | |
| 16 | + | BACKUPPC_ARCHIVESTART="${BACKUPPC_ARCHIVESTART:=/usr/share/backuppc/bin/BackupPC_archiveStart}" | |
| 17 | + | BACKUPPC_ARCHIVE_RENTENTION="${BACKUPPC_ARCHIVE_RENTENTION:=2}" | |
| 18 | + | RCLONE_BIN="${RCLONE_BIN:=rclone}" | |
| 19 | + | RCLONE_BWLIMIT="${RCLONE_BWLIMIT:=--bwlimit '06:00,512 22:00,1M'}" | |
| 20 | + | HEAD="$(which /opt/bin/head || which head)" | |
| 21 | + | ||
| 22 | + | [ -z ${RCLONE_REMOTE} ] && { echo "E: please set RCLONE_REMOTE in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 23 | + | [ -z ${RCLONE_BUCKET} ] && { echo "E: please set RCLONE_BUCKET in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 24 | + | [ -z ${BACKUPPC_ARCHIVE_PATCH} ] && { echo "E: please set BACKUPPC_ARCHIVE_PATCH in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 25 | + | ||
| 26 | + | get_backup_hosts() { | |
| 27 | + | # Taken from https://brb.epr.ch/blog/_export/code/blog:backuppc_script_archive_all_hosts?codeblock=0 | |
| 28 | + | HOSTS="" | |
| 29 | + | while read -r LINE; do | |
| 30 | + | # Skip comments | |
| 31 | + | [[ "${LINE}" =~ ^#.*$ ]] && continue | |
| 32 | + | ||
| 33 | + | HOST=`echo ${LINE} | cut -f 1 -d " "` | |
| 34 | + | ! [ "${HOST}" != "" -a "${HOST}" != "archive" -a "${HOST}" != "host" ] && continue | |
| 35 | + | ||
| 36 | + | HOSTS="${HOSTS} ${HOST}" | |
| 37 | + | done < "${BACKUPPC_HOSTS}" | |
| 38 | + | } | |
| 39 | + | ||
| 40 | + | get_archived_hosts() { | |
| 41 | + | for FILE in ${BACKUPPC_ARCHIVE_PATCH}/*; do | |
| 42 | + | basename $FILE .tar.bz2 | sed 's/\.[[:digit:]]\+.*//g'; | |
| 43 | + | done | uniq | |
| 44 | + | } | |
| 45 | + | ||
| 46 | + | get_archived_host_files() { | |
| 47 | + | ${HEAD} -n -1 /proc/cpuinfo > /dev/null 2>&1 || { echo "E: head command does not support '-n' option."; exit 1; } | |
| 48 | + | ARCHIVED_HOSTS="$(get_archived_hosts)" | |
| 49 | + | for FILEHOSTNAME in $(get_archived_hosts); do | |
| 50 | + | ls -a /share/MD0_DATA/tmp/backuppc-archive/${FILEHOSTNAME}* | ${HEAD} -n -${BACKUPPC_ARCHIVE_RENTENTION} | |
| 51 | + | done | |
| 52 | + | } | |
| 53 | + | ||
| 54 | + | case ${1} in | |
| 55 | + | export) | |
| 56 | + | get_backup_hosts | |
| 57 | + | echo Backing up ${HOSTS} | |
| 58 | + | if [ "$(whoami)" != "backuppc" ]; then | |
| 59 | + | BACKUPPC_ARCHIVESTART="sudo -u backuppc ${BACKUPPC_ARCHIVESTART}" | |
| 60 | + | fi | |
| 61 | + | ${BACKUPPC_ARCHIVESTART} archive backuppc ${HOSTS} | |
| 62 | + | ;; | |
| 63 | + | sync) | |
| 64 | + | ${RCLONE_BIN} sync ${BACKUPPC_ARCHIVE_PATCH} ${RCLONE_REMOTE}:${RCLONE_BUCKET} --bwlimit '06:00,512 22:00,1M' # ${RCLONE_BWLIMIT} | |
| 65 | + | ;; | |
| 66 | + | cleanup) | |
| 67 | + | get_archived_host_files | |
| 68 | + | ;; | |
| 69 | + | *) | |
| 70 | + | echo "ERROR: Use 'export' for queuing BackupPC archive export or 'sync' to start rcloud sync!" | |
| 71 | + | exit 1 | |
| 72 | + | esac | |