LINUX: borg system backup

on debian:

apt install borgbackup

Client site:
Sytembackup using exclude dirs:

#!/usr/bin/env bash

##
## Umgebungsvariablen
##

## set ssh key if needed
# export BORG_RSH="ssh -i /home/SOMEUSER/.ssh/id_ed25519"

## repository passphrase
export BORG_PASSPHRASE="SUPERSECRET"

## Host variables

LOG="/var/log/borg/backup.log"
BACKUP_USER="borg"
BACKUP_HOST="XXXBACKUP_SERVERXXX"
REPOSITORY_DIR="XXXLOCAL_HOSTNAMEXXX"

## build full repo path

REPOSITORY="${BACKUP_USER}@${BACKUP_HOST}:/var/lib/backup/${REPOSITORY_DIR}"

## Write Log

exec > >(tee -i ${LOG})
exec 2>&1

echo "###### Backup gestartet: $(date) ######"
TIMESTAMP=`date +%Y-%m-%d_%H-%M-%S`

echo "Übertrage Dateien ..."
borg create -v --stats                   \
	$REPOSITORY::${REPOSITORY_DIR}_${TIMESTAMP}  \
    /                                    \
    --exclude /dev                       \
    --exclude /proc                      \
    --exclude /sys                       \
    --exclude /var/run                   \
    --exclude /run                       \
    --exclude /lost+found                

echo "###### Backup beendet: $(date) ######"

usage in cron:

0 0 * * * /root/backup.sh > /dev/null 2>&1

termux borg backup with android

#!/bin/sh

#HOME="/storage/emulated/0/"
HOME="/"
BORG_REPO="my_mobile"

dirs="/"
dirs="/storage /data"

sudo borg create                               \
    --exclude-caches                      \
    --exclude-if-present "nobackup.tag"   \
    --exclude-if-present ".nobackup.tag"  \
    --progress                            \
    --stats                               \
    borg-backup@192.168.XX.XX:/mnt/BorgBackup/${BORG_REPO}/::'my-mobile-{now}' $dirs
    

sudo borg prune --stats --keep-within 14d --keep-daily 8 --keep-weekly 8 --keep-monthly 24 --keep-yearly -1 borg-backup@192.168.XX.XX:/mnt/BorgBackup/${BORG_REPO}/

Dyndns mit synology ipv6

Erstmal Systemsteuerung -> Aufgabenplaner
Erstellen -> Benutzerdefiniertes Skript

ipv6=$(ip -6 addr |grep global |awk '{print $2}')
ipv6=${ipv6%/64} #change /64 depending your net
curl https://USER:PASS@dyndns.kasserver.com/?myip=$ipv6

SSH mit ed25519

generate your key with:

ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519_usecase -C "name@machine"

add to ssh-agent with keychain

ssh-add -K

set permissions, if not already set:

chmod 400 ~/.ssh/*

freebsd: pkg reparieren

pkg-static install -f pkg
pkg upgrade -f

 

wenn das nicht klappt

pkg delete -f pkg && cd /usr/ports/ports-mgmt/pkg && make install clean

oder ansonsten:

cd /usr/ports/ports-mgmt/pkg && make reinstall clean 

ein bisschen DOCKER krams

docker container auflisten

sudo docker ps

Befehl im Container ausführen

sudo docker exec -it CONTAINERID psql localhost -p 5432 -U postgres -d databasename

oder

sudo docker exec -it CONTAINERID bash

 

 

Fritzbox Support Datei

Fritzbox Support Datei erstellen.

auf http://192.168.178.1/support.lua
kann die Support Datei erstellt werden.

FreeBSD: fix error in rc.conf in recovery shell

filesystem is mounted readonly … how to remount and repair rc.conf

/etc/rc.conf: 17: Syntax error: Unterminated quoted string
Enter full pathname of shell or RETURN for /bin/sh:
# fsck
# mount -u /
# mount -a -t ufs

if you got a wired keyboard layout and cant find the / (slash)

# fsck
# pwd
# /
# mount -u $(pwd)
# mount -a -t ufs

LINUX: Clonen des systems im live Betrieb über rsync

Folgender Fall, ein system soll im Live-Betrieb geclont werden.
Dazu ist das gleiche system in der grundinstallation schon auf dem neuen system vorhanden, also alle partitionen sind vorhanden und GRUB ist schon installiert, etc.

Kopieren des laufenden systems indem man auf dem Zielsystem eine live-cd startet

zuerst die ziel root Partition mounten:

mkdir /mnt/root
mount /dev/mapper/vg-ASDF---root /mnt/root

dann dort die Dateien rüber holen

rsync -ahPHAXx --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found} root@192.168.178.12:/ /mnt/root

mounten der temporären System Partitionen

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt/root$i; done

falls LVM oder LUKS im Einsatz ist, vorher noch die /boot partition mit ins Verzeichnis mounten.

mount /dev/sda1 /mnt/root/boot

aktualisieren bzw. anpassen der fstab:

blkid #für die UUIDs
vim /mnt/root/etc/fstab

dann mit einem chroot in die neue Umgebung und GRUB aktualisieren

sudo chroot /mnt/root
sudo grub-install --recheck /dev/sdX
sudo update-grub