From 8f967bab4d16b9fd6797b8f2cd58f8040ce58692 Mon Sep 17 00:00:00 2001
From: Florent Gluck <florent.gluck@hesge.ch>
Date: Wed, 9 Apr 2025 12:31:04 +0200
Subject: [PATCH] added backup.sh

---
 Cours/03-Scripting/backup.sh | 57 ++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100755 Cours/03-Scripting/backup.sh

diff --git a/Cours/03-Scripting/backup.sh b/Cours/03-Scripting/backup.sh
new file mode 100755
index 0000000..272bf2b
--- /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
-- 
GitLab