Switch to pandoc for man creation; add manuals for configuration-based helper scripts; add support for gotify in systemd_failure_notify
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
ad137e68b3
commit
dde06a6da3
34 changed files with 1091 additions and 308 deletions
2
_man/.gitignore
vendored
2
_man/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
||||||
vendor/
|
|
||||||
.bundle/
|
|
|
@ -1,4 +0,0 @@
|
||||||
source "https://rubygems.org"
|
|
||||||
|
|
||||||
|
|
||||||
gem "ronn", "~> 0.7.3"
|
|
|
@ -1,19 +0,0 @@
|
||||||
GEM
|
|
||||||
remote: https://rubygems.org/
|
|
||||||
specs:
|
|
||||||
hpricot (0.8.6)
|
|
||||||
mustache (1.1.1)
|
|
||||||
rdiscount (2.2.0.2)
|
|
||||||
ronn (0.7.3)
|
|
||||||
hpricot (>= 0.8.2)
|
|
||||||
mustache (>= 0.7.0)
|
|
||||||
rdiscount (>= 1.5.8)
|
|
||||||
|
|
||||||
PLATFORMS
|
|
||||||
x86_64-linux
|
|
||||||
|
|
||||||
DEPENDENCIES
|
|
||||||
ronn (~> 0.7.3)
|
|
||||||
|
|
||||||
BUNDLED WITH
|
|
||||||
2.3.15
|
|
|
@ -1,14 +1,12 @@
|
||||||
# README
|
# README
|
||||||
|
|
||||||
Build man pages with `ronn`.
|
Build man pages.
|
||||||
|
|
||||||
- Install Ruby and `gem`
|
- Install `pandoc`
|
||||||
- Install `gem install bundler` or via system package `bundler`
|
- Execute the following to build
|
||||||
- Execute the following to build and serve via _Jekyll_
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
bundle config set --local path 'vendor/bundle'
|
cd _man
|
||||||
bundle install
|
|
||||||
# generate man pages in /usr/share/man/man1
|
# generate man pages in /usr/share/man/man1
|
||||||
for file in src/*.ronn; do bn=$(basename $file .ronn); bundle exec ronn --pipe < $file > ../usr/share/man/man1/$bn; done
|
for file in src/*.md; do bn=$(basename $file .md); pandoc $file -s -t man -o ../usr/share/man/man1/$bn; done
|
||||||
```
|
```
|
32
_man/src/check_updates.1.md
Normal file
32
_man/src/check_updates.1.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
% check_updates(1) check_updates
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
check_updates - Notifies about available updates. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**check_updates** [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**check_updates** checks for available updates using *checkupdates* and sends out a mail. It comes with systemd services.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **check_updates** tries to read from *$HOME/.check_updates.conf* and */etc/check_updates.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **CHECK_UPDATES_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.check_updates.conf* and add *CHECK_UPDATES_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/check_updates*.
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
36
_man/src/disk_space_alert.1.md
Normal file
36
_man/src/disk_space_alert.1.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
% disk_space_alert(1) disk_space_alert
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
disk_space_alert - Checks available disk space and sends out notification via mail. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**disk_space_alert** [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**disk_space_alert** checks available diskspace for configured **mounts** and sends out a mail if certain limits are reached. It comes with systemd services.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **disk_space_alert** tries to read from *$HOME/.disk_space_alert.conf* and */etc/disk_space_alert.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **DISK_SPACE_ALERT_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.\
|
||||||
|
|
||||||
|
The following are optional or have reasonable defaults:
|
||||||
|
- **DISK_SPACE_ALERT_THRESHOLD=93** in percentage
|
||||||
|
- **DISK_SPACE_ALERT_MOUNTPOINTS=("/")** is an array of mountpoints
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.disk_space_alert.conf* and add *DISK_SPACE_ALERT_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/disk_space_alert*.
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
35
_man/src/docker_check.1.md
Normal file
35
_man/src/docker_check.1.md
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
% docker_check(1) docker_check
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
docker_check - Checks a set of docker containers and notifies if their state is not up and running. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**docker_check** [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**docker_check** checks a list of docker containers and notifies if their state is not up and running. It comes with systemd services.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **docker_check** tries to read from *$HOME/.docker_check.conf* and */etc/docker_check.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **DOCKER_CHECK_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.\
|
||||||
|
- **DOCKER_CHECK_LIST_FILE="$HOME/.docker_check.list"** which lists to be checked docker containers separated by lines. Provide their container name, e.g. output of current running docker containers piped into the file: *docker ps --format '{{.Names}}' >> $HOME/.docker_check.list*).\
|
||||||
|
- **DOCKER_CHECK_NOTIFY_LEVELS=("UNKNOWN" "WARNING" "CRITICAL")** determines when to notify/output/send mail. Possible: *"UNKNOWN"* *"WARNING"* *"CRITICAL"* *"INFO"*.\
|
||||||
|
- **DOCKER_CHECK_MAIL_ENABLED=false** enables or disables sending mail notifications.
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.docker_check.conf* and add *DOCKER_CHECK_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/docker_check*.
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
36
_man/src/docker_compose_update.1.md
Normal file
36
_man/src/docker_compose_update.1.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
% docker_compose_update(1) docker_compose_update
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
docker_compose_update - An utility to batch update *docker-compose* deployments residing in sub folders. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**docker_compose_update** [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**docker_compose_update** is an utility to batch update *docker-compose* deployments residing in sub folders of a **base directory**, e.g */root/deployments/* having different sub folders, each having a *docker-compose* deployment in it.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **docker_compose_update** tries to read from *$HOME/.docker_compose_update.conf* and */etc/docker_compose_update.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **DOCKER_COMPOSE_UPDATE_BASEDIR="/root/deployments"** determines the **base directory** where all *docker-compose* stacks are located in their own sub-folders.\
|
||||||
|
- **DOCKER_COMPOSE_UPDATE_IGNORES=("mailcow")** folder names which will be ignored and not be updated, at least () is required.\
|
||||||
|
- **DOCKER_COMPOSE_UPDATE_COMMANDS[aDirectoryName]="./callFancyScriptInDirectory"** to explicitly define update command for one sub folder *aDirectoryName*. This is a map and defining different instructions for multiple locations is possible. Example: accessor has to match the folder, e.g. *<baseDir>/aDirectoryName* will use command "*./callFancyScriptInDirectory"* when changing directory into it.\
|
||||||
|
- **DOCKER_COMPOSE_UPDATE_COMMAND="sudo docker-compose down; sudo docker-compose pull; sudo docker-compose up -d;"** determines the default update command executed for each deployment.\
|
||||||
|
- **DOCKER_COMPOSE_UPDATE_FAIL_ON_UPDATE_ERROR="false"** determines if script fails if at least one update procedure failed
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.docker_compose_update.conf* and necessary configuration. Examples can be found in */usr/share/doc/docker_compose_update*.
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
38
_man/src/dynv6.1.md
Normal file
38
_man/src/dynv6.1.md
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
% dynv6(1) dynv6
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
dynv6 - Updates dynv6 (an external service) and notifies about changes of IP addresses. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**dynv6** [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**dynv6** updates dynv6 (an external service) and notifies about changes of IP addresses. It comes with systemd services.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **dynv6** tries to read from *$HOME/.dynv6.conf* and */etc/dynv6.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **DYNV6_MAIL_ENABLED** to enable or disable mail notification.
|
||||||
|
- **DYNV6_MAIL_ADDRESS** which requires *mail.rc* to be configured and '*mailx*' command has be available.\
|
||||||
|
- **DYNV6_TOKEN** the dynv6 token.\
|
||||||
|
- **DYNV6_HOSTNAME** the dynv6 hostname.\
|
||||||
|
- **DYNV6_IPV4_ENABLED** enable or disable updating IPv4.\
|
||||||
|
- **DYNV6_IPV6_ENABLED** enable or disable updating IPv6.\
|
||||||
|
- **DYNV6_IPV6_INTERFACE** which interface to track, be sure that Privacy Extensions are disabled.\
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.dynv6.conf* and add *DYNV6_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/dynv6*.
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
35
_man/src/memory_usage_alert.1.md
Normal file
35
_man/src/memory_usage_alert.1.md
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
% memory_usage_alert(1) memory_usage_alert
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
memory_usage_alert - Checks available memory and sends out notification via mail. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**memory_usage_alert** [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**memory_usage_alert** checks available memory and sends out a mail if certain limits are reached. It comes with systemd services.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **memory_usage_alert** tries to read from *$HOME/.memory_usage_alert.conf* and */etc/memory_usage_alert.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **MEMORY_USAGE_ALERT_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.\
|
||||||
|
|
||||||
|
The following are optional or have reasonable defaults:
|
||||||
|
- **MEMORY_USAGE_ALERT_THRESHOLD=512** threshold to warn about (in *megabytes*)
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.memory_usage_alert.conf* and add *MEMORY_USAGE_ALERT_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/memory_usage_alert*.
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
26
_man/src/system-helpers.1.md
Normal file
26
_man/src/system-helpers.1.md
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
% system-helpers(1) system-helpers
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
system-helpers - Collection of helper systemd services, systemd timers and
|
||||||
|
shell scripts for common configuration. Designed for use with ArchLinux, although most scripts should work on any distribution.
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
**system-helpers** collection provides the following helpers
|
||||||
|
|
||||||
|
- checking if systemd services and timers are running (see **man systemd_check**)
|
||||||
|
- borgmatic backup (see exposed systemd services *borgmatic@* which require a valid *borgmatic.yml* file in */etc/borgmatic* or your **$HOME/.config/borgmatic**)
|
||||||
|
- restic backup (see */usr/share/doc/system-helpers/restic* for an example *mybackup*)
|
||||||
|
- checking if docker containers are running (see **man docker_check**)
|
||||||
|
- batch docker-compose upgrades (see **man docker_compose_update**)
|
||||||
|
- dynamic dns update (see **man docker_compose_update**)
|
||||||
|
- memory and disk checks (see **man disk_space_alert** and **man memory_usage_alert**)
|
||||||
|
- docker housekeeping for removing unused docker containers, volumes and images
|
||||||
|
- update check for pacman (ArchLinux specific, see **man check_updates**)
|
||||||
|
|
||||||
|
Provided systemd services mostly support mail notifications if they have failed
|
||||||
|
via **systemd_failure_notify**.
|
||||||
|
|
||||||
|
See */usr/share/doc/system-helpers* for example configurations which should
|
||||||
|
be copied inside **$HOME** or **/etc** depending on the helper script.
|
|
@ -1,20 +0,0 @@
|
||||||
# system-helpers
|
|
||||||
|
|
||||||
system-helpers is a collection of helper systemd services, systemd timers and
|
|
||||||
shell scripts for common configuration and tasks like
|
|
||||||
|
|
||||||
* checking if systemd services and timers are running
|
|
||||||
* borgmatic backup
|
|
||||||
* restic backup
|
|
||||||
* checking if docker containers are running
|
|
||||||
* batch docker-compose upgrades
|
|
||||||
* docker housekeeping for removing unused docker containers, volumes and images
|
|
||||||
* dynamic dns update
|
|
||||||
* update check for pacman
|
|
||||||
* memory and disk checks
|
|
||||||
|
|
||||||
Provided systemd services mostly support mail notifications if they have failed
|
|
||||||
via systemd_failure_notify.
|
|
||||||
|
|
||||||
See `/usr/share/doc/system-helpers` for example configurations which should
|
|
||||||
be copied inside $HOME or /etc depending on the helper script.
|
|
34
_man/src/systemd_check.1.md
Normal file
34
_man/src/systemd_check.1.md
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
% systemd_check(1) systemd_check
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
systemd_check - Checks a set of systemd services, targets, mounts of timers, and notifies if their state is not up and running. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**systemd_check** [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**systemd_check** checks a set of systemd services, targets, mounts of timers, and notifies if their state is not up and running. It comes with systemd services.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **systemd_check** tries to read from *$HOME/.systemd_check.conf* and */etc/systemd_check.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **SYSTEMD_CHECK_LIST_FILE="$HOME/.systemd_check.list"** which lists to be checked systemd services, timers or targets separated by lines.\
|
||||||
|
- **SYSTEMD_CHECK_MAIL_ENABLED=false** enables or disables sending mail notifications.
|
||||||
|
- **SYSTEMD_CHECK_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.\
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.systemd_check.conf* and add *SYSTEMD_CHECK_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/systemd_check*.
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
42
_man/src/systemd_failure_notify.1.md
Normal file
42
_man/src/systemd_failure_notify.1.md
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
% systemd_failure_notify(1) systemd_failure_notify
|
||||||
|
% Alexander Schäferdiek
|
||||||
|
% January 2023
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
systemd_failure_notify - Notifies via mail or gotify when a service has failed. Configuration is done in environment files.\
|
||||||
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**systemd_failure_notify** [CONFIG_FILE (absolute path)] [service name]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
|
||||||
|
**systemd_failure_notify** executes *mailx* or *gotify* to send out notifications. It comes with systemd services. Use the provided systemd service in the **OnFailure** directive with *OnFailure=systemd_failure_notify@%n.service*.
|
||||||
|
|
||||||
|
If no *CONFIG_FILE* is provided, **systemd_failure_notify** tries to read from *$HOME/.systemd_failure_notify.conf* and */etc/systemd_failure_notify.conf* for configuration. It will exit with a non-zero exit code if it cannot find an proper configuration file.
|
||||||
|
|
||||||
|
The following are at least required for the script to work:\
|
||||||
|
- **SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available¸
|
||||||
|
|
||||||
|
By default, **SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED** is set to **true**. Set it to **false** to use *gotify* only.¸
|
||||||
|
|
||||||
|
The following are optional and integrate gotify-cli to send notifications, it defaults to false:
|
||||||
|
- SYSTEMD_FAILURE_NOTIFY_GOTIFY_ENABLED="true" // 'gotify' command has be available and needs to be properly configured by having a cli.json file
|
||||||
|
|
||||||
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Create a *$HOME/.systemd_failure_notify.conf* and add *SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/systemd_failure_notify*.
|
||||||
|
|
||||||
|
Then, add **systemd_failure_notify@serviceName** in a systemd unit file in the **OnFailure** directive:
|
||||||
|
|
||||||
|
[Unit]\
|
||||||
|
OnFailure=systemd_failure_notify@%n.service\
|
||||||
|
|
||||||
|
# EXIT VALUES
|
||||||
|
**0**
|
||||||
|
: Success
|
||||||
|
|
||||||
|
**1**
|
||||||
|
: Error
|
|
@ -5,15 +5,7 @@ usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: check_updates [CONFIG_FILE (absolute path)]
|
Usage: check_updates [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
If no CONFIG_FILE is given, HOME/.check_updates.conf or /etc/check_updates.conf is used. This fallback option
|
Sends out update notifications. Please see man check_updates.
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are at least required for the script to work:
|
|
||||||
- CHECK_UPDATES_MAIL_ADDRESS="" // mail.rc has to be configured
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
|
|
@ -5,19 +5,7 @@ usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: disk_space_alert [CONFIG_FILE (absolute path)]
|
Usage: disk_space_alert [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
If no CONFIG_FILE is given, HOME/.disk_space_alert.conf or /etc/disk_space_alert.conf is used. This fallback option
|
Checks available diskspace for configured **mounts** and sends out a mail if certain limits are reached. Please see man disk_space_alert.
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are at least required for the script to work:
|
|
||||||
- DISK_SPACE_ALERT_MAIL_ADDRESS="" // mail.rc has to be configured
|
|
||||||
|
|
||||||
The following are optional or have reasonable defaults:
|
|
||||||
- DISK_SPACE_ALERT_THRESHOLD=93 // in percent
|
|
||||||
- DISK_SPACE_ALERT_MOUNTPOINTS=("/") // array of mountpoints
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# https://github.com/spherex-dev/docker-backup-volume
|
|
||||||
# creates a backup of the docker volume
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case "$1" in
|
|
||||||
-v|-volume|--volume)
|
|
||||||
volume="$2"
|
|
||||||
;;
|
|
||||||
-p|-prefix|--prefix)
|
|
||||||
prefix="$2"
|
|
||||||
;;
|
|
||||||
-h|-help|--help)
|
|
||||||
printf "--volume the name of the volume\n"
|
|
||||||
printf "--mount the mount point of the volume\n"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
printf "***************************\n"
|
|
||||||
printf "* Error: Invalid argument.*\n"
|
|
||||||
printf "***************************\n"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
uuid=$(cat /proc/sys/kernel/random/uuid)
|
|
||||||
if [ ! -d $prefix/$volume ]; then
|
|
||||||
mkdir -p $prefix/$volume
|
|
||||||
fi
|
|
||||||
|
|
||||||
IMAGE=alpine:latest
|
|
||||||
docker run \
|
|
||||||
--mount "type=volume,src=${volume},dst=/data" \
|
|
||||||
--name $uuid \
|
|
||||||
$IMAGE
|
|
||||||
|
|
||||||
timestamp=$(date +%Y-%m-%d_%H%M%S)
|
|
||||||
docker cp -a $uuid:/data /tmp/$uuid
|
|
||||||
tar -C /tmp/$uuid -czf $prefix/$volume/${timestamp}_${volume}.tar.gz .
|
|
||||||
rm -rf /tmp/$uuid
|
|
||||||
docker rm $uuid
|
|
|
@ -1,76 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# https://github.com/spherex-dev/docker-backup-volume
|
|
||||||
# creates a docker volume from a backup
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case "$1" in
|
|
||||||
-v|-volume|--volume)
|
|
||||||
volume="$2"
|
|
||||||
;;
|
|
||||||
-p|-prefix|--prefix)
|
|
||||||
prefix="$2"
|
|
||||||
;;
|
|
||||||
-n|-volume-name|--volume-name)
|
|
||||||
volume_name="$2"
|
|
||||||
;;
|
|
||||||
-s|-snapshot|--snapshot)
|
|
||||||
snapshot="$2"
|
|
||||||
;;
|
|
||||||
-h|-help|--help)
|
|
||||||
printf "--volume the backup name of the volume\n"
|
|
||||||
printf "--volume-name (optional) create the backup as this volume name\n"
|
|
||||||
printf "--prefix the storage prefix of the backup location"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
printf "***************************\n"
|
|
||||||
printf "* Error: Invalid argument.*\n"
|
|
||||||
printf "***************************\n"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "$volume_name" ]; then
|
|
||||||
volume_name=$volume
|
|
||||||
fi
|
|
||||||
|
|
||||||
volume_exists=$(docker volume ls | grep -q $volume_name)
|
|
||||||
if [ $volume_exists ]; then
|
|
||||||
printf "***********************************\n"
|
|
||||||
printf "Error: volume $volume_name exists. \n"
|
|
||||||
printf "Please delete before proceeding \n"
|
|
||||||
printf "***********************************\n"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$snapshot" ]; then
|
|
||||||
snapshot=$(ls -At ${prefix}/${volume}/ | tail -n 1)
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$snapshot" ]; then
|
|
||||||
printf "**********************************\n"
|
|
||||||
printf "* Error: Unable to find snapshot.*\n"
|
|
||||||
printf "**********************************\n"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "creating from snapshot: ${snapshot}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
uuid=$(cat /proc/sys/kernel/random/uuid)
|
|
||||||
cwd=$(pwd)
|
|
||||||
|
|
||||||
IMAGE=alpine:latest
|
|
||||||
docker run \
|
|
||||||
--mount "type=volume,src=${volume_name},dst=/data" \
|
|
||||||
--name $uuid \
|
|
||||||
$IMAGE
|
|
||||||
|
|
||||||
mkdir /tmp/$uuid
|
|
||||||
tar -xf $prefix/$volume/$snapshot -C /tmp/$uuid
|
|
||||||
cd /tmp/$uuid
|
|
||||||
|
|
||||||
docker cp -a . $uuid:/data
|
|
||||||
docker rm $uuid
|
|
||||||
cd $cwd
|
|
|
@ -5,18 +5,7 @@ usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: docker_check [CONFIG_FILE (absolute path)]
|
Usage: docker_check [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
If no CONFIG_FILE is given, HOME/.docker_check.conf or /etc/docker_check.conf is used. This fallback option
|
Checks a list of docker containers and notifies if their state is not up and running. Please see man docker_check.
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are optional or have reasonable defaults:
|
|
||||||
DOCKER_CHECK_LIST_FILE="HOME/.docker_check.list" // the list file (output current running to file: docker ps --format '{{.Names}}' >> $HOME/.docker_check.list)
|
|
||||||
DOCKER_CHECK_NOTIFY_LEVELS=("UNKNOWN" "WARNING" "CRITICAL") // when to notify/output/send mail. possible: "UNKNOWN" "WARNING" "CRITICAL" "INFO", should at least be ()
|
|
||||||
DOCKER_CHECK_MAIL_ENABLED=false // send email (address has to be set), values: false|true
|
|
||||||
DOCKER_CHECK_MAIL_ADDRESS="" // mail.rc has to be configured
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
|
|
@ -5,20 +5,7 @@ usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: docker_compose_update [CONFIG_FILE (absolute path)]
|
Usage: docker_compose_update [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
If no CONFIG_FILE is given, HOME/.docker_compose_update.conf or /etc/docker_compose_update.conf is used. This fallback option
|
An utility to batch update *docker-compose* deployments residing in sub folders. Please see man docker_compose_update.
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are at least required for the script to work:
|
|
||||||
- DOCKER_COMPOSE_UPDATE_BASEDIR="/root/deployments" // where all docker stacks are located in their own sub-folders
|
|
||||||
- DOCKER_COMPOSE_UPDATE_IGNORES=("mailcow") // folder names which will be ignored and not be updated, at least () is required
|
|
||||||
- DOCKER_COMPOSE_UPDATE_COMMANDS[aDirectoryName]="./callFancyScriptInDirectory" // use another command to update, multiple possible.
|
|
||||||
Example: accessor has to match the folder, e.g. <baseDir>/aDirectoryName will use command "./callFancyScriptInDirectory" when changing directory into it.
|
|
||||||
- DOCKER_COMPOSE_UPDATE_COMMAND="sudo docker-compose down; sudo docker-compose pull; sudo docker-compose up -d;" // the default update command for deployments
|
|
||||||
- DOCKER_COMPOSE_UPDATE_FAIL_ON_UPDATE_ERROR="false" // if set to true, script fails if at least one update procedure failed
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
|
|
@ -5,22 +5,7 @@ set -e;
|
||||||
usage() {
|
usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: dynv6 [CONFIG_FILE (absolute path)]
|
Usage: dynv6 [CONFIG_FILE (absolute path)]
|
||||||
|
updates dynv6 (an external service) and notifies about changes of IP addresses. Please see man dynv6.
|
||||||
If no CONFIG_FILE is given, HOME/.dynv6.conf or /etc/dynv6.conf is used. This fallback option
|
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are at least required for the script to work:
|
|
||||||
- DYNV6_MAIL_ENABLED= // if notify via mail
|
|
||||||
- DYNV6_MAIL_ADDRESS="" // (optional) mail.rc has to be configured
|
|
||||||
- DYNV6_TOKEN="" // the dynv6 token
|
|
||||||
- DYNV6_HOSTNAME="" // the dynv6 hostname
|
|
||||||
- DYNV6_IPV4_ENABLED=true // if should update ipv4
|
|
||||||
- DYNV6_IPV6_ENABLED=true // if should update ipv6
|
|
||||||
- DYNV6_IPV6_INTERFACE=eth0 // which interface to track, be sure that Privacy Extensions are disabled
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
|
|
@ -5,18 +5,7 @@ usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: memory_usage_alert [CONFIG_FILE (absolute path)]
|
Usage: memory_usage_alert [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
If no CONFIG_FILE is given, HOME/.memory_usage_alert.conf or /etc/memory_usage_alert.conf is used. This fallback option
|
Checks available memory and sends out notification via mail. Please see man memory_usage_alert.
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are at least required for the script to work:
|
|
||||||
- MEMORY_USAGE_ALERT_MAIL_ADDRESS="" // mail.rc has to be configured
|
|
||||||
|
|
||||||
The following are optional or have reasonable defaults:
|
|
||||||
- MEMORY_USAGE_ALERT_THRESHOLD=128 // threshold to warn about (in megabytes)
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
HOSTNAME=$(hostname)
|
HOSTNAME=$(hostname)
|
||||||
echo "$SMARTD_MESSAGE" | mail -s "[smartd $HOSTNAME] $SMARTD_FAILTYPE" "$SMARTD_ADDRESS"
|
echo "$SMARTD_MESSAGE" | mail -s "[smartd $HOSTNAME] $SMARTD_FAILTYPE" "$SMARTD_ADDRESS"
|
||||||
wall "$SMARTD_MESSAGE"
|
wall "$SMARTD_MESSAGE"
|
|
@ -5,21 +5,8 @@ usage() {
|
||||||
SYSTEMD_CHECK_USAGE=$(cat <<EOF
|
SYSTEMD_CHECK_USAGE=$(cat <<EOF
|
||||||
Usage: systemd_check.sh [CONFIG_FILE (absolute path)]
|
Usage: systemd_check.sh [CONFIG_FILE (absolute path)]
|
||||||
|
|
||||||
Checks if specific systemd SYSTEMD_CHECK_SERVICES are running and optionally sends a mail.
|
Checks a set of systemd services, targets, mounts of timers, and notifies if their state is not up and running. Please see man systemd_check.
|
||||||
|
|
||||||
If no CONFIG_FILE is given, HOME/.systemd_check.conf or /etc/systemd_check.conf is used. This fallback option
|
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are at least required for the script to work:
|
|
||||||
- SYSTEMD_CHECK_LIST_FILE="HOME/.systemd_check.list" // path to file to list services to check, one per line
|
|
||||||
|
|
||||||
The following are optional or have reasonable defaults:
|
|
||||||
- SYSTEMD_CHECK_MAIL_ENABLED=false // send email (SYSTEMD_CHECK_MAIL_ADDRESS has to be set to true)? false|true
|
|
||||||
- SYSTEMD_CHECK_MAIL_ADDRESS="" // mail.rc has to be configured
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$SYSTEMD_CHECK_USAGE";
|
echo "$SYSTEMD_CHECK_USAGE";
|
||||||
|
|
|
@ -3,26 +3,9 @@
|
||||||
# usage
|
# usage
|
||||||
usage() {
|
usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: systemd_failure_notify [CONFIG_FILE (absolute path)]
|
Usage: systemd_failure_notify [CONFIG_FILE (absolute path)] <service>
|
||||||
|
|
||||||
Notifies via mail when a service has failed. You need to place the following in the service which should be checked:
|
Sends out notifications for failed services. Please see man systemd_failure_notify.
|
||||||
|
|
||||||
[Unit]
|
|
||||||
Description=...
|
|
||||||
OnFailure=systemd_failure_notify@%n.service
|
|
||||||
...
|
|
||||||
|
|
||||||
You should place the <scriptname>'s service into systemd's user and systemd's system folder so it can be used by global and user services.
|
|
||||||
|
|
||||||
If no CONFIG_FILE is given, HOME/.systemd_failure_notify.conf or /etc/systemd_failure_notify.conf is used. This fallback option
|
|
||||||
has to exist or the script will exit.
|
|
||||||
|
|
||||||
Configuration can be done in any file and any pre-defined variable can be overwritten.
|
|
||||||
|
|
||||||
The following are at least required for the script to work:
|
|
||||||
- SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS="" // mail.rc has to be configured
|
|
||||||
|
|
||||||
You can copy this script to '/usr/local/bin' and use create a custom CONFIG_FILE as user. Examples can be found in '/usr/share/doc/<scriptname>'.
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
@ -40,8 +23,12 @@ fi
|
||||||
|
|
||||||
SYSTEMD_FAILURE_NOTFY_HOSTNAME=$(hostname)
|
SYSTEMD_FAILURE_NOTFY_HOSTNAME=$(hostname)
|
||||||
SYSTEMD_FAILURE_NOTFY_USER=$(whoami)
|
SYSTEMD_FAILURE_NOTFY_USER=$(whoami)
|
||||||
|
|
||||||
|
SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED="true";
|
||||||
SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS="";
|
SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS="";
|
||||||
|
|
||||||
|
SYSTEMD_FAILURE_NOTIFY_GOTIFY_ENABLED="false";
|
||||||
|
|
||||||
# check for config file
|
# check for config file
|
||||||
apply_config() {
|
apply_config() {
|
||||||
local config=$1;
|
local config=$1;
|
||||||
|
@ -59,6 +46,19 @@ apply_config() {
|
||||||
set +a;
|
set +a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_requirements() {
|
||||||
|
local mailEnabled=$1;
|
||||||
|
local gotifyEnabled=$2;
|
||||||
|
|
||||||
|
if [[ "${mailEnabled}" == "true" ]]; then
|
||||||
|
type mailx &> /dev/null || echo "Requiring 'mailx' but it's not installed"; exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${gotifyEnabled}" == "true" ]]; then
|
||||||
|
type gotify &> /dev/null || echo "Requiring 'gotify' but it's not installed"; exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
source_config() {
|
source_config() {
|
||||||
local config=$1;
|
local config=$1;
|
||||||
local configFallback=$2;
|
local configFallback=$2;
|
||||||
|
@ -80,7 +80,27 @@ source_config() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
source_config "$2" "$HOME/.systemd_failure_notify.conf" "/etc/systemd_failure_notify.conf"
|
source_config "$2" "$HOME/.systemd_failure_notify.conf" "/etc/systemd_failure_notify.conf"
|
||||||
|
check_requirements "$SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED" "$SYSTEMD_FAILURE_NOTIFY_GOTIFY_ENABLED"
|
||||||
|
|
||||||
SUBJECT="[systemd $SYSTEMD_FAILURE_NOTFY_HOSTNAME for $SYSTEMD_FAILURE_NOTFY_USER] $SYSTEMD_FAILURE_NOTFY_SERVICE RUN FAILED"
|
SUBJECT="[systemd $SYSTEMD_FAILURE_NOTFY_HOSTNAME for $SYSTEMD_FAILURE_NOTFY_USER] $SYSTEMD_FAILURE_NOTFY_SERVICE RUN FAILED"
|
||||||
MESSAGE="$SYSTEMD_FAILURE_NOTFY_SERVICE run failed"
|
MESSAGE="$SYSTEMD_FAILURE_NOTFY_SERVICE run failed"
|
||||||
echo "$MESSAGE"|mailx -Ssendwait -s "$SUBJECT" "$SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS";
|
|
||||||
|
if [[ "${SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED}" == "true" ]]; then
|
||||||
|
echo "$MESSAGE"|mailx -Ssendwait -s "$SUBJECT" "$SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS";
|
||||||
|
echo "Sent notifiction via mail"
|
||||||
|
else
|
||||||
|
echo "Sending notifictions via mail is disabled"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${SYSTEMD_FAILURE_NOTIFY_GOTIFY_ENABLED}" == "true" ]]; then
|
||||||
|
|
||||||
|
if [[ ! -f "${HOME}/.config/gotify/cli.json" && ! -f "${HOME}/gotify/cli.json" && ! -f "./cli.json" && ! -f "/etc/gotify/cli.json" ]]; then
|
||||||
|
echo "Cannot find a valid cli.json, please run 'gotify init' before using this"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$MESSAGE"|gotify push --quiet --title "${SUBJECT}";
|
||||||
|
echo "Sent message via gotify"
|
||||||
|
else
|
||||||
|
echo "Sending notifictions via gotify is disabled"
|
||||||
|
fi
|
66
usr/share/man/man1/check_updates.1
Normal file
66
usr/share/man/man1/check_updates.1
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "check_updates" "1" "January 2023" "check_updates" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
check_updates - Notifies about available updates.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]check_updates\f[R] [CONFIG_FILE (absolute path)]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]check_updates\f[R] checks for available updates using
|
||||||
|
\f[I]checkupdates\f[R] and sends out a mail.
|
||||||
|
It comes with systemd services.
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided, \f[B]check_updates\f[R] tries
|
||||||
|
to read from \f[I]$HOME/.check_updates.conf\f[R] and
|
||||||
|
\f[I]/etc/check_updates.conf\f[R] for configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]CHECK_UPDATES_MAIL_ADDRESS=\[lq]\[lq]\f[R] which requires
|
||||||
|
\f[I]mail.rc\f[R] to be configured and `\f[I]mailx\f[R]' command has be
|
||||||
|
available.
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.check_updates.conf\f[R] and add
|
||||||
|
\f[I]CHECK_UPDATES_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
|
Notifications will be delivered to alias\[at]domain.tld.
|
||||||
|
Examples can be found in \f[I]/usr/share/doc/check_updates\f[R].
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
75
usr/share/man/man1/disk_space_alert.1
Normal file
75
usr/share/man/man1/disk_space_alert.1
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "disk_space_alert" "1" "January 2023" "disk_space_alert" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
disk_space_alert - Checks available disk space and sends out
|
||||||
|
notification via mail.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]disk_space_alert\f[R] [CONFIG_FILE (absolute path)]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]disk_space_alert\f[R] checks available diskspace for configured
|
||||||
|
\f[B]mounts\f[R] and sends out a mail if certain limits are reached.
|
||||||
|
It comes with systemd services.
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided, \f[B]disk_space_alert\f[R]
|
||||||
|
tries to read from \f[I]$HOME/.disk_space_alert.conf\f[R] and
|
||||||
|
\f[I]/etc/disk_space_alert.conf\f[R] for configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DISK_SPACE_ALERT_MAIL_ADDRESS=\[lq]\[lq]\f[R] which requires
|
||||||
|
\f[I]mail.rc\f[R] to be configured and `\f[I]mailx\f[R]' command has be
|
||||||
|
available.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
.PP
|
||||||
|
The following are optional or have reasonable defaults: -
|
||||||
|
\f[B]DISK_SPACE_ALERT_THRESHOLD=93\f[R] in percentage -
|
||||||
|
\f[B]DISK_SPACE_ALERT_MOUNTPOINTS=(\[lq]/\[rq])\f[R] is an array of
|
||||||
|
mountpoints
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.disk_space_alert.conf\f[R] and add
|
||||||
|
\f[I]DISK_SPACE_ALERT_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
|
Notifications will be delivered to alias\[at]domain.tld.
|
||||||
|
Examples can be found in \f[I]/usr/share/doc/disk_space_alert\f[R].
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
87
usr/share/man/man1/docker_check.1
Normal file
87
usr/share/man/man1/docker_check.1
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "docker_check" "1" "January 2023" "docker_check" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
docker_check - Checks a set of docker containers and notifies if their
|
||||||
|
state is not up and running.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]docker_check\f[R] [CONFIG_FILE (absolute path)]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]docker_check\f[R] checks a list of docker containers and notifies
|
||||||
|
if their state is not up and running.
|
||||||
|
It comes with systemd services.
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided, \f[B]docker_check\f[R] tries to
|
||||||
|
read from \f[I]$HOME/.docker_check.conf\f[R] and
|
||||||
|
\f[I]/etc/docker_check.conf\f[R] for configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_CHECK_MAIL_ADDRESS=\[lq]\[lq]\f[R] which requires
|
||||||
|
\f[I]mail.rc\f[R] to be configured and `\f[I]mailx\f[R]' command has be
|
||||||
|
available.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_CHECK_LIST_FILE=\[lq]$HOME/.docker_check.list\[rq]\f[R]
|
||||||
|
which lists to be checked docker containers separated by lines.
|
||||||
|
Provide their container name, e.g.\ output of current running docker
|
||||||
|
containers piped into the file: \f[I]docker ps \[en]format `{{.Names}}'
|
||||||
|
>> $HOME/.docker_check.list\f[R]).
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_CHECK_NOTIFY_LEVELS=(\[lq]UNKNOWN\[rq] \[lq]WARNING\[rq]
|
||||||
|
\[lq]CRITICAL\[rq])\f[R] determines when to notify/output/send mail.
|
||||||
|
Possible: \f[I]\[lq]UNKNOWN\[rq]\f[R] \f[I]\[lq]WARNING\[rq]\f[R]
|
||||||
|
\f[I]\[lq]CRITICAL\[rq]\f[R] \f[I]\[lq]INFO\[rq]\f[R].
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_CHECK_MAIL_ENABLED=false\f[R] enables or disables sending
|
||||||
|
mail notifications.
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.docker_check.conf\f[R] and add
|
||||||
|
\f[I]DOCKER_CHECK_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
|
Notifications will be delivered to alias\[at]domain.tld.
|
||||||
|
Examples can be found in \f[I]/usr/share/doc/docker_check\f[R].
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
97
usr/share/man/man1/docker_compose_update.1
Normal file
97
usr/share/man/man1/docker_compose_update.1
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "docker_compose_update" "1" "January 2023" "docker_compose_update" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
docker_compose_update - An utility to batch update
|
||||||
|
\f[I]docker-compose\f[R] deployments residing in sub folders.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]docker_compose_update\f[R] [CONFIG_FILE (absolute path)]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]docker_compose_update\f[R] is an utility to batch update
|
||||||
|
\f[I]docker-compose\f[R] deployments residing in sub folders of a
|
||||||
|
\f[B]base directory\f[R], e.g \f[I]/root/deployments/\f[R] having
|
||||||
|
different sub folders, each having a \f[I]docker-compose\f[R] deployment
|
||||||
|
in it.
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided, \f[B]docker_compose_update\f[R]
|
||||||
|
tries to read from \f[I]$HOME/.docker_compose_update.conf\f[R] and
|
||||||
|
\f[I]/etc/docker_compose_update.conf\f[R] for configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_COMPOSE_UPDATE_BASEDIR=\[lq]/root/deployments\[rq]\f[R]
|
||||||
|
determines the \f[B]base directory\f[R] where all
|
||||||
|
\f[I]docker-compose\f[R] stacks are located in their own sub-folders.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_COMPOSE_UPDATE_IGNORES=(\[lq]mailcow\[rq])\f[R] folder
|
||||||
|
names which will be ignored and not be updated, at least () is required.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
-
|
||||||
|
\f[B]DOCKER_COMPOSE_UPDATE_COMMANDS[aDirectoryName]=\[lq]./callFancyScriptInDirectory\[rq]\f[R]
|
||||||
|
to explicitly define update command for one sub folder
|
||||||
|
\f[I]aDirectoryName\f[R].
|
||||||
|
This is a map and defining different instructions for multiple locations
|
||||||
|
is possible.
|
||||||
|
Example: accessor has to match the folder,
|
||||||
|
e.g.\ \f[I]/aDirectoryName\f[R] will use command
|
||||||
|
\[lq]\f[I]./callFancyScriptInDirectory\[rq]\f[R] when changing directory
|
||||||
|
into it.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_COMPOSE_UPDATE_COMMAND=\[lq]sudo docker-compose down; sudo
|
||||||
|
docker-compose pull; sudo docker-compose up -d;\[rq]\f[R] determines the
|
||||||
|
default update command executed for each deployment.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DOCKER_COMPOSE_UPDATE_FAIL_ON_UPDATE_ERROR=\[lq]false\[rq]\f[R]
|
||||||
|
determines if script fails if at least one update procedure failed
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.docker_compose_update.conf\f[R] and necessary
|
||||||
|
configuration.
|
||||||
|
Examples can be found in \f[I]/usr/share/doc/docker_compose_update\f[R].
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
91
usr/share/man/man1/dynv6.1
Normal file
91
usr/share/man/man1/dynv6.1
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "dynv6" "1" "January 2023" "dynv6" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
dynv6 - Updates dynv6 (an external service) and notifies about changes
|
||||||
|
of IP addresses.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]dynv6\f[R] [CONFIG_FILE (absolute path)]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]dynv6\f[R] updates dynv6 (an external service) and notifies about
|
||||||
|
changes of IP addresses.
|
||||||
|
It comes with systemd services.
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided, \f[B]dynv6\f[R] tries to read
|
||||||
|
from \f[I]$HOME/.dynv6.conf\f[R] and \f[I]/etc/dynv6.conf\f[R] for
|
||||||
|
configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DYNV6_MAIL_ENABLED\f[R] to enable or disable mail notification.
|
||||||
|
- \f[B]DYNV6_MAIL_ADDRESS\f[R] which requires \f[I]mail.rc\f[R] to be
|
||||||
|
configured and `\f[I]mailx\f[R]' command has be available.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DYNV6_TOKEN\f[R] the dynv6 token.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DYNV6_HOSTNAME\f[R] the dynv6 hostname.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DYNV6_IPV4_ENABLED\f[R] enable or disable updating IPv4.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DYNV6_IPV6_ENABLED\f[R] enable or disable updating IPv6.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DYNV6_IPV6_INTERFACE\f[R] which interface to track, be sure that
|
||||||
|
Privacy Extensions are disabled.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.dynv6.conf\f[R] and add
|
||||||
|
\f[I]DYNV6_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
|
Notifications will be delivered to alias\[at]domain.tld.
|
||||||
|
Examples can be found in \f[I]/usr/share/doc/dynv6\f[R].
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
74
usr/share/man/man1/memory_usage_alert.1
Normal file
74
usr/share/man/man1/memory_usage_alert.1
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "memory_usage_alert" "1" "January 2023" "memory_usage_alert" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
memory_usage_alert - Checks available memory and sends out notification
|
||||||
|
via mail.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]memory_usage_alert\f[R] [CONFIG_FILE (absolute path)]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]memory_usage_alert\f[R] checks available memory and sends out a
|
||||||
|
mail if certain limits are reached.
|
||||||
|
It comes with systemd services.
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided, \f[B]memory_usage_alert\f[R]
|
||||||
|
tries to read from \f[I]$HOME/.memory_usage_alert.conf\f[R] and
|
||||||
|
\f[I]/etc/memory_usage_alert.conf\f[R] for configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]MEMORY_USAGE_ALERT_MAIL_ADDRESS=\[lq]\[lq]\f[R] which requires
|
||||||
|
\f[I]mail.rc\f[R] to be configured and `\f[I]mailx\f[R]' command has be
|
||||||
|
available.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
.PP
|
||||||
|
The following are optional or have reasonable defaults: -
|
||||||
|
\f[B]MEMORY_USAGE_ALERT_THRESHOLD=512\f[R] threshold to warn about (in
|
||||||
|
\f[I]megabytes\f[R])
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.memory_usage_alert.conf\f[R] and add
|
||||||
|
\f[I]MEMORY_USAGE_ALERT_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
|
Notifications will be delivered to alias\[at]domain.tld.
|
||||||
|
Examples can be found in \f[I]/usr/share/doc/memory_usage_alert\f[R].
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
|
@ -1,27 +1,62 @@
|
||||||
.\" generated with Ronn/v0.7.3
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
.\"
|
||||||
system\-helpers is a collection of helper systemd services, systemd timers and shell scripts for common configuration and tasks like
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
.
|
.\" that render this, and otherwise B font.
|
||||||
.IP "" 4
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
.
|
. ftr V B
|
||||||
.nf
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
* checking if systemd services and timers are running
|
. ftr VBI BI
|
||||||
* borgmatic backup
|
.\}
|
||||||
* restic backup
|
.el \{\
|
||||||
* checking if docker containers are running
|
. ftr V CR
|
||||||
* batch docker\-compose upgrades
|
. ftr VI CI
|
||||||
* docker housekeeping for removing unused docker containers, volumes and images
|
. ftr VB CB
|
||||||
* dynamic dns update
|
. ftr VBI CBI
|
||||||
* update check for pacman
|
.\}
|
||||||
* memory and disk checks
|
.TH "system-helpers" "1" "January 2023" "system-helpers" ""
|
||||||
.
|
.hy
|
||||||
.fi
|
.SH NAME
|
||||||
.
|
.PP
|
||||||
.IP "" 0
|
system-helpers - Collection of helper systemd services, systemd timers
|
||||||
.
|
and shell scripts for common configuration.
|
||||||
.P
|
Designed for use with ArchLinux, although most scripts should work on
|
||||||
Provided systemd services mostly support mail notifications if they have failed via systemd_failure_notify\.
|
any distribution.
|
||||||
.
|
.SH DESCRIPTION
|
||||||
.P
|
.PP
|
||||||
See \fB/usr/share/doc/system\-helpers\fR for example configurations which should be copied inside $HOME or /etc depending on the helper script\.
|
\f[B]system-helpers\f[R] collection provides the following helpers
|
||||||
|
.IP \[bu] 2
|
||||||
|
checking if systemd services and timers are running (see \f[B]man
|
||||||
|
systemd_check\f[R])
|
||||||
|
.IP \[bu] 2
|
||||||
|
borgmatic backup (see exposed systemd services \f[I]borgmatic\[at]\f[R]
|
||||||
|
which require a valid \f[I]borgmatic.yml\f[R] file in
|
||||||
|
\f[I]/etc/borgmatic\f[R] or your \f[B]$HOME/.config/borgmatic\f[R])
|
||||||
|
.IP \[bu] 2
|
||||||
|
restic backup (see \f[I]/usr/share/doc/system-helpers/restic\f[R] for an
|
||||||
|
example \f[I]mybackup\f[R])
|
||||||
|
.IP \[bu] 2
|
||||||
|
checking if docker containers are running (see \f[B]man
|
||||||
|
docker_check\f[R])
|
||||||
|
.IP \[bu] 2
|
||||||
|
batch docker-compose upgrades (see \f[B]man docker_compose_update\f[R])
|
||||||
|
.IP \[bu] 2
|
||||||
|
dynamic dns update (see \f[B]man docker_compose_update\f[R])
|
||||||
|
.IP \[bu] 2
|
||||||
|
memory and disk checks (see \f[B]man disk_space_alert\f[R] and \f[B]man
|
||||||
|
memory_usage_alert\f[R])
|
||||||
|
.IP \[bu] 2
|
||||||
|
docker housekeeping for removing unused docker containers, volumes and
|
||||||
|
images
|
||||||
|
.IP \[bu] 2
|
||||||
|
update check for pacman (ArchLinux specific, see \f[B]man
|
||||||
|
check_updates\f[R])
|
||||||
|
.PP
|
||||||
|
Provided systemd services mostly support mail notifications if they have
|
||||||
|
failed via \f[B]systemd_failure_notify\f[R].
|
||||||
|
.PP
|
||||||
|
See \f[I]/usr/share/doc/system-helpers\f[R] for example configurations
|
||||||
|
which should be copied inside \f[B]$HOME\f[R] or \f[B]/etc\f[R]
|
||||||
|
depending on the helper script.
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
78
usr/share/man/man1/systemd_check.1
Normal file
78
usr/share/man/man1/systemd_check.1
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "systemd_check" "1" "January 2023" "systemd_check" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
systemd_check - Checks a set of systemd services, targets, mounts of
|
||||||
|
timers, and notifies if their state is not up and running.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]systemd_check\f[R] [CONFIG_FILE (absolute path)]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]systemd_check\f[R] checks a set of systemd services, targets,
|
||||||
|
mounts of timers, and notifies if their state is not up and running.
|
||||||
|
It comes with systemd services.
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided, \f[B]systemd_check\f[R] tries
|
||||||
|
to read from \f[I]$HOME/.systemd_check.conf\f[R] and
|
||||||
|
\f[I]/etc/systemd_check.conf\f[R] for configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]SYSTEMD_CHECK_LIST_FILE=\[lq]$HOME/.systemd_check.list\[rq]\f[R]
|
||||||
|
which lists to be checked systemd services, timers or targets separated
|
||||||
|
by lines.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]SYSTEMD_CHECK_MAIL_ENABLED=false\f[R] enables or disables sending
|
||||||
|
mail notifications.
|
||||||
|
- \f[B]SYSTEMD_CHECK_MAIL_ADDRESS=\[lq]\[lq]\f[R] which requires
|
||||||
|
\f[I]mail.rc\f[R] to be configured and `\f[I]mailx\f[R]' command has be
|
||||||
|
available.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.systemd_check.conf\f[R] and add
|
||||||
|
\f[I]SYSTEMD_CHECK_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
|
Notifications will be delivered to alias\[at]domain.tld.
|
||||||
|
Examples can be found in \f[I]/usr/share/doc/systemd_check\f[R].
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
94
usr/share/man/man1/systemd_failure_notify.1
Normal file
94
usr/share/man/man1/systemd_failure_notify.1
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
.\" Automatically generated by Pandoc 2.19.2
|
||||||
|
.\"
|
||||||
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
|
.\" that render this, and otherwise B font.
|
||||||
|
.ie "\f[CB]x\f[]"x" \{\
|
||||||
|
. ftr V B
|
||||||
|
. ftr VI BI
|
||||||
|
. ftr VB B
|
||||||
|
. ftr VBI BI
|
||||||
|
.\}
|
||||||
|
.el \{\
|
||||||
|
. ftr V CR
|
||||||
|
. ftr VI CI
|
||||||
|
. ftr VB CB
|
||||||
|
. ftr VBI CBI
|
||||||
|
.\}
|
||||||
|
.TH "systemd_failure_notify" "1" "January 2023" "systemd_failure_notify" ""
|
||||||
|
.hy
|
||||||
|
.SH NAME
|
||||||
|
.PP
|
||||||
|
systemd_failure_notify - Notifies via mail or gotify when a service has
|
||||||
|
failed.
|
||||||
|
Configuration is done in environment files.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.PP
|
||||||
|
\f[B]systemd_failure_notify\f[R] [CONFIG_FILE (absolute path)] [service
|
||||||
|
name]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.PP
|
||||||
|
\f[B]systemd_failure_notify\f[R] executes \f[I]mailx\f[R] or
|
||||||
|
\f[I]gotify\f[R] to send out notifications.
|
||||||
|
It comes with systemd services.
|
||||||
|
Use the provided systemd service in the \f[B]OnFailure\f[R] directive
|
||||||
|
with \f[I]OnFailure=systemd_failure_notify\[at]%n.service\f[R].
|
||||||
|
.PP
|
||||||
|
If no \f[I]CONFIG_FILE\f[R] is provided,
|
||||||
|
\f[B]systemd_failure_notify\f[R] tries to read from
|
||||||
|
\f[I]$HOME/.systemd_failure_notify.conf\f[R] and
|
||||||
|
\f[I]/etc/systemd_failure_notify.conf\f[R] for configuration.
|
||||||
|
It will exit with a non-zero exit code if it cannot find an proper
|
||||||
|
configuration file.
|
||||||
|
.PP
|
||||||
|
The following are at least required for the script to work:
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS=\[lq]\[lq]\f[R] which
|
||||||
|
requires \f[I]mail.rc\f[R] to be configured and `\f[I]mailx\f[R]'
|
||||||
|
command has be available\[ac]
|
||||||
|
.PP
|
||||||
|
By default, \f[B]SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED\f[R] is set to
|
||||||
|
\f[B]true\f[R].
|
||||||
|
Set it to \f[B]false\f[R] to use \f[I]gotify\f[R] only.\[ac]
|
||||||
|
.PP
|
||||||
|
The following are optional and integrate gotify-cli to send
|
||||||
|
notifications, it defaults to false: -
|
||||||
|
SYSTEMD_FAILURE_NOTIFY_GOTIFY_ENABLED=\[lq]true\[rq] // `gotify' command
|
||||||
|
has be available and needs to be properly configured by having a
|
||||||
|
cli.json file
|
||||||
|
.PP
|
||||||
|
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
||||||
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
.SH EXAMPLE
|
||||||
|
.PP
|
||||||
|
Create a \f[I]$HOME/.systemd_failure_notify.conf\f[R] and add
|
||||||
|
\f[I]SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
|
Notifications will be delivered to alias\[at]domain.tld.
|
||||||
|
Examples can be found in
|
||||||
|
\f[I]/usr/share/doc/systemd_failure_notify\f[R].
|
||||||
|
.PP
|
||||||
|
Then, add \f[B]systemd_failure_notify\[at]serviceName\f[R] in a systemd
|
||||||
|
unit file in the \f[B]OnFailure\f[R] directive:
|
||||||
|
.PP
|
||||||
|
[Unit]
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
OnFailure=systemd_failure_notify\[at]%n.service
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
|
.SH EXIT VALUES
|
||||||
|
.TP
|
||||||
|
\f[B]0\f[R]
|
||||||
|
Success
|
||||||
|
.TP
|
||||||
|
\f[B]1\f[R]
|
||||||
|
Error
|
||||||
|
.SH AUTHORS
|
||||||
|
Alexander Sch\[:a]ferdiek.
|
Loading…
Reference in a new issue