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
Branches
No related tags found
No related merge requests found
......@@ -43,10 +43,11 @@ premier(){
# Supprime la sauvegarde la plus ancienne
supprimer_anciennes_sauvegardes(){
dir=`premier \`/bin/ls $dest/.. | grep $postfix \``
dir=`premier \`/bin/ls $parent_dir | grep $postfix \``
[ -z "$dir" ] && return 1
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(){
......@@ -122,6 +123,20 @@ sauvegarde_seafile(){
/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(){
echo "Utilisation $0 [options] device"
echo "Device doit etre un disque non monté"
......@@ -155,6 +170,7 @@ mysql=false
postgres=false
encfs=false
archive=false
MIN_SIZE=$((1024*1024))
# Transform long options to short ones
for arg in "$@"; do
......@@ -228,7 +244,7 @@ dev=$1
do_log "démarrage le `date`"
[ ! -d $dest ] && mkdir $dest
[ ! -d "$dest" ] && mkdir "$dest"
/bin/mount -t auto $dev $dest
test_and_fail $? "Impossible de monter le disque destination, abandon"
......@@ -252,8 +268,9 @@ then
fi
parent_dir=$dest
dest=$parent_dir/$date$postfix
mkdir $dest
dest="$parent_dir/$date$postfix"
mkdir "$dest"
[ ! -d "$dest" ] && liberer_espace mkdir "$dest"
for action in $ACTIONS
do
......@@ -261,15 +278,8 @@ do
ret=$?
while [ $ret -ne 0 ]
do
if [ "`df --output=avail $parent_dir | sed 1d`" -lt $((1024*1024)) ]
then
supprimer_anciennes_sauvegardes
test_and_fail $? "Plus d'espace sur le disque et pas d'ancienne sauvegarde a supprimer"
$action
liberer_espace $action
ret=$?
else
test_and_fail 1 "l'action '$action' a planté innopinement"
fi
done
nom=${action/_/ }
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