From d26f7700bdd762e2cc881388c81fac4d49ae471b Mon Sep 17 00:00:00 2001 From: Hartmut Bauer Date: Sun, 13 Apr 2025 19:53:54 +0200 Subject: [PATCH] Small fixes --- build.sh | 1 + calvados.sh | 0 dump_oracle.sh | 19 +++++++++ main.inc.sh | 18 +++++---- main.sh | 10 +++-- save-conf | 12 ++++++ test.sh | 104 ------------------------------------------------- 7 files changed, 49 insertions(+), 115 deletions(-) mode change 100644 => 100755 calvados.sh create mode 100755 dump_oracle.sh create mode 100755 save-conf delete mode 100755 test.sh diff --git a/build.sh b/build.sh index 4ec67d0..fa90f0f 100755 --- a/build.sh +++ b/build.sh @@ -1,3 +1,4 @@ #!/usr/bin/env bash cp -v *.sh ../../bin/backup +cp -v save-conf ../../bin diff --git a/calvados.sh b/calvados.sh old mode 100644 new mode 100755 diff --git a/dump_oracle.sh b/dump_oracle.sh new file mode 100755 index 0000000..20a027d --- /dev/null +++ b/dump_oracle.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# falls das nochmal gebraucht wird + +HERE=$(dirname $0) +DOCKER=/usr/bin/docker + +ORACLEDUMP="$DOCKER exec -i oracle /opt/oracle/product/18c/dbhomeXE/bin/expdp" +ORACLECONNECT="sbsdb_master/sbsdbpwd@//localhost:1521/xepdb1" +ORACLEDATAPUMP=/var/docker/vol/oracle/dump + +function dump_oracle() { + mkdir -p $HERE/oracle > /dev/null 2>&1 + echo "$(date) - Oracle dump" + $ORACLEDUMP $ORACLECONNECT dumpfile=sbsdb_dump:sbsdb.dmp logfile=sbsdb_dump:sbsdb.log reuse_dumpfiles=yes + mv $ORACLEDATAPUMP/* $HERE/oracle +} + +dump_oracle diff --git a/main.inc.sh b/main.inc.sh index 4ad439b..8b058ba 100755 --- a/main.inc.sh +++ b/main.inc.sh @@ -7,6 +7,7 @@ NAS_ROOT="$NAS_MOUNT_POINT/backups" LOG_FILE_PATH="$NAS_MOUNT_POINT/Server/log/backup" log_file_name="$LOG_FILE_PATH/$HOST_NAME-$(date '+%Y-%m-%d_%H%M')" LOG_FILE="${log_file_name}.log" +LOG_KEEP_DAYS=14 RESTORE_PATH="$NAS_MOUNT_POINT/Server/restore" @@ -80,11 +81,12 @@ send_mail_log() { # Alte Logs löschen # +# Dateien älter als $LOG_KEEP_DAYS Tage löschen +# prune_logs() { log $DEBUG "$DBG prune_logs()" - # Dateien älter als 14 Tage löschen - log $DEBUG "$DBG > find \"$LOG_FILE_PATH\" -type f -mtime +14 -delete" - find "$LOG_FILE_PATH" -type f -mtime +14 -delete >>$LOG_FILE 2>&1 + log $DEBUG "$DBG > find \"$LOG_FILE_PATH\" -type f -mtime +$LOG_KEEP_DAYS -delete" + find "$LOG_FILE_PATH" -type f -mtime +$LOG_KEEP_DAYS -delete >>$LOG_FILE 2>&1 if [ $? -ne 0 ]; then # Fehler nur protokollieren, kein Grund abzubrechen mail_log $ERROR "$ERR error deleting old log files." @@ -158,10 +160,10 @@ stop_docker() { fix_acls() { log $DEBUG "$DBG fix_acls()" - log $DEBUG "$DBG chmod -R a+r $NAS_ROOT" + log $DEBUG "$DBG > chmod -R a+r $NAS_ROOT" chmod -R a+r $NAS_ROOT >>$LOG_FILE 2>&1 - log $DEBUG "$DBG chmod -R a+r $LLOG_FILE_PATH" - chmod -R a+r $LLOG_FILE_PATH >>$LOG_FILE 2>&1 + log $DEBUG "$DBG > chmod -R a+r $LOG_FILE_PATH" + chmod -R a+r $LOG_FILE_PATH >>$LOG_FILE 2>&1 } # Script per ssh auf Server $1 im Hintergrund starten @@ -395,7 +397,7 @@ do_auto_backup() { local rc if ! $func$count 2>/dev/null ; then # Seiteneffekt: $func$count wird ausgeführt - mail_log $ERROR "$ERR keine Backup-Function $func$count() für $HOST_NAME." + log $ERROR "$ERR keine Backup-Function $func$count() für $HOST_NAME." exit 1 # kein Mail-Benachrichtigung! fi set_log_info @@ -512,7 +514,7 @@ restore() { echo "--- files: $@" echo "--- to: $RESTORE_PATH" echo - echo "Restore runs on NAS, see e-mail" + echo "Restore started on NAS, see e-mail" echo run_script_remote $NAS_IP "$NAS_SCRIPT --rx $archive $@" } diff --git a/main.sh b/main.sh index 445841b..b1544af 100755 --- a/main.sh +++ b/main.sh @@ -3,7 +3,7 @@ # entrypoint for all actions # -VER="2.1.2" +VER="2.1.3" HERE=$(dirname "$0") THIS_SCRIPT=$0 @@ -83,7 +83,9 @@ while :; do if [ "$2" ]; then list_archive_content "$2" else - echo 'ERROR: "--content" requires a non-empty option argument.' + echo 'ERROR: "--content" requires the archive name as an argument.' + echo + show_help fi break ;; @@ -93,7 +95,9 @@ while :; do shift 2 restore "$archive" "$@" else - echo 'ERROR: "--restore" requires a non-empty option argument.' + echo 'ERROR: "--restore" requires a least the archive name as an argument.' + echo + show_help fi break ;; diff --git a/save-conf b/save-conf new file mode 100755 index 0000000..d330091 --- /dev/null +++ b/save-conf @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# +# Archive docker config +# +# copy this file to docker/run + +SOURCE=/var/docker/run/docker-compose.yml +SAVE_DIR=/srv/nas/Server/CoreOS/docker-run +SAVE_FILE=$(hostname -s)-docker-compose-$(date '+%Y-%m-%d_%H%M').yml + +cp $SOURCE $SAVE_DIR/$SAVE_FILE diff --git a/test.sh b/test.sh deleted file mode 100755 index a06644b..0000000 --- a/test.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env bash - -fn() { - echo "all: $@" - echo "#1: $1" - shift - echo "rest: $@" -} - - -fn eins zwei drei -exit - - -if [ "$(id -u)" -ne 0 ]; then - echo "**" - echo "** ERROR: script has to be run as superuser!" - echo "**" - exit 100 -fi - -HERE=$(dirname "$0") - -if [ -f $HERE/main.inc.sh ]; then - . $HERE/main.inc.sh -else - echo "**" - echo "** ERROR: Datei \"$HERE/main.inc.sh\" nicht gefunden. " - echo "** Script wird abgebrochen" - echo "**" - show_help - exit 101 -fi - -if [ -f $HERE/$HOST_NAME.sh ]; then - . $HERE/$HOST_NAME.sh -else - echo "**" - echo "** ERROR: Datei \"$HOST_NAME.sh\" nicht gefunden (falscher Rechner?). " - echo "** Script wird abgebrochen." - echo "**" - show_help - exit 102 -fi - -log_file_name="$NAS_ROOT/log/$HOST_NAME-$(date '+%Y-%m-%d_%H%M')" -LOG_FILE="${log_file_name}.log" - -# nicht auf calvados -#. $HERE/$HOST_NAME - -test() { - for i in "$@"; do echo "$i"; done -} - -isFunction() { declare -Ff "$1" ; } - -if [ "$HOST_NAME" != "$NAS_HOSTNAME" ]; then - run_script_remote $NAS_IP "/volume1/nfs/Server/bin/backup/test.sh -x" - #ssh 10.4.2.20 "sudo sh -c 'nohup /volume1/nfs/Server/bin/backup/main.sh -e &>/dev/null < /dev/null &'" - exit -else - echo "klappt $1" > /volume1/nfs/log/backup/remote_run.log -fi - - -exit - - -list1() { - EXCL=("eaDir" "Temporary Items" "lost+found" backups) - ONE="erster #1" - TWO="zweiter #1" - #for i in "${a[@]}"; do echo "$i"; done -} -list2() { - EXCL=("@eaDir" "Temporary Items" "lost+found") - ONE="eins2" - TWO="zwei2" - return 0 - #for i in "${a[@]}"; do echo "$i"; done -} - -fun0() { - return 0 -} - -if [ "$(id -u)" -ne 0 ]; then - echo "**" - echo "** ERROR: script has to be run as superuser!" - echo "**" - exit 100 -fi - -fun0 -rc=$? - -if [ $rc -eq 0 ]; then - echo "$rc -eq 0" -fi - -#echo "result=$rc0" - -exit \ No newline at end of file