mail log file
This commit is contained in:
1 parent
b079912dc7
commit
d7dd6cc92f
3 files changed
+70
-16
No files matched your search
@@ -4,6 +4,7 @@
|
|||||||
DC-Dump
|
DC-Dump
|
||||||
- new for postgres
|
- new for postgres
|
||||||
> server exec postgres su - postgres -c pg_dumpall >pg.dump
|
> server exec postgres su - postgres -c pg_dumpall >pg.dump
|
||||||
|
- jede db einzeln?
|
||||||
- +mariadb
|
- +mariadb
|
||||||
- hooks für weitere
|
- hooks für weitere
|
||||||
|
|
||||||
@@ -33,16 +34,16 @@ nas-backup weekly 1
|
|||||||
|
|
||||||
logging
|
logging
|
||||||
- für auto-fns mail()
|
- für auto-fns mail()
|
||||||
- mail() loggt in extra Datei und ruft log(), für std log
|
(x) mail() loggt in extra Datei und ruft log(), für std log
|
||||||
- Name std log in mail() ausgeben
|
(x) Name std log in mail() ausgeben
|
||||||
- mail log lokal anlegen (wo?)
|
(-) mail log lokal anlegen (wo?)
|
||||||
- am Ende von auto mail log in mail und file löschen -> py-script
|
(-) am Ende von auto mail log in mail und file löschen -> py-script
|
||||||
- alle Programme müssen stdout/stderr auf std log umleiten
|
(x) alle Programme müssen stdout/stderr auf std log umleiten
|
||||||
- für jeden Lauf neue log datei (+date)
|
(x) für jeden Lauf neue log datei (+date)
|
||||||
- Name der log Datei bei !auto auf stderr ausgeben (damit stdout ggf. geparst werden kann, alt.: param --machine)
|
(-) Name der log Datei bei !auto auf stderr ausgeben (damit stdout ggf. geparst werden kann, alt.: param --machine)
|
||||||
- log file in nfs/backups/log/$HOST_NAME-$(date '+%Y-%m-%d_%H%M').log
|
(x) log file in nfs/backups/log/$HOST_NAME-$(date '+%Y-%m-%d_%H%M').log
|
||||||
- bei jedem Lauf alte logs löschen (7d?) -> wie?
|
- bei jedem Lauf alte logs löschen (7d?) -> wie?
|
||||||
- evtl. logs lokal ablegen und am Ende auf NAS kopieren
|
(-) evtl. logs lokal ablegen und am Ende auf NAS kopieren
|
||||||
|
|
||||||
backup server+nas extern
|
backup server+nas extern
|
||||||
- rsync nas-backup 2x HDD intern (weekly) (5TB?)
|
- rsync nas-backup 2x HDD intern (weekly) (5TB?)
|
||||||
|
|||||||
+57
-7
@@ -7,14 +7,28 @@ PASSPHRASE=1234567890
|
|||||||
EXT=tgz.gpg
|
EXT=tgz.gpg
|
||||||
LIST_EXT=txt
|
LIST_EXT=txt
|
||||||
|
|
||||||
|
LOG_RECIPIENT=hb242@pm.me
|
||||||
|
|
||||||
INFO=INFO
|
INFO=INFO
|
||||||
|
WARN=WARN
|
||||||
ERROR=ERROR
|
ERROR=ERROR
|
||||||
DEBUG=DEBUG
|
DEBUG=DEBUG
|
||||||
SUCCESS="*** success"
|
SUCCESS="*** success"
|
||||||
INF="---"
|
INF="---"
|
||||||
|
WRN=":::"
|
||||||
ERR="###"
|
ERR="###"
|
||||||
DBG="==="
|
DBG="==="
|
||||||
|
|
||||||
|
dump_mariadb() {
|
||||||
|
# TODO
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
dump_postgresql() {
|
||||||
|
# TODO
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
# docker compose ausführen
|
# docker compose ausführen
|
||||||
#
|
#
|
||||||
# $1 ff. - compose parameter, z.B. up -d
|
# $1 ff. - compose parameter, z.B. up -d
|
||||||
@@ -48,10 +62,6 @@ isFunction() { declare -Ff "$1" ; }
|
|||||||
|
|
||||||
# Log-Datei schreiben.
|
# Log-Datei schreiben.
|
||||||
#
|
#
|
||||||
# Die Ausgabe geht auch auf STDOUT, dadurch kann die vollständige Ausgabe,
|
|
||||||
# einschließlich Status- und Fehlermeldungen der Programme in ein erweitertes
|
|
||||||
# Log für die Fehlersuche umgeleitet werden.
|
|
||||||
#
|
|
||||||
# $1 - Typ, z.B. INFO, WARN, ERROR, etc.
|
# $1 - Typ, z.B. INFO, WARN, ERROR, etc.
|
||||||
# $2 ff. - die Meldung, die ins Log geschreiben wird
|
# $2 ff. - die Meldung, die ins Log geschreiben wird
|
||||||
#
|
#
|
||||||
@@ -63,6 +73,15 @@ log() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Reduziertes Log für automatische Läufe
|
||||||
|
#
|
||||||
|
# Das Log wird am Ende des Laufs als Mail verschickt. Die Meldungen
|
||||||
|
# werden zusätzlich im Standard-Log protokolliert.
|
||||||
|
# Dieses log wird nur geschrieben, wenn $MAIL_LOG_FILE definiert ist.
|
||||||
|
#
|
||||||
|
# $1 - Typ, z.B. INFO, WARN, ERROR, etc.
|
||||||
|
# $2 ff. - die Meldung, die ins Log geschreiben wird
|
||||||
|
#
|
||||||
mail_log() {
|
mail_log() {
|
||||||
local type=$1
|
local type=$1
|
||||||
shift
|
shift
|
||||||
@@ -72,6 +91,13 @@ mail_log() {
|
|||||||
log "$type" "$@"
|
log "$type" "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Reduziertes Log senden
|
||||||
|
#
|
||||||
|
send_mail_log() {
|
||||||
|
log $DEBUG "$DBG > $HERE/mail.sh $LOG_RECIPIENT \"[$HOST_NAME] Nightly Backup\" $MAIL_LOG_FILE"
|
||||||
|
$HERE/mail.sh $LOG_RECIPIENT "[$HOST_NAME] Nightly Backup" $MAIL_LOG_FILE >>$LOG_FILE 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
# check if $1 is error (!=0) and write result to log
|
# check if $1 is error (!=0) and write result to log
|
||||||
#
|
#
|
||||||
# $1 - return code to check
|
# $1 - return code to check
|
||||||
@@ -97,6 +123,8 @@ is_error() {
|
|||||||
#
|
#
|
||||||
# $1, ff. - return codes
|
# $1, ff. - return codes
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 for one or more errors
|
||||||
|
#
|
||||||
check_pipe_rc() {
|
check_pipe_rc() {
|
||||||
local result=0
|
local result=0
|
||||||
local count=1
|
local count=1
|
||||||
@@ -119,6 +147,8 @@ check_pipe_rc() {
|
|||||||
# $1 - Verzeichnis auf Server
|
# $1 - Verzeichnis auf Server
|
||||||
# $2 - Ziel-Verzeichnis auf der NAS
|
# $2 - Ziel-Verzeichnis auf der NAS
|
||||||
#
|
#
|
||||||
|
# returns return code of mv
|
||||||
|
#
|
||||||
copy_to_nas() {
|
copy_to_nas() {
|
||||||
log $DEBUG "$DBG copy_to_nas $@"
|
log $DEBUG "$DBG copy_to_nas $@"
|
||||||
local source="$1"
|
local source="$1"
|
||||||
@@ -167,6 +197,8 @@ iterate_dirs_in() {
|
|||||||
#
|
#
|
||||||
# $1 - dir to check
|
# $1 - dir to check
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
check_directory() {
|
check_directory() {
|
||||||
log $DEBUG "$DBG check_directory $@"
|
log $DEBUG "$DBG check_directory $@"
|
||||||
local dir=$1
|
local dir=$1
|
||||||
@@ -186,6 +218,8 @@ check_directory() {
|
|||||||
#
|
#
|
||||||
# $1 - zu löschendes Verzeichnis
|
# $1 - zu löschendes Verzeichnis
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
delete_dir() {
|
delete_dir() {
|
||||||
log $DEBUG "$DBG delete_dir $@"
|
log $DEBUG "$DBG delete_dir $@"
|
||||||
local dir=$1
|
local dir=$1
|
||||||
@@ -208,6 +242,8 @@ backup_file_prefix() {
|
|||||||
# $2 - Zielverzeichnis für .tgz.gpg-Dateien
|
# $2 - Zielverzeichnis für .tgz.gpg-Dateien
|
||||||
# $3 ff. - Verzeichnisse, die nicht gesichert werden sollen (kann leer bleiben)
|
# $3 ff. - Verzeichnisse, die nicht gesichert werden sollen (kann leer bleiben)
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
backup_all_dirs() {
|
backup_all_dirs() {
|
||||||
log $DEBUG "$DBG backup_all_dirs $@"
|
log $DEBUG "$DBG backup_all_dirs $@"
|
||||||
local root=$1
|
local root=$1
|
||||||
@@ -240,6 +276,8 @@ backup_all_dirs() {
|
|||||||
# $2 - Zielpfad und -name für das Archiv
|
# $2 - Zielpfad und -name für das Archiv
|
||||||
# $2 - zu sicherndes Verzeichnis
|
# $2 - zu sicherndes Verzeichnis
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
backup_dir() {
|
backup_dir() {
|
||||||
log $DEBUG "$DBG backup_dir $@"
|
log $DEBUG "$DBG backup_dir $@"
|
||||||
local root=$1
|
local root=$1
|
||||||
@@ -259,6 +297,8 @@ backup_dir() {
|
|||||||
# hier wird dann dass hostname-script gesourced (s.o.) und in einer Schleife werden die
|
# hier wird dann dass hostname-script gesourced (s.o.) und in einer Schleife werden die
|
||||||
# entsprechend en backup_*-Funktionen aufgerufen
|
# entsprechend en backup_*-Funktionen aufgerufen
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
do_auto_backup() {
|
do_auto_backup() {
|
||||||
log $DEBUG "$DBG do_auto_backup $@"
|
log $DEBUG "$DBG do_auto_backup $@"
|
||||||
local func=$1
|
local func=$1
|
||||||
@@ -301,13 +341,13 @@ backup_daily() {
|
|||||||
mail_log $INFO ">>>>>>>>>> daily auto backup $VER for $HOST_NAME <<<<<<<<<<"
|
mail_log $INFO ">>>>>>>>>> daily auto backup $VER for $HOST_NAME <<<<<<<<<<"
|
||||||
do_auto_backup backup_daily
|
do_auto_backup backup_daily
|
||||||
mail_log $INFO ">>>>>>>>>> end of auto backup"
|
mail_log $INFO ">>>>>>>>>> end of auto backup"
|
||||||
# TODO mail log
|
send_mail_log
|
||||||
}
|
}
|
||||||
backup_weekly() {
|
backup_weekly() {
|
||||||
mail_log $INFO ">>>>>>>>>> weekly auto backup $VER for $HOST_NAME <<<<<<<<<<"
|
mail_log $INFO ">>>>>>>>>> weekly auto backup $VER for $HOST_NAME <<<<<<<<<<"
|
||||||
do_auto_backuo backup_weekly
|
do_auto_backuo backup_weekly
|
||||||
mail_log $INFO ">>>>>>>>>> end of auto backup"
|
mail_log $INFO ">>>>>>>>>> end of auto backup"
|
||||||
# TODO mail log
|
send_mail_log
|
||||||
}
|
}
|
||||||
|
|
||||||
export_backups() {
|
export_backups() {
|
||||||
@@ -317,13 +357,15 @@ export_backups() {
|
|||||||
# check USB drive
|
# check USB drive
|
||||||
# del USB drive (?)
|
# del USB drive (?)
|
||||||
# rsync USB -> 1|2, video, serien
|
# rsync USB -> 1|2, video, serien
|
||||||
# mail log
|
# send_mail_log
|
||||||
}
|
}
|
||||||
|
|
||||||
# Inhalt des Archivs in eine Textdatei ausgeben.
|
# Inhalt des Archivs in eine Textdatei ausgeben.
|
||||||
#
|
#
|
||||||
# $1 - Archiv
|
# $1 - Archiv
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
create_list() {
|
create_list() {
|
||||||
log $DEBUG "$DBG create_list $@"
|
log $DEBUG "$DBG create_list $@"
|
||||||
local archive=$1
|
local archive=$1
|
||||||
@@ -338,6 +380,8 @@ create_list() {
|
|||||||
#
|
#
|
||||||
# $1 - Archiv
|
# $1 - Archiv
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
test_integrity() {
|
test_integrity() {
|
||||||
log $DEBUG "$DBG test_integrity $@"
|
log $DEBUG "$DBG test_integrity $@"
|
||||||
local archive=$1
|
local archive=$1
|
||||||
@@ -354,6 +398,8 @@ test_integrity() {
|
|||||||
# $1 - Archiv, ggf. mit Pfad
|
# $1 - Archiv, ggf. mit Pfad
|
||||||
# $2 ff. - zurückzusichernde Dateien/Verzeichnisse
|
# $2 ff. - zurückzusichernde Dateien/Verzeichnisse
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
restore() {
|
restore() {
|
||||||
log $DEBUG "$DBG restore $@"
|
log $DEBUG "$DBG restore $@"
|
||||||
local archive=$1
|
local archive=$1
|
||||||
@@ -376,6 +422,8 @@ restore() {
|
|||||||
#
|
#
|
||||||
# $1 - Verzeichnis unter dem alle Backups liegen
|
# $1 - Verzeichnis unter dem alle Backups liegen
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
list_archives() {
|
list_archives() {
|
||||||
log $DEBUG "$DBG list_archives $@"
|
log $DEBUG "$DBG list_archives $@"
|
||||||
local target=$1
|
local target=$1
|
||||||
@@ -391,6 +439,8 @@ list_archives() {
|
|||||||
# $1 - Verzeichnis unter dem alle Backups liegen
|
# $1 - Verzeichnis unter dem alle Backups liegen
|
||||||
# $2 - Archiv-Datei mit Pfad ab $1
|
# $2 - Archiv-Datei mit Pfad ab $1
|
||||||
#
|
#
|
||||||
|
# returns 0 for success, 1 otherwise
|
||||||
|
#
|
||||||
list_archive_content() {
|
list_archive_content() {
|
||||||
log $DEBUG "$DBG list_archive_content $@"
|
log $DEBUG "$DBG list_archive_content $@"
|
||||||
local root=$1
|
local root=$1
|
||||||
|
|||||||
Reference in new issue
Block a user