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