From 3d31c3077b7381c67531d7ba16e82f1d83913ea3 Mon Sep 17 00:00:00 2001 From: deflax Date: Fri, 28 Sep 2018 13:16:05 +0300 Subject: [PATCH] Create rclone.sh --- scripts/rclone.sh | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 scripts/rclone.sh diff --git a/scripts/rclone.sh b/scripts/rclone.sh new file mode 100644 index 0000000..868afc6 --- /dev/null +++ b/scripts/rclone.sh @@ -0,0 +1,77 @@ +#!/bin/bash + +## Example .config/rclone/rclone.conf: +#[pcloud] +#type = pcloud +#token = {"access_token":"0000","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"} + +#[remotecrypto] +#type = crypt +#remote = pcloud:encbackup +#filename_encryption = off +#directory_name_encryption = false +#password = 0000 + +#find the full backups and rsync them to remote host +SOURCE=( + "/srv/nfs-backup/warrior/dump" + "/srv/nfs-backup/lexx/dump" +) + +ENCSRC="/srv/nfs-backup/latest-hardlink" + +### +human_print(){ +while read B dummy; do + [ $B -lt 1024 ] && echo ${B} B && break + KB=$(((B+512)/1024)) + [ $KB -lt 1024 ] && echo ${KB} KB && break + MB=$(((KB+512)/1024)) + [ $MB -lt 1024 ] && echo ${MB} MB && break + GB=$(((MB+512)/1024)) + [ $GB -lt 1024 ] && echo ${GB} GB && break + echo $(((GB+512)/1024)) TB +done +} + +mkdir $ENCSRC + +for srcpath in "${SOURCE[@]}" +do + vmids=() + + if [ "$(ls -A $srcpath)" ]; then + echo "[ok] $srcpath" + cd $srcpath + else + echo "[skip] $srcpath" + echo "" + continue + fi + + host=`echo $srcpath | rev | cut -d'/' -f 2 | rev` + #mkdir "$ENCSRC/$host" + + vmids+=`ls -1d *.lzo 2> /dev/null | cut -d "-" -f3 | sort | uniq` + vmids+=`ls -1d *..gz 2> /dev/null | cut -d "-" -f3 | sort | uniq` + for vmid in $vmids + do + last=`ls -1rt $srcpath | grep -E ".lzo$|.gz$" | grep -E "vzdump.*-$vmid-" | tail -1` + size=`stat -c %s $last | human_print` + echo "VM $vmid last backup is $last ($size)" + ln $srcpath/$last $ENCSRC/$host-$last + echo "$ENCSRC/$host-$last" >> /tmp/reclist.txt + done + echo "" +done +cat /tmp/reclist.txt | while read file +do + du "$file" +done | awk '{i+=$1} END {print "Total bytes: " i / 1048576 " GB"}' + +#cloud sync +rclone -v -P sync $ENCSRC remotecrypt + +#cleanup +rm /tmp/reclist.txt +rm -fr $ENCSRC