diff --git a/src/scripts/backup_nocloud.sh b/src/scripts/backup_nocloud.sh
index f2a0d38ba2c03f69610c07bfeb21571e295a797a..69abc4fbdf48cc0dc6d61befdf9ed7081b06df6b 100755
--- a/src/scripts/backup_nocloud.sh
+++ b/src/scripts/backup_nocloud.sh
@@ -133,7 +133,12 @@ liberer_espace(){
         $@
         ret=$?
     else
-        test_and_fail 1 "l'action '$@' a planté innopinement"
+        if $warn_only
+        then
+            echo "l'action $@ a indiqué des erreurs, mais la sauvegarde continue"
+        else
+            test_and_fail 1 "l'action '$@' a planté innopinement"
+        fi
     fi
 }
 
@@ -157,6 +162,9 @@ usage(){
     echo "  -i | --interrupt list   Interrompt les services donnés (liste
                                     séparé par des virgules) durant la création
                                     de l'archive tar."
+    echo "  -w | --warnonly         En cas d'erreur d'une action de sauvegarde,
+                                    le programme affiche un message mais ne
+                                    s'nterrompt pas"
 }
 
 dest=/mnt/backup
@@ -171,13 +179,14 @@ postgres=false
 encfs=false
 archive=false
 MIN_SIZE=$((1024*1024))
+warn_only=false
 
 # Transform long options to short ones
 for arg in "$@"; do
   shift
   set -- "$@" `echo $arg | sed 's/^-\(-.\).*$/\1/'`
 done
-optspec=":hvdcgus:mpe:i:a"
+optspec=":hvdcgusw:mpe:i:a"
 while getopts "$optspec" optchar; do
     case "${optchar}" in
         h)
@@ -224,6 +233,9 @@ while getopts "$optspec" optchar; do
         i)
             SERVICES="${OPTARG//,/ }"
             ;;
+        w)
+            warn_only=true;
+            ;;
         *)
             echo "Option inconnue -$optchar"
             usage