diff --git a/Cours/03-Scripting/backup.sh b/Cours/03-Scripting/backup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..272bf2bc6f06c99404d6263b8697b0dbbfa5415d
--- /dev/null
+++ b/Cours/03-Scripting/backup.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+function copy {
+    echo "Copie de $1"
+    cp $1 $2
+    if [ $? -ne 0 ]; then
+        echo "Failed copying $1 to $2" >&2
+        exit 5
+    fi
+    name=$(basename $1)
+    f=$2/$name
+    chmod 440 $f
+    if [ $? -ne 0 ]; then
+        echo "Failed chaning $f permissions" >&2
+        exit 6
+    fi
+}
+
+if [ $# -ne  2 ]; then
+    name=$(basename $0)
+    echo "Usage: $name src dest" >&2
+    echo "src    source directory containing txt and dat files" >&2
+    echo "dst    destination directory" >&2
+    exit 1
+fi
+
+if [ ! -d $1 ]; then
+    echo "source directory not found or not a directory!" >&2
+    exit 2
+fi
+
+DATA=$1
+BACKUP=$2
+
+# Si repertoire existe
+if [ -d $BACKUP ]; then
+    # Efface les anciens backups
+    rm -f $BACKUP/*
+    if [ $? -ne 0 ]; then
+        echo "Failed removing files" >&2
+        exit 3
+    fi
+else
+    # Cree repertoire
+    mkdir -p $BACKUP
+    if [ $? -ne 0 ]; then
+        echo "Failed creating $BACKUP directory" >&2
+        exit 4
+    fi
+fi
+
+# Backup les fichiers .txt et .dat
+for f in $DATA/*.txt $DATA/*.dat; do
+    copy $f $BACKUP # appel à la fonction
+done
+
+exit 0