2018-05-11 18:54:39 +02:00
|
|
|
# scripts
|
|
|
|
|
2020-10-21 23:05:08 +02:00
|
|
|
My personal collection of handy scripts. mostly bash.
|
2018-05-11 18:54:39 +02:00
|
|
|
|
2023-10-27 11:43:36 +02:00
|
|
|
- [restic-backup.sh](#restic-backup.sh)
|
|
|
|
- [restic-repos.sh](#restic-repos.sh)
|
|
|
|
- [btrfs-snapshots.sh](#btrfs-snapshots.sh)
|
|
|
|
- [odroid-fancontrol.sh](#odroid-fancontrol.sh)
|
2020-06-22 09:19:15 +02:00
|
|
|
|
2023-10-27 11:43:36 +02:00
|
|
|
More:
|
|
|
|
- [lib.sh](#lib.sh)
|
|
|
|
- [template.sh](#template.sh)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## restic-backup.sh
|
2021-02-10 19:07:59 +01:00
|
|
|
|
|
|
|
> This script is my very simple take on how to perform restic backups.
|
2018-05-13 19:36:41 +02:00
|
|
|
|
2021-02-10 19:07:59 +01:00
|
|
|
First you need to download the script from this Git repository. I usually just put it in root's home.
|
2020-10-21 23:05:08 +02:00
|
|
|
|
|
|
|
```bash
|
2021-02-10 19:07:59 +01:00
|
|
|
# Download
|
|
|
|
sudo curl -o /root/restic_backup.sh https://git.socialnerds.org/david/scripts/raw/branch/main/restic_backup.sh
|
|
|
|
sudo chmod +x /root/restic_backup.sh
|
2018-05-13 19:36:41 +02:00
|
|
|
```
|
2020-10-21 23:05:08 +02:00
|
|
|
|
2021-02-10 19:07:59 +01:00
|
|
|
In the config section at the top of the script you can change various options to your liking.
|
2018-05-13 19:36:41 +02:00
|
|
|
|
2021-02-10 19:07:59 +01:00
|
|
|
```bash
|
|
|
|
# **** CONFIG ****
|
|
|
|
PASSWORD="/root/.restic-password"
|
|
|
|
REPO="sftp:<remote-server>:/path/to/repository"
|
|
|
|
KEEP=30
|
2023-10-27 11:43:36 +02:00
|
|
|
BIN="/usr/bin/restic"
|
2021-02-10 19:07:59 +01:00
|
|
|
OPTIONS="-p $PASSWORD -r $REPO -q"
|
|
|
|
```
|
|
|
|
|
|
|
|
You can run `restic_backup.sh` directly from the command line
|
2020-10-21 23:05:08 +02:00
|
|
|
|
2021-02-10 19:07:59 +01:00
|
|
|
```bash
|
|
|
|
# Usage
|
|
|
|
/root/restic_backup.sh /local/path <additional flags for the backup subcommand>
|
2020-10-21 23:05:08 +02:00
|
|
|
|
2021-02-10 19:07:59 +01:00
|
|
|
# Example
|
|
|
|
/root/restic_backup.sh /home -x -e ./.snapshots
|
|
|
|
```
|
2020-10-21 23:05:08 +02:00
|
|
|
|
2021-02-10 19:07:59 +01:00
|
|
|
or using cron.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Cronjob
|
|
|
|
47 0 * * * /root/restic_backup.sh /home
|
|
|
|
|
|
|
|
# Cronjob (with healthchecks notification)
|
|
|
|
47 0 * * * /root/restic_backup.sh /home && curl -fsS -m 10 --retry 5 -o /dev/null https://checks.socialnerds.org/ping/fb721aec-5179-42c3-3455-4fd2ff39ii55
|
|
|
|
```
|
|
|
|
|
|
|
|
Happy backuping! :-)
|
2023-10-27 11:43:36 +02:00
|
|
|
|
|
|
|
## restic-repos.sh
|
|
|
|
|
|
|
|
## btrfs-snapshots.sh
|
|
|
|
|
|
|
|
## odroid-fancontrol.sh
|
|
|
|
|
|
|
|
## lib.sh
|
|
|
|
|
|
|
|
## template.sh
|
|
|
|
|
|
|
|
Use this as a base for new scripts, it already has the essentials.
|
|
|
|
```sh
|
|
|
|
# Load lib.sh
|
|
|
|
SCRIPT_LIB="lib.sh"
|
|
|
|
SCRIPT_PATH=$(readlink -f "$0")
|
|
|
|
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
|
|
|
|
if [[ -r "$SCRIPT_DIR/$SCRIPT_LIB" ]]; then
|
|
|
|
source "$SCRIPT_DIR/$SCRIPT_LIB"
|
|
|
|
lib_print "Loading version $LIB_GREEN_BOLD$LIB_VERSION$LIB_CLEAR of $LIB_GREEN_BOLD$LIB_NAME$LIB_CLEAR"
|
|
|
|
else
|
|
|
|
echo "Error: Cannot load library file [$SCRIPT_DIR/$SCRIPT_LIB]"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
```
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
## watch-containers.sh
|
|
|
|
|
|
|
|
Simple healthchecks script to monitor running containers.
|
|
|
|
|
|
|
|
## switch-desktop.sh
|
|
|
|
|
|
|
|
I think this is only useful with ElementaryOS. I use(d) this with a hot corner to control desktops with the mouse.
|