Skip to content
Snippets Groups Projects
Commit c7129360 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

enable cache dir; unlock before pruning

parent d49be457
1 merge request!5update docs
...@@ -139,6 +139,7 @@ The inc_config.sh mus contain 3 variables for pruning ...@@ -139,6 +139,7 @@ The inc_config.sh mus contain 3 variables for pruning
prune_basedir=/netshare/restic-backup prune_basedir=/netshare/restic-backup
prune_params="--group-by paths,tags --prune --keep-within 180d --max-unused unlimited --max-repack-size 100M --cleanup-cache" prune_params="--group-by paths,tags --prune --keep-within 180d --max-unused unlimited --max-repack-size 100M --cleanup-cache"
prune_skipdays="7" prune_skipdays="7"
prune_cachedir=${prune_basedir}/.cache_for_pruning
``` ```
## rest_pruner.cfg ## rest_pruner.cfg
......
...@@ -28,7 +28,9 @@ ...@@ -28,7 +28,9 @@
sLogfile="$sLogdir/connections.log" sLogfile="$sLogdir/connections.log"
# for prune on restic rest server # for prune on restic rest server
prune_params="--group-by paths,tags --prune --keep-within 180d --max-unused unlimited --max-repack-size 100M --cleanup-cache" prune_basedir=/netshare/restic-backup
prune_params="--group-by paths,tags --prune --keep-within 180d --max-unused unlimited --max-repack-size 100M --cleanup-cache --verbose=0"
prune_skipdays="7" prune_skipdays="7"
prune_cachedir=${prune_basedir}/.cache_for_pruning
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -6,16 +6,18 @@ ...@@ -6,16 +6,18 @@
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# 2024-02-01 v0.1 <axel.hahn@unibe.ch> first lines # 2024-02-01 v0.1 <axel.hahn@unibe.ch> first lines
# 2024-02-02 v0.2 <axel.hahn@unibe.ch> add: timer, skip file, skin N days, limit process time, stats # 2024-02-02 v0.2 <axel.hahn@unibe.ch> add: timer, skip file, skin N days, limit process time, stats
# 2024-02-03 v0.3 <axel.hahn@unibe.ch> enable cache dir; unlock before pruning
# ====================================================================== # ======================================================================
cd "$( dirname $0 )" || exit cd "$( dirname $0 )" || exit
_version=0.2 _version=0.3
logdir=_last_prune logdir=_last_prune
prune_basedir= prune_basedir=
prune_params= prune_params=
prune_skipdays=7 prune_skipdays=7
prune_cachedir=
# stop pruning more repositories when running longer N seconds # stop pruning more repositories when running longer N seconds
prune_timeout=7200 prune_timeout=7200
...@@ -40,6 +42,7 @@ typeset -i rcAll=0 ...@@ -40,6 +42,7 @@ typeset -i rcAll=0
. "inc_config.sh" || exit 1 . "inc_config.sh" || exit 1
cfgfile=rest_pruner.cfg || exit 1 cfgfile=rest_pruner.cfg || exit 1
test -z "$prune_cachedir" && prune_cachedir="${prune_basedir}/.cache_for_pruning"
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
...@@ -153,13 +156,24 @@ function _prune(){ ...@@ -153,13 +156,24 @@ function _prune(){
fi fi
if [ "$bDoRun" -eq "1" ]; then if [ "$bDoRun" -eq "1" ]; then
local _user; _user=$( stat -c "%U" "$_dir" ) echo ">>>>> $( _getTimer ) sec >>>>> $_dir"
echo ">>>>> $( _getTimer ) >>>>> $_dir"
local _user;
_user=$( stat -c "%U" "$_dir" )
local _cachedir;
export _cachedir=$prune_cachedir/${mybase}
echo "Creating cache $_cachedir ..."
test -d "$_cachedir" || mkdir -p "$_cachedir"
chown ${_user}:${_user} "$_cachedir"
echo "Starting prune as user $_user ..." echo "Starting prune as user $_user ..."
su - $_user - /bin/bash -c " su - $_user - /bin/bash -c "
echo START $( date ) $_dir echo START $( date ) $_dir
export RESTIC_PASSWORD=$mypw export RESTIC_PASSWORD=$mypw
restic forget -r $_dir $prune_params 2>&1 set -vx
restic unlock -r $_dir --cache-dir=$_cachedir 2>&1
restic forget -r $_dir --cache-dir=$_cachedir $prune_params 2>&1
" | tee "${logfile}.running" " | tee "${logfile}.running"
rc=${PIPESTATUS[0]} rc=${PIPESTATUS[0]}
rcAll+=$rc rcAll+=$rc
...@@ -170,7 +184,10 @@ function _prune(){ ...@@ -170,7 +184,10 @@ function _prune(){
else else
iCountPruneError+=1 iCountPruneError+=1
mv "${logfile}.running" "${logfile}.error" mv "${logfile}.running" "${logfile}.error"
echo "!!! ERROR !!! pruning failed."
fi fi
echo "Removing cache $_cachedir ..."
rm -rf "$_cachedir"
fi fi
else else
test "$bOptAll" -eq "1" && echo "SKIP: $_dir - no password for this repo" test "$bOptAll" -eq "1" && echo "SKIP: $_dir - no password for this repo"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment