Skip to content
Snippets Groups Projects
Verified Commit ccfbdf0e authored by David Beniamine's avatar David Beniamine
Browse files

Fix main directory not created when 0 space left

parent a1a9550c
No related branches found
No related tags found
No related merge requests found
...@@ -43,10 +43,11 @@ premier(){ ...@@ -43,10 +43,11 @@ premier(){
# Supprime la sauvegarde la plus ancienne # Supprime la sauvegarde la plus ancienne
supprimer_anciennes_sauvegardes(){ supprimer_anciennes_sauvegardes(){
dir=`premier \`/bin/ls $dest/.. | grep $postfix \`` dir=`premier \`/bin/ls $parent_dir | grep $postfix \``
[ -z "$dir" ] && return 1 [ -z "$dir" ] && return 1
do_log "Plus de place suppression de la sauvegarde la plus ancienne: $dir" do_log "Plus de place suppression de la sauvegarde la plus ancienne: $dir"
rm -rf $dest/../$dir rm -rf $parent_dir/$dir
return $?
} }
do_log(){ do_log(){
...@@ -122,6 +123,20 @@ sauvegarde_seafile(){ ...@@ -122,6 +123,20 @@ sauvegarde_seafile(){
/srv/$seafile/seafile-server-latest/seaf-fuse.sh stop /srv/$seafile/seafile-server-latest/seaf-fuse.sh stop
} }
# tente de liberer de l'espace si c'est pertinent puis rejoue les commandes
# passées en arguments
liberer_espace(){
if [ "`df --output=avail $parent_dir | sed 1d`" -lt $MIN_SIZE ]
then
supprimer_anciennes_sauvegardes
test_and_fail $? "Plus d'espace sur le disque et pas d'ancienne sauvegarde a supprimer"
$@
ret=$?
else
test_and_fail 1 "l'action '$@' a planté innopinement"
fi
}
usage(){ usage(){
echo "Utilisation $0 [options] device" echo "Utilisation $0 [options] device"
echo "Device doit etre un disque non monté" echo "Device doit etre un disque non monté"
...@@ -155,6 +170,7 @@ mysql=false ...@@ -155,6 +170,7 @@ mysql=false
postgres=false postgres=false
encfs=false encfs=false
archive=false archive=false
MIN_SIZE=$((1024*1024))
# Transform long options to short ones # Transform long options to short ones
for arg in "$@"; do for arg in "$@"; do
...@@ -228,7 +244,7 @@ dev=$1 ...@@ -228,7 +244,7 @@ dev=$1
do_log "démarrage le `date`" do_log "démarrage le `date`"
[ ! -d $dest ] && mkdir $dest [ ! -d "$dest" ] && mkdir "$dest"
/bin/mount -t auto $dev $dest /bin/mount -t auto $dev $dest
test_and_fail $? "Impossible de monter le disque destination, abandon" test_and_fail $? "Impossible de monter le disque destination, abandon"
...@@ -252,8 +268,9 @@ then ...@@ -252,8 +268,9 @@ then
fi fi
parent_dir=$dest parent_dir=$dest
dest=$parent_dir/$date$postfix dest="$parent_dir/$date$postfix"
mkdir $dest mkdir "$dest"
[ ! -d "$dest" ] && liberer_espace mkdir "$dest"
for action in $ACTIONS for action in $ACTIONS
do do
...@@ -261,15 +278,8 @@ do ...@@ -261,15 +278,8 @@ do
ret=$? ret=$?
while [ $ret -ne 0 ] while [ $ret -ne 0 ]
do do
if [ "`df --output=avail $parent_dir | sed 1d`" -lt $((1024*1024)) ] liberer_espace $action
then
supprimer_anciennes_sauvegardes
test_and_fail $? "Plus d'espace sur le disque et pas d'ancienne sauvegarde a supprimer"
$action
ret=$? ret=$?
else
test_and_fail 1 "l'action '$action' a planté innopinement"
fi
done done
nom=${action/_/ } nom=${action/_/ }
do_log "$nom reussie" do_log "$nom reussie"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment