some test code
This commit is contained in:
1 parent
5911758f1f
commit
b9e6da7645
3 files changed
+203
No files matched your search
@@ -0,0 +1,80 @@
|
|||||||
|
### tar
|
||||||
|
|
||||||
|
```
|
||||||
|
#!/bin/bash
|
||||||
|
date
|
||||||
|
cd /var/docker
|
||||||
|
for f in *; do
|
||||||
|
sudo tar -c -z -v --numeric-owner --one-file-system -f /var/docker/tmp/$(basename $f).tar.gz $f
|
||||||
|
done
|
||||||
|
date
|
||||||
|
```
|
||||||
|
|
||||||
|
### gpg
|
||||||
|
|
||||||
|
```
|
||||||
|
passphrase=$(head -n 1 /var/secret.key)
|
||||||
|
gpg --symmetric --batch --yes --passphrase $passphrase --output some.gpg toEncrypt.txt
|
||||||
|
|
||||||
|
# oder
|
||||||
|
|
||||||
|
gpg --batch -c --passphrase-file /var/secret.key -o some.gpg toencrypt.txt
|
||||||
|
|
||||||
|
# oder
|
||||||
|
|
||||||
|
gpg --batch --symmetric --passphrase 1234567890 test.txt # -> test.txt.gpg
|
||||||
|
|
||||||
|
gpg --batch --decrypt --passphrase 1234567890 -o test.txt test.txt.gpg # ohne -o to stdout
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### TODO
|
||||||
|
|
||||||
|
nextcloud:
|
||||||
|
- vol/nextcloud/data/data/hb zeigt auf NAS-share
|
||||||
|
-> alles auf NAS, bzw. alles auf Server?
|
||||||
|
-> oder symlink in NFS-Share?
|
||||||
|
-> falls auf NAS, per NFS?
|
||||||
|
|
||||||
|
backup MAC
|
||||||
|
- ccc 2x 2TB intern (weekly)
|
||||||
|
- ccc 2x 2TB extern
|
||||||
|
- TODO: SSDs auf Verschlüsselung umstellen
|
||||||
|
- TODO: Kalendereintrag für wöchentlichen backup
|
||||||
|
|
||||||
|
nas-backup daily
|
||||||
|
- tar, gpg to nas
|
||||||
|
- server: /var dir to file (evtl. /var/docker + /var/docker/vol extra - tar-Syntax?)
|
||||||
|
- nas: //data, //nfs, //nextcloud(?) dir to file
|
||||||
|
- auf nas unter //backup sammeln
|
||||||
|
- TODO: tar syntax (find | py)
|
||||||
|
- TODO: gpg syntax
|
||||||
|
- TODO: file handling
|
||||||
|
- TODO: script (python?)
|
||||||
|
|
||||||
|
nas-backup weekly 1
|
||||||
|
- media/books, media/music/_all + _hoerspiel -> tar, gpg nach //backup
|
||||||
|
- TODO: s. nas-backup daily
|
||||||
|
|
||||||
|
backup server+nas
|
||||||
|
- rsync nas-backup 2x HDD intern (weekly) (5TB?)
|
||||||
|
- TODO: script (python?) mit HD-Erkennung
|
||||||
|
- TODO: zusätzliche HDD
|
||||||
|
- TODO: Kalendereintrag, s. backup MAC
|
||||||
|
|
||||||
|
export backups
|
||||||
|
- rsync nas-backup 2x 2TB HDD extern
|
||||||
|
- TODO: script, s. backup server+nas
|
||||||
|
|
||||||
|
export serien
|
||||||
|
- rsync dir 1x 5TB HDD extern
|
||||||
|
- TODO: vorhandenes script in neue Routine einbauen
|
||||||
|
|
||||||
|
export video
|
||||||
|
- rsync dir 1x 5TB HDD extern
|
||||||
|
- TODO: s. export serien
|
||||||
|
|
||||||
|
**script**
|
||||||
|
|
||||||
|
tar: wo beginnen?, Schleife für dirs
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# entrypoint for all actions
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "not implemented yet"
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
RUN_DIR=/var/docker
|
||||||
|
BACKUP_DIR=vol
|
||||||
|
SOURCE=nextcloud
|
||||||
|
TARGET_DIR=/var/docker/tmp
|
||||||
|
PASSPHRASE=1234567890
|
||||||
|
|
||||||
|
RESTORE=vol/nextcloud/data/data/nextcloud.log
|
||||||
|
|
||||||
|
# Ist $1 in der Liste der restlichen args $2, $3 ...
|
||||||
|
#
|
||||||
|
# zB. if is_in "foo" "foo" "bar" "foo bar" ; then ...
|
||||||
|
# Leere Liste liefert immer false
|
||||||
|
#
|
||||||
|
function is_in {
|
||||||
|
local search="$1"
|
||||||
|
shift 1
|
||||||
|
local e
|
||||||
|
for e in "$@"; do [[ "$e" == "$search" ]] && return 0; done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# alle Verzechnisnamen in einem Verzeichnis holen
|
||||||
|
#
|
||||||
|
# $1 - Verzeichnis in dem gesucht wird als absoluter Pfad
|
||||||
|
# $2 ff. - auszuschliessende Verzeichnisse (kann leer bleiben)
|
||||||
|
#
|
||||||
|
function iterate_dirs_in() {
|
||||||
|
local dirname
|
||||||
|
local root=$1
|
||||||
|
shift 1
|
||||||
|
for dir in $(find "$root" -maxdepth 1 -type d \! -wholename "$root"); do
|
||||||
|
dirname=$(basename $dir)
|
||||||
|
if ! is_in "$dirname" "$@"; then
|
||||||
|
echo "$dirname"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Verzeichnise in .tgz.gpg-Dateien sichern
|
||||||
|
#
|
||||||
|
# $1 - Verzeichnis unterhalb dessen gesichert werden soll, das also nicht Teil des gespeicherten Pfads wird (z.B /var/docker)
|
||||||
|
# $2 - Verzeichnis, das gesichert wird: alle Verzeichnisse darunter werden einzeln als .tgz.gpg-Datei gesichert (z.B vol -> apache.tgz.gpg, etc.)
|
||||||
|
# $3 - Zielverzeichnis für .tgz.gpg-Dateien
|
||||||
|
# $4 ff. - Verzeichnisse, die nicht gesichert werden sollen (kann leer bleiben)
|
||||||
|
#
|
||||||
|
function backup_dir() {
|
||||||
|
local root=$1
|
||||||
|
local source=$2
|
||||||
|
local target=$3
|
||||||
|
local dir
|
||||||
|
shift 3
|
||||||
|
cd "$root"
|
||||||
|
for dir in $(iterate_dirs_in "$root/$source" "$@"); do
|
||||||
|
sudo tar -c -z --numeric-owner --one-file-system "$source/$dir" | sudo gpg --batch -c --passphrase $PASSPHRASE -o "$target/$dir.tgz.gpg"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
#for dir in $(find "$RUN_DIR/$BACKUP_DIR" -maxdepth 1 -type d \! -wholename "$RUN_DIR/$BACKUP_DIR"); do
|
||||||
|
# testfn "$dir -> $(basename $dir)"
|
||||||
|
#done
|
||||||
|
|
||||||
|
echo "-----------------------"
|
||||||
|
date
|
||||||
|
echo "-----------------------"
|
||||||
|
backup_dir "$RUN_DIR" "$BACKUP_DIR" "$TARGET_DIR"
|
||||||
|
echo "-----------------------"
|
||||||
|
date
|
||||||
|
echo "-----------------------"
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
date +%H:%M:%S.%N
|
||||||
|
echo "--- tar -c ------------------------------------------------"
|
||||||
|
|
||||||
|
cd $RUN_DIR
|
||||||
|
|
||||||
|
sudo tar -c -z --numeric-owner --one-file-system -f "$TARGET_DIR/$SOURCE.tar.gz" "$BACKUP_DIR/$SOURCE"
|
||||||
|
date +%H:%M:%S.%N
|
||||||
|
|
||||||
|
echo "--- tar -t ------------------------------------------------"
|
||||||
|
|
||||||
|
cd $TARGET_DIR
|
||||||
|
|
||||||
|
sudo tar -t -f "$TARGET_DIR/$SOURCE.tar.gz" | sudo tee tar_list.txt >/dev/null
|
||||||
|
date +%H:%M:%S.%N
|
||||||
|
|
||||||
|
echo "--- tar -x ------------------------------------------------"
|
||||||
|
|
||||||
|
sudo tar -xv -f "$TARGET_DIR/$SOURCE.tar.gz" $RESTORE >/dev/null
|
||||||
|
date +%H:%M:%S.%N
|
||||||
|
|
||||||
|
TARGET_DIR=/var/docker/tmp/two
|
||||||
|
echo "#"
|
||||||
|
echo "### gpg ###################################################"
|
||||||
|
echo "#"
|
||||||
|
|
||||||
|
date +%H:%M:%S.%N
|
||||||
|
echo "--- tar -c ------------------------------------------------"
|
||||||
|
|
||||||
|
cd $RUN_DIR
|
||||||
|
|
||||||
|
sudo tar -c -z --numeric-owner --one-file-system "$BACKUP_DIR/$SOURCE" | sudo gpg --batch -c --passphrase $PASSPHRASE -o "$TARGET_DIR/$SOURCE.tgz.gpg"
|
||||||
|
date +%H:%M:%S.%N
|
||||||
|
|
||||||
|
echo "--- tar -t ------------------------------------------------"
|
||||||
|
|
||||||
|
cd $TARGET_DIR
|
||||||
|
|
||||||
|
sudo gpg --batch --decrypt --passphrase $PASSPHRASE "$TARGET_DIR/$SOURCE.tgz.gpg" 2>/dev/null | sudo tar -tz | sudo tee tar_list.txt >/dev/null
|
||||||
|
date +%H:%M:%S.%N
|
||||||
|
|
||||||
|
echo "--- tar -x ------------------------------------------------"
|
||||||
|
|
||||||
|
sudo gpg --batch --decrypt --passphrase $PASSPHRASE "$TARGET_DIR/$SOURCE.tgz.gpg" 2>/dev/null | sudo tar -xzv $RESTORE >/dev/null
|
||||||
|
date +%H:%M:%S.%N
|
||||||
Reference in new issue
Block a user