Hetzner Storage Box
For all example we use HETZNER_STORAGE_USERNAME
and HETZNER_STORAGE_PASSWORD
environment variables.
| export HETZNER_STORAGE_USERNAME=..
export HETZNER_STORAGE_PASSWORD=..
|
via WebDav
Action |
Command |
List |
curl -u ${HETZNER_STORAGE_USERNAME}:${HETZNER_STORAGE_PASSWORD} https://${HETZNER_STORAGE_USERNAME}.your-storagebox.de/ |
Upload |
curl -u ${HETZNER_STORAGE_USERNAME}:${HETZNER_STORAGE_PASSWORD} -T '/path/to/local/file.txt' https://${HETZNER_STORAGE_USERNAME}.your-storagebox.de/ |
via SFTP
| sftp -P 23 ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de
|
via rsync
| rsync --progress -e 'ssh -p23' --recursive ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:homer/root/hetzner-ocp4 /root/
rsync --progress -e 'ssh -p23' --recursive ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:homer/root/hetzner-ocp4 /root/
rsync --progress -e 'ssh -p23' --recursive ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:homer/images /var/lib/libvirt/images
rsync --progress -e 'ssh -p23' --recursive ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:homer/root/cka /var/lib/libvirt/images
|
Backup example
Setup SSH key-auth: https://docs.hetzner.com/de/robot/storage-box/backup-space-ssh-keys/
| echo -e "mkdir /.ssh \n chmod 700 .ssh \n put /root/.ssh/id_rsa.pub .ssh/authorized_keys \n chmod 600 .ssh/authorized_keys" | sftp -P 23 ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de
|
Prep for backup
| echo -e "mkdir $(hostname)" | sftp -P 23 ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de
|
Run backup
| rsync --progress -e 'ssh -p23' --recursive \
--exclude '.vscode-server' \
--exclude '.cache' \
--exclude '.kube/cache' \
/root \
${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:$(hostname)-$(date +%F)
|
Restore
| # Select backup
$ echo -e "ls" | sftp -P 23 ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de
sftp> ls
homer host01 host01-2020-12-18
$ export RESTORE_FROM=host01-2020-12-18
$ rsync --progress -e 'ssh -p23' --recursive \
--exclude '.vscode-server' \
--exclude '.cache' \
--exclude '.ssh/authorized_keys' \
${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:${RESTORE_FROM}/root/ \
/root/
|
Partial restore:
Rsync filter example:
| "*" means everything
"dir1" transfers empty directory [dir1]
"dir*" transfers empty directories like: "dir1", "dir2", "dir3", etc...
"file*" transfers files whose names start with [file]
"dir**" transfers every path that starts with [dir] like "dir1/file.txt", "dir2/bar/ffaa.html", etc...
"dir***" same as above
"dir1/*" does nothing
"dir1/**" does nothing
"dir1/***" transfers [dir1] directory and all its contents like "dir1/file.txt", "dir1/fooo.sh", "dir1/fold/baar.py", etc...
|
The exclude and include order is very important!
SSH Keys only
| export RESTORE_FROM=host01-2020-12-18
rsync --progress -avz -e 'ssh -p23' --recursive \
--exclude='known_hosts' \
--exclude='authorized_keys' \
--include='.ssh**' \
--exclude='*' \
${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:${RESTORE_FROM}/root/ \
/root/
chown -R root:root ~
chmod -R 600 ~/.ssh/
|
Cluster-configs
| export RESTORE_FROM=host01-2020-12-18
rsync --progress -avz -e 'ssh -p23' --recursive \
--include='hetzner-ocp4/cluster.yml' \
--include='hetzner-ocp4/cluster-*.yaml' \
--include='hetzner-ocp4/' \
--exclude='*' \
${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de:${RESTORE_FROM}/root/ \
/root/
|
Create mirror of mirror.openshift.pub
| export
OCP Mirrror:
export HETZNER_STORAGE_USERNAME=u221214-sub5
export HETZNER_STORAGE_PASSWORD=2a51mq474OG2Lo6b
sftp -P 23 ${HETZNER_STORAGE_USERNAME}@${HETZNER_STORAGE_USERNAME}.your-storagebox.de
mkdir -p https://mirror.openshift.com/pub/openshift-v4/clients/ocp
mkdir -p openshift-v4/dependencies/rhcos
mkdir -p openshift-v4/clients/helm
your-storagebox.de
curl -T '/path/to/local/file.txt' 'https://example.com/test/'
curl -XGET -u $HUSER:$HPASS https://${HUSER}.your-storagebox.de/
curl -XGET -u $HUSER:$HPASS https://${HUSER}.your-storagebox.de/
|
export CLIENT=4.6.1
export RHCOS=4.6.1
wget --mirror
https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${CLIENT}/openshift-install-linux-${CLIENT}.tar.gz
https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${CLIENT}/openshift-install-linux-${CLIENT}.tar.gz
openshift-client-linux-4.6.1.tar.gz)
Last update:
December 29, 2020