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
|
||||
- new for postgres
|
||||
> server exec postgres su - postgres -c pg_dumpall >pg.dump
|
||||
- jede db einzeln?
|
||||
- +mariadb
|
||||
- hooks für weitere
|
||||
|
||||
@@ -33,16 +34,16 @@ nas-backup weekly 1
|
||||
|
||||
logging
|
||||
- für auto-fns mail()
|
||||
- mail() loggt in extra Datei und ruft log(), für std log
|
||||
- Name std log in mail() ausgeben
|
||||
- mail log lokal anlegen (wo?)
|
||||
- am Ende von auto mail log in mail und file löschen -> py-script
|
||||
- alle Programme müssen stdout/stderr auf std log umleiten
|
||||
- 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)
|
||||
- log file in nfs/backups/log/$HOST_NAME-$(date '+%Y-%m-%d_%H%M').log
|
||||
(x) mail() loggt in extra Datei und ruft log(), für std log
|
||||
(x) Name std log in mail() ausgeben
|
||||
(-) mail log lokal anlegen (wo?)
|
||||
(-) am Ende von auto mail log in mail und file löschen -> py-script
|
||||
(x) alle Programme müssen stdout/stderr auf std log umleiten
|
||||
(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)
|
||||
(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?
|
||||
- evtl. logs lokal ablegen und am Ende auf NAS kopieren
|
||||
(-) evtl. logs lokal ablegen und am Ende auf NAS kopieren
|
||||
|
||||
backup server+nas extern
|
||||
- rsync nas-backup 2x HDD intern (weekly) (5TB?)
|
||||
|
||||
+57
-7
@@ -7,14 +7,28 @@ PASSPHRASE=1234567890
|
||||
EXT=tgz.gpg
|
||||
LIST_EXT=txt
|
||||
|
||||
LOG_RECIPIENT=hb242@pm.me
|
||||
|
||||
INFO=INFO
|
||||
WARN=WARN
|
||||
ERROR=ERROR
|
||||
DEBUG=DEBUG
|
||||
SUCCESS="*** success"
|
||||
INF="---"
|
||||
WRN=":::"
|
||||
ERR="###"
|
||||
DBG="==="
|
||||
|
||||
dump_mariadb() {
|
||||
# TODO
|
||||
echo
|
||||
}
|
||||
|
||||
dump_postgresql() {
|
||||
# TODO
|
||||
echo
|
||||
}
|
||||
|
||||
# docker compose ausführen
|
||||
#
|
||||
# $1 ff. - compose parameter, z.B. up -d
|
||||
@@ -48,10 +62,6 @@ isFunction() { declare -Ff "$1" ; }
|
||||
|
||||
# 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.
|
||||
# $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() {
|
||||
local type=$1
|
||||
shift
|
||||
@@ -72,6 +91,13 @@ mail_log() {
|
||||
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
|
||||
#
|
||||
# $1 - return code to check
|
||||
@@ -97,6 +123,8 @@ is_error() {
|
||||
#
|
||||
# $1, ff. - return codes
|
||||
#
|
||||
# returns 0 for success, 1 for one or more errors
|
||||
#
|
||||
check_pipe_rc() {
|
||||
local result=0
|
||||
local count=1
|
||||
@@ -119,6 +147,8 @@ check_pipe_rc() {
|
||||
# $1 - Verzeichnis auf Server
|
||||
# $2 - Ziel-Verzeichnis auf der NAS
|
||||
#
|
||||
# returns return code of mv
|
||||
#
|
||||
copy_to_nas() {
|
||||
log $DEBUG "$DBG copy_to_nas $@"
|
||||
local source="$1"
|
||||
@@ -167,6 +197,8 @@ iterate_dirs_in() {
|
||||
#
|
||||
# $1 - dir to check
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
check_directory() {
|
||||
log $DEBUG "$DBG check_directory $@"
|
||||
local dir=$1
|
||||
@@ -186,6 +218,8 @@ check_directory() {
|
||||
#
|
||||
# $1 - zu löschendes Verzeichnis
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
delete_dir() {
|
||||
log $DEBUG "$DBG delete_dir $@"
|
||||
local dir=$1
|
||||
@@ -208,6 +242,8 @@ backup_file_prefix() {
|
||||
# $2 - Zielverzeichnis für .tgz.gpg-Dateien
|
||||
# $3 ff. - Verzeichnisse, die nicht gesichert werden sollen (kann leer bleiben)
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
backup_all_dirs() {
|
||||
log $DEBUG "$DBG backup_all_dirs $@"
|
||||
local root=$1
|
||||
@@ -240,6 +276,8 @@ backup_all_dirs() {
|
||||
# $2 - Zielpfad und -name für das Archiv
|
||||
# $2 - zu sicherndes Verzeichnis
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
backup_dir() {
|
||||
log $DEBUG "$DBG backup_dir $@"
|
||||
local root=$1
|
||||
@@ -259,6 +297,8 @@ backup_dir() {
|
||||
# hier wird dann dass hostname-script gesourced (s.o.) und in einer Schleife werden die
|
||||
# entsprechend en backup_*-Funktionen aufgerufen
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
do_auto_backup() {
|
||||
log $DEBUG "$DBG do_auto_backup $@"
|
||||
local func=$1
|
||||
@@ -301,13 +341,13 @@ backup_daily() {
|
||||
mail_log $INFO ">>>>>>>>>> daily auto backup $VER for $HOST_NAME <<<<<<<<<<"
|
||||
do_auto_backup backup_daily
|
||||
mail_log $INFO ">>>>>>>>>> end of auto backup"
|
||||
# TODO mail log
|
||||
send_mail_log
|
||||
}
|
||||
backup_weekly() {
|
||||
mail_log $INFO ">>>>>>>>>> weekly auto backup $VER for $HOST_NAME <<<<<<<<<<"
|
||||
do_auto_backuo backup_weekly
|
||||
mail_log $INFO ">>>>>>>>>> end of auto backup"
|
||||
# TODO mail log
|
||||
send_mail_log
|
||||
}
|
||||
|
||||
export_backups() {
|
||||
@@ -317,13 +357,15 @@ export_backups() {
|
||||
# check USB drive
|
||||
# del USB drive (?)
|
||||
# rsync USB -> 1|2, video, serien
|
||||
# mail log
|
||||
# send_mail_log
|
||||
}
|
||||
|
||||
# Inhalt des Archivs in eine Textdatei ausgeben.
|
||||
#
|
||||
# $1 - Archiv
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
create_list() {
|
||||
log $DEBUG "$DBG create_list $@"
|
||||
local archive=$1
|
||||
@@ -338,6 +380,8 @@ create_list() {
|
||||
#
|
||||
# $1 - Archiv
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
test_integrity() {
|
||||
log $DEBUG "$DBG test_integrity $@"
|
||||
local archive=$1
|
||||
@@ -354,6 +398,8 @@ test_integrity() {
|
||||
# $1 - Archiv, ggf. mit Pfad
|
||||
# $2 ff. - zurückzusichernde Dateien/Verzeichnisse
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
restore() {
|
||||
log $DEBUG "$DBG restore $@"
|
||||
local archive=$1
|
||||
@@ -376,6 +422,8 @@ restore() {
|
||||
#
|
||||
# $1 - Verzeichnis unter dem alle Backups liegen
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
list_archives() {
|
||||
log $DEBUG "$DBG list_archives $@"
|
||||
local target=$1
|
||||
@@ -391,6 +439,8 @@ list_archives() {
|
||||
# $1 - Verzeichnis unter dem alle Backups liegen
|
||||
# $2 - Archiv-Datei mit Pfad ab $1
|
||||
#
|
||||
# returns 0 for success, 1 otherwise
|
||||
#
|
||||
list_archive_content() {
|
||||
log $DEBUG "$DBG list_archive_content $@"
|
||||
local root=$1
|
||||
|
||||
Reference in new issue
Block a user