Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 1 insertion, 1 deletion
backuppc-achive-rclone.sh
| @@ -49,7 +49,7 @@ get_archived_host_files() { | |||
| 49 | 49 | ${HEAD} -n -1 /proc/cpuinfo > /dev/null 2>&1 || { echo "E: head command does not support '-n' option."; exit 1; } | |
| 50 | 50 | ARCHIVED_HOSTS="$(get_archived_hosts)" | |
| 51 | 51 | for FILEHOSTNAME in $(get_archived_hosts); do | |
| 52 | - | ls -a ${BACKUPPC_ARCHIVE_PATH}/${FILEHOSTNAME}* | ${HEAD} -n -${BACKUPPC_ARCHIVE_RENTENTION} | |
| 52 | + | ls -atl ${BACKUPPC_ARCHIVE_PATH}/${FILEHOSTNAME}* | tr -s ' ' | cut -d ' ' -f 9 | sed "1,${BACKUPPC_ARCHIVE_RENTENTION} d" | |
| 53 | 53 | done | |
| 54 | 54 | } | |
| 55 | 55 | ||
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 1 insertion, 1 deletion
backuppc-achive-rclone.sh
| @@ -59,7 +59,7 @@ archive_hosts() { | |||
| 59 | 59 | BACKUPPC_LATEST_BACKUP="$(tail -1 ${BACKUPPC_PC_PATH}/${CHECK_HOST}/backups | cut -d$'\t' -f1)" | |
| 60 | 60 | [ -f ${BACKUPPC_ARCHIVE_PATH}/${CHECK_HOST}.${BACKUPPC_LATEST_BACKUP}.tar.* ] || BACKUPPC_ARCHIVE_HOSTS="${BACKUPPC_ARCHIVE_HOSTS} ${CHECK_HOST}" | |
| 61 | 61 | done | |
| 62 | - | echo Backing up ${BACKUPPC_ARCHIVE_HOSTS} | |
| 62 | + | echo "Trigger archive export of the following hosts: ${BACKUPPC_ARCHIVE_HOSTS}" | |
| 63 | 63 | if [ "$(whoami)" != "backuppc" ]; then | |
| 64 | 64 | BACKUPPC_ARCHIVESTART="sudo -u backuppc ${BACKUPPC_ARCHIVESTART}" | |
| 65 | 65 | fi | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 4 insertions, 4 deletions
backuppc-achive-rclone.sh
| @@ -59,16 +59,16 @@ archive_hosts() { | |||
| 59 | 59 | BACKUPPC_LATEST_BACKUP="$(tail -1 ${BACKUPPC_PC_PATH}/${CHECK_HOST}/backups | cut -d$'\t' -f1)" | |
| 60 | 60 | [ -f ${BACKUPPC_ARCHIVE_PATH}/${CHECK_HOST}.${BACKUPPC_LATEST_BACKUP}.tar.* ] || BACKUPPC_ARCHIVE_HOSTS="${BACKUPPC_ARCHIVE_HOSTS} ${CHECK_HOST}" | |
| 61 | 61 | done | |
| 62 | + | echo Backing up ${BACKUPPC_ARCHIVE_HOSTS} | |
| 63 | + | if [ "$(whoami)" != "backuppc" ]; then | |
| 64 | + | BACKUPPC_ARCHIVESTART="sudo -u backuppc ${BACKUPPC_ARCHIVESTART}" | |
| 65 | + | fi | |
| 62 | 66 | ${BACKUPPC_ARCHIVESTART} archive backuppc ${BACKUPPC_ARCHIVE_HOSTS} | |
| 63 | 67 | } | |
| 64 | 68 | ||
| 65 | 69 | case ${1} in | |
| 66 | 70 | export) | |
| 67 | 71 | get_backup_hosts | |
| 68 | - | echo Backing up ${HOSTS} | |
| 69 | - | if [ "$(whoami)" != "backuppc" ]; then | |
| 70 | - | BACKUPPC_ARCHIVESTART="sudo -u backuppc ${BACKUPPC_ARCHIVESTART}" | |
| 71 | - | fi | |
| 72 | 72 | archive_hosts | |
| 73 | 73 | ;; | |
| 74 | 74 | sync) | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 7 insertions, 1 deletion
backuppc-achive-rclone.sh
| @@ -23,6 +23,7 @@ HEAD="$(which /opt/bin/head || which head)" | |||
| 23 | 23 | [ -z ${RCLONE_REMOTE} ] && { echo "E: please set RCLONE_REMOTE in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 24 | 24 | [ -z ${RCLONE_BUCKET} ] && { echo "E: please set RCLONE_BUCKET in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 25 | 25 | [ -z ${BACKUPPC_ARCHIVE_PATH} ] && { echo "E: please set BACKUPPC_ARCHIVE_PATH in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 26 | + | [ -z ${BACKUPPC_PC_PATH} ] && { echo "E: please set BACKUPPC_PC_PATH in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 26 | 27 | ||
| 27 | 28 | get_backup_hosts() { | |
| 28 | 29 | # Taken from https://brb.epr.ch/blog/_export/code/blog:backuppc_script_archive_all_hosts?codeblock=0 | |
| @@ -53,7 +54,12 @@ get_archived_host_files() { | |||
| 53 | 54 | } | |
| 54 | 55 | ||
| 55 | 56 | archive_hosts() { | |
| 56 | - | ${BACKUPPC_ARCHIVESTART} archive backuppc ${HOSTS} | |
| 57 | + | BACKUPPC_ARCHIVE_HOSTS="" | |
| 58 | + | for CHECK_HOST in ${HOSTS}; do | |
| 59 | + | BACKUPPC_LATEST_BACKUP="$(tail -1 ${BACKUPPC_PC_PATH}/${CHECK_HOST}/backups | cut -d$'\t' -f1)" | |
| 60 | + | [ -f ${BACKUPPC_ARCHIVE_PATH}/${CHECK_HOST}.${BACKUPPC_LATEST_BACKUP}.tar.* ] || BACKUPPC_ARCHIVE_HOSTS="${BACKUPPC_ARCHIVE_HOSTS} ${CHECK_HOST}" | |
| 61 | + | done | |
| 62 | + | ${BACKUPPC_ARCHIVESTART} archive backuppc ${BACKUPPC_ARCHIVE_HOSTS} | |
| 57 | 63 | } | |
| 58 | 64 | ||
| 59 | 65 | case ${1} in | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 5 insertions, 1 deletion
backuppc-achive-rclone.sh
| @@ -52,6 +52,10 @@ get_archived_host_files() { | |||
| 52 | 52 | done | |
| 53 | 53 | } | |
| 54 | 54 | ||
| 55 | + | archive_hosts() { | |
| 56 | + | ${BACKUPPC_ARCHIVESTART} archive backuppc ${HOSTS} | |
| 57 | + | } | |
| 58 | + | ||
| 55 | 59 | case ${1} in | |
| 56 | 60 | export) | |
| 57 | 61 | get_backup_hosts | |
| @@ -59,7 +63,7 @@ case ${1} in | |||
| 59 | 63 | if [ "$(whoami)" != "backuppc" ]; then | |
| 60 | 64 | BACKUPPC_ARCHIVESTART="sudo -u backuppc ${BACKUPPC_ARCHIVESTART}" | |
| 61 | 65 | fi | |
| 62 | - | ${BACKUPPC_ARCHIVESTART} archive backuppc ${HOSTS} | |
| 66 | + | archive_hosts | |
| 63 | 67 | ;; | |
| 64 | 68 | sync) | |
| 65 | 69 | if [ -z "${RCLONE_BWLIMIT}" ]; then | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 1 insertion
backuppc-achive-rclone.sh
| @@ -69,6 +69,7 @@ case ${1} in | |||
| 69 | 69 | fi | |
| 70 | 70 | ;; | |
| 71 | 71 | cleanup) | |
| 72 | + | [ -z "$(get_archived_host_files)" ] && { echo "W: Nothing to clean up at the moment"; exit 0; } | |
| 72 | 73 | rm $(get_archived_host_files) | |
| 73 | 74 | ;; | |
| 74 | 75 | *) | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 6 insertions, 2 deletions
backuppc-achive-rclone.sh
| @@ -17,7 +17,7 @@ BACKUPPC_ARCHIVESTART="${BACKUPPC_ARCHIVESTART:=/usr/share/backuppc/bin/BackupPC | |||
| 17 | 17 | BACKUPPC_ARCHIVE_RENTENTION="${BACKUPPC_ARCHIVE_RENTENTION:=2}" | |
| 18 | 18 | RCLONE_BIN="${RCLONE_BIN:=rclone}" | |
| 19 | 19 | RCLONE_BUCKET="${RCLONE_BUCKET:=backuppc-archive}" | |
| 20 | - | RCLONE_BWLIMIT="${RCLONE_BWLIMIT:=--bwlimit '06:00,512 22:00,1M'}" | |
| 20 | + | RCLONE_BWLIMIT="${RCLONE_BWLIMIT:="06:00,512 22:00,1M"}" | |
| 21 | 21 | HEAD="$(which /opt/bin/head || which head)" | |
| 22 | 22 | ||
| 23 | 23 | [ -z ${RCLONE_REMOTE} ] && { echo "E: please set RCLONE_REMOTE in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| @@ -62,7 +62,11 @@ case ${1} in | |||
| 62 | 62 | ${BACKUPPC_ARCHIVESTART} archive backuppc ${HOSTS} | |
| 63 | 63 | ;; | |
| 64 | 64 | sync) | |
| 65 | - | ${RCLONE_BIN} sync ${BACKUPPC_ARCHIVE_PATH} ${RCLONE_REMOTE}:${RCLONE_BUCKET} --bwlimit '06:00,512 22:00,1M' # ${RCLONE_BWLIMIT} | |
| 65 | + | if [ -z "${RCLONE_BWLIMIT}" ]; then | |
| 66 | + | ${RCLONE_BIN} sync ${BACKUPPC_ARCHIVE_PATH} ${RCLONE_REMOTE}:${RCLONE_BUCKET} | |
| 67 | + | else | |
| 68 | + | ${RCLONE_BIN} sync ${BACKUPPC_ARCHIVE_PATH} ${RCLONE_REMOTE}:${RCLONE_BUCKET} --bwlimit "${RCLONE_BWLIMIT}" | |
| 69 | + | fi | |
| 66 | 70 | ;; | |
| 67 | 71 | cleanup) | |
| 68 | 72 | rm $(get_archived_host_files) | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 1 insertion, 1 deletion
backuppc-achive-rclone.sh
| @@ -48,7 +48,7 @@ get_archived_host_files() { | |||
| 48 | 48 | ${HEAD} -n -1 /proc/cpuinfo > /dev/null 2>&1 || { echo "E: head command does not support '-n' option."; exit 1; } | |
| 49 | 49 | ARCHIVED_HOSTS="$(get_archived_hosts)" | |
| 50 | 50 | for FILEHOSTNAME in $(get_archived_hosts); do | |
| 51 | - | ls -a /share/MD0_DATA/tmp/backuppc-archive/${FILEHOSTNAME}* | ${HEAD} -n -${BACKUPPC_ARCHIVE_RENTENTION} | |
| 51 | + | ls -a ${BACKUPPC_ARCHIVE_PATH}/${FILEHOSTNAME}* | ${HEAD} -n -${BACKUPPC_ARCHIVE_RENTENTION} | |
| 52 | 52 | done | |
| 53 | 53 | } | |
| 54 | 54 | ||
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 3 insertions, 3 deletions
backuppc-achive-rclone.sh
| @@ -22,7 +22,7 @@ HEAD="$(which /opt/bin/head || which head)" | |||
| 22 | 22 | ||
| 23 | 23 | [ -z ${RCLONE_REMOTE} ] && { echo "E: please set RCLONE_REMOTE in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 24 | 24 | [ -z ${RCLONE_BUCKET} ] && { echo "E: please set RCLONE_BUCKET in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 25 | - | [ -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 | + | [ -z ${BACKUPPC_ARCHIVE_PATH} ] && { echo "E: please set BACKUPPC_ARCHIVE_PATH in /opt/etc/backuppc-achive-rclone.conf or /etc/backuppc-achive-rclone.conf!"; exit 1; } | |
| 26 | 26 | ||
| 27 | 27 | get_backup_hosts() { | |
| 28 | 28 | # Taken from https://brb.epr.ch/blog/_export/code/blog:backuppc_script_archive_all_hosts?codeblock=0 | |
| @@ -39,7 +39,7 @@ get_backup_hosts() { | |||
| 39 | 39 | } | |
| 40 | 40 | ||
| 41 | 41 | get_archived_hosts() { | |
| 42 | - | for FILE in ${BACKUPPC_ARCHIVE_PATCH}/*; do | |
| 42 | + | for FILE in ${BACKUPPC_ARCHIVE_PATH}/*; do | |
| 43 | 43 | basename $FILE .tar.bz2 | sed 's/\.[[:digit:]]\+.*//g'; | |
| 44 | 44 | done | uniq | |
| 45 | 45 | } | |
| @@ -62,7 +62,7 @@ case ${1} in | |||
| 62 | 62 | ${BACKUPPC_ARCHIVESTART} archive backuppc ${HOSTS} | |
| 63 | 63 | ;; | |
| 64 | 64 | sync) | |
| 65 | - | ${RCLONE_BIN} sync ${BACKUPPC_ARCHIVE_PATCH} ${RCLONE_REMOTE}:${RCLONE_BUCKET} --bwlimit '06:00,512 22:00,1M' # ${RCLONE_BWLIMIT} | |
| 65 | + | ${RCLONE_BIN} sync ${BACKUPPC_ARCHIVE_PATH} ${RCLONE_REMOTE}:${RCLONE_BUCKET} --bwlimit '06:00,512 22:00,1M' # ${RCLONE_BWLIMIT} | |
| 66 | 66 | ;; | |
| 67 | 67 | cleanup) | |
| 68 | 68 | rm $(get_archived_host_files) | |
Jan Wagner 修订了这个 Gist 6 years ago. 转到此修订
1 file changed, 1 insertion
backuppc-achive-rclone.sh
| @@ -16,6 +16,7 @@ BACKUPPC_HOSTS="${BACKUPPC_HOSTS:=/etc/backuppc/hosts}" | |||
| 16 | 16 | BACKUPPC_ARCHIVESTART="${BACKUPPC_ARCHIVESTART:=/usr/share/backuppc/bin/BackupPC_archiveStart}" | |
| 17 | 17 | BACKUPPC_ARCHIVE_RENTENTION="${BACKUPPC_ARCHIVE_RENTENTION:=2}" | |
| 18 | 18 | RCLONE_BIN="${RCLONE_BIN:=rclone}" | |
| 19 | + | RCLONE_BUCKET="${RCLONE_BUCKET:=backuppc-archive}" | |
| 19 | 20 | RCLONE_BWLIMIT="${RCLONE_BWLIMIT:=--bwlimit '06:00,512 22:00,1M'}" | |
| 20 | 21 | HEAD="$(which /opt/bin/head || which head)" | |
| 21 | 22 | ||