diff --git a/docs/30_Configuration/30_Filetransfer.md b/docs/30_Configuration/30_Filetransfer.md
index 6145c8c9d9e72727a18f57fed6522928f67879bb..de1f6cb3c815dce9573f981219b5dd7c99db9171 100644
--- a/docs/30_Configuration/30_Filetransfer.md
+++ b/docs/30_Configuration/30_Filetransfer.md
@@ -169,17 +169,36 @@ s, m, h, D, W, M, or Y (indicating seconds, minutes, hours, days, weeks, months,
 Restic works like a repository and uses deduplication. The first run of a file backup
 is a full backup and all following runs make an incremental backup.
 
+There are 2 simple cleanup variants for restic forget:
+
+* The value for "keep-last" never deletes the last N most recent snapshots.
+* "restic_keep-within" keeps all created snapshots within a given period (eg. 1y5m7d2h) 
+
+If you need more control and want less snapshots as older they are:
+
 You have the possibility to keep all younger backups and have the possibility to delete
 older backups but to keep N weekly, monthly and yearly snapshots.
 
-The value for "keep-last" never deletes the last N most recent snapshots.
+Multiple values are allowed and work like an OR condition.
+See the docs for more details to the keep values of the forget command <https://restic.readthedocs.io/en/latest/060_forget.html>
 
 ```text
 # prune 
-restic_keep-last = 5
-restic_keep-hourly = 100
-restic_keep-daily = 90
-restic_keep-weekly = 12
-restic_keep-monthly = 12
-restic_keep-yearly = 10
+restic_keep-within = 6m
+# restic_keep-last = 5
+# restic_keep-hourly = 10
+# restic_keep-daily = 30
+# restic_keep-weekly = 12
+# restic_keep-monthly = 12
+# restic_keep-yearly = 10
 ```
+
+Supported values are:
+
+* restic_keep-last [N] - keep the last n snapshots
+* restic_keep-(hourly|daily|weekly|monthly|yearly) [N] - keep then last n snapshots of a period
+* restic_keep-within [duration] - keep snapshots that are newer than duration (eg. 1y5m7d2h) relative to the latest snapshot
+* restic_keep-within-(hourly|daily|weekly|monthly|yearly) [duration] - keep snapshots of given period that are newer than duration (eg. 1y5m7d2h) relative to the latest snapshot
+* restic_keep-tag [taglist] - keep snapshots with this taglist (can be specified only one in imlbackup) (default [])
+
+`restic_keep-within = 6m`
\ No newline at end of file
diff --git a/docs/30_Configuration/50_File_transfer.job.md b/docs/30_Configuration/50_File_transfer.job.md
index 9ee46dad4cc7fcb1d3d838c883a25c4fbd45367c..42cd1d45ad67257b6504a035651a059aebcfa882 100644
--- a/docs/30_Configuration/50_File_transfer.job.md
+++ b/docs/30_Configuration/50_File_transfer.job.md
@@ -255,13 +255,26 @@ restic_tag = imlbackup
 restic_mountpoint = /mnt/restore
 
 # prune 
-restic_keep-hourly = 100
-restic_keep-daily = 90
-restic_keep-weekly = 12
-restic_keep-monthly = 12
-restic_keep-yearly = 10
+restic_keep-within = 6m
+# restic_keep-last = 5
+# restic_keep-hourly = 10
+# restic_keep-daily = 30
+# restic_keep-weekly = 12
+# restic_keep-monthly = 12
+# restic_keep-yearly = 10
 ```
 
+For pruning with restic forget the following values can be used. 
+Multiple values are allowed and work like an OR condition.
+
+See the docs for more details to the keep values of the forget command <https://restic.readthedocs.io/en/latest/060_forget.html>
+
+* restic_keep-last [N] - keep the last n snapshots
+* restic_keep-(hourly|daily|weekly|monthly|yearly) [N] - keep then last n snapshots of a period
+* restic_keep-within [duration] - keep snapshots that are newer than duration (eg. 1y5m7d2h) relative to the latest snapshot
+* restic_keep-within-(hourly|daily|weekly|monthly|yearly) [duration] - keep snapshots of given period that are newer than duration (eg. 1y5m7d2h) relative to the latest snapshot
+* restic_keep-tag [taglist] - keep snapshots with this taglist (can be specified only one in imlbackup) (default [])
+
 ## restore-path
 
 Default path where to put restored file when running *restore.sh*.
diff --git a/jobs/transfer.job.dist b/jobs/transfer.job.dist
index 87071fb1023252c6b7b76a246cf68c5e02338677..c4d6465ed84f5d04f1f15d3db43ef9fb3919225c 100644
--- a/jobs/transfer.job.dist
+++ b/jobs/transfer.job.dist
@@ -147,11 +147,12 @@ restic_tag = imlbackup
 restic_mountpoint = /mnt/restore
 
 # prune 
-restic_keep-last = 5
-restic_keep-hourly = 100
-restic_keep-daily = 90
-restic_keep-weekly = 12
-restic_keep-monthly = 12
-restic_keep-yearly = 10
+restic_keep-within = 6m
+# restic_keep-last = 5
+# restic_keep-hourly = 10
+# restic_keep-daily = 30
+# restic_keep-weekly = 12
+# restic_keep-monthly = 12
+# restic_keep-yearly = 10
 
 # ----------------------------------------------------------------------
diff --git a/plugins/transfer/restic.sh b/plugins/transfer/restic.sh
index 3496150aa6183200d6f29b10dd7e081457a4af15..564e8176c69e0cdfa442535f82681dd944b4ad37 100644
--- a/plugins/transfer/restic.sh
+++ b/plugins/transfer/restic.sh
@@ -9,7 +9,8 @@
 # ah - Axel Hahn <axel.hahn@iml.unibe.ch>
 # 2021-05-19  ah    v0.1   INIT ... WIP
 # 2022-01-06  ah    v0.2   added support for Repository with REST and authentication 
-# 2022-02-09  ah    v0.3   show difff to last backup; update pruning
+# 2022-02-09  ah    v0.3   show diff to last backup; update pruning
+# 2022-02-09  ah    v0.3   update pruning; more keep-params
 # ================================================================================
 
 # --------------------------------------------------------------------------------
@@ -153,10 +154,11 @@
           ${ARGS_DEFAULT} \
           --tag $_tag \
           --group-by paths,tags \
+          --prune \
           --cleanup-cache"
 
         local _keep
-        for mykeep in last hourly daily weekly monthly yearly
+        for mykeep in last hourly daily weekly monthly yearly within within-hourly within-daily within-weekly within-monthly within-yearly tag
         do
             _keep=$( _j_getvar "${STORAGEFILE}" "${CFGPREFIX}keep-${mykeep}")
             if [ -n "$_keep" ]; then
diff --git a/transfer.sh b/transfer.sh
index 463c28d6237466c6cdc089025f6e7246b629f07b..cd4fdf0f635ffbc369d99436462f0f6ef31e271f 100755
--- a/transfer.sh
+++ b/transfer.sh
@@ -29,6 +29,7 @@
 # 2021-01-29  ah,ds, v1.12 abort on empty passphrase
 # 2021-05-19  ah,ds, v2.0  plugin driven to support multiple backup tools (duplicity + restic)
 # 2021-12-02  ah     v2.1  added parameter "prune" to cleanup only
+# 2022-02-10  ah     v2.2  update logging (removing tee)
 # ================================================================================
 
 
@@ -130,14 +131,16 @@
   if [ "$1" = "prune" ]; then
     doBackup=0
   fi
+  exec 1> >( tee -a "$transferlog" ) 2>&1
+  echo "INFO: Start logging into $transferlog"
 
-  h1 `date` TRANSFER LOCAL DATA TO STORAGE                      | tee -a $transferlog
+  h1 `date` TRANSFER LOCAL DATA TO STORAGE
 
-  echo "METHOD   : $METHOD"                                     | tee -a $transferlog
-  echo "TARGET   : ${STORAGE_BASEDIR}"                          | tee -a $transferlog
-  echo "REGISTER : ${STORAGE_REGISTER}"                         | tee -a $transferlog
-  echo "TOOL     : $STORAGE_BIN"                                | tee -a $transferlog
-  echo                                                          | tee -a $transferlog
+  echo "METHOD   : $METHOD"
+  echo "TARGET   : ${STORAGE_BASEDIR}"
+  echo "REGISTER : ${STORAGE_REGISTER}"
+  echo "TOOL     : $STORAGE_BIN"
+  echo
 
   . `dirname $0`/plugins/transfer/$STORAGE_BIN.sh || exit 1
   test -z "$STORAGE_REGISTER" || . `dirname $0`/plugins/register/$STORAGE_REGISTER.sh || exit 1
@@ -242,7 +245,7 @@
           sleep $iRnd
       fi
     done
-  fi | tee -a $transferlog
+  fi
 
 
   h2 "`date` PRE transfer tasks"
@@ -345,7 +348,7 @@
     echo $rc > ${rcfile}
     exit $rc
 
-  ) | tee -a $transferlog 
+  ) 
 
   # rc=${PIPESTATUS[0]}
   rc=`cat ${rcfile}`
@@ -364,22 +367,22 @@
     echo "SKIP"
   else
     unregisterBackupSlot `hostname -f` $rc
-  fi | tee -a $transferlog
+  fi
 
   h2 "`date` Backup finished"
-  echo STATUS $0 exit with final returncode rc=$rc                                    | tee -a $transferlog
-  echo                                                                                | tee -a $transferlog
+  echo STATUS $0 exit with final returncode rc=$rc
+  echo
   if [ $rc -eq 0 ]; then
     color ok
-    echo Backup OK                                                                    | tee -a $transferlog
+    echo Backup OK
   else
     color error
-    echo Backup FAILED :-/                                                            | tee -a $transferlog
+    echo Backup FAILED :-/
   fi
   color reset
-  echo                                                                                | tee -a $transferlog
+  echo
   typeset -i TIMER_TRANSFER=`date +%s`-$TIMER_TRANSFER_START
-  echo `date` TRANSFER DONE in $TIMER_TRANSFER sec                                    | tee -a $transferlog
+  echo `date` TRANSFER DONE in $TIMER_TRANSFER sec
 
   ls -l $transferlog                                                                  
   exit $rc