From a565af6296d61f29bd96efd81e3e8f041855fc8b Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch>
Date: Thu, 31 Oct 2019 13:27:18 +0100
Subject: [PATCH] v1.9  for rsync targets: create remote target dir with ssh
 command

---
 logs/.gitkeep |  0
 transfer.sh   | 28 ++++++++++++++++++----------
 2 files changed, 18 insertions(+), 10 deletions(-)
 delete mode 100644 logs/.gitkeep

diff --git a/logs/.gitkeep b/logs/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/transfer.sh b/transfer.sh
index 04095e1..19de81d 100755
--- a/transfer.sh
+++ b/transfer.sh
@@ -28,6 +28,7 @@
 # 2018-06-19  ah,ds  v1.6  replace --exclude with --exclude regexp in custom dirs
 # 2019-06-05  ah,ds  v1.7  add custom cache dir
 # 2019-09-09  ah,ds  v1.8  add testfile on target
+# 2019-10-30  ah,ds  v1.9  for rsync targets: create remote target dir with ssh command
 # ================================================================================
 
 
@@ -257,20 +258,27 @@
         fi
         # ---------- ENDE --------------------
 
-
-        # --- "trick": create remote directory by checking collection status
-        # with switching to "scp"
-        # rsync://backupuser@mystorage//backupdir/hostname/jobname
-
+        # --- for rsync only: create remote directory
         echo ${sTarget} | fgrep "rsync://"  >/dev/null
         if [ $? -eq 0 ]; then
-          sshTarget=`echo ${sTarget} | sed "s#rsync://#scp://#"`
-          echo Creating remote directory with fetching collection-status on $sshTarget
+          # sshTarget=`echo ${sTarget} | sed "s#rsync://#scp://#"`
+          # echo Creating remote directory with fetching collection-status on $sshTarget
+          # color cmd
+          # duplicity collection-status ${sParams} ${sshTarget}
+          # color reset
+          sshTarget=`echo ${sTarget} | cut -f 3 -d '/'`
+          RemoteDir=`echo ${sTarget} | cut -f 4- -d '/'`
+          cmd="ssh"
+          if [ ! -z ${sFileSshPrivkey} ]; then
+            cmd="${cmd} -i ${sFileSshPrivkey}"
+          fi
+          cmd="${cmd} ${sshTarget} mkdir -p ${RemoteDir} 2>/dev/null ; ls -ld ${RemoteDir} "
+          echo Creating remote directory first ...
           color cmd
-          duplicity collection-status ${sParams} ${sshTarget}
-          color reset
+          $cmd
+          color reset    
         fi
-
+    
         # --- backup
         echo backup to target: ${sTarget}
         echo duplicity ${METHOD} ${sBackupParams} ${mydir} ${sTarget}
-- 
GitLab