Use notifier and clean up independent mail enabled and mail address configs
This commit is contained in:
parent
bc01d41f1c
commit
ed7a1c639c
41 changed files with 194 additions and 283 deletions
|
@ -11,20 +11,19 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
|
|
||||||
**check_updates** checks for available updates using *checkupdates* and sends out a mail. It comes with systemd services.
|
**check_updates** checks for available updates using *checkupdates* (which can be customized) and notifies. It comes with systemd services.
|
||||||
|
|
||||||
By default, **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 a proper configuration file.
|
By default, **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 a proper configuration file.
|
||||||
|
|
||||||
The following are at least required for the script to work:\
|
The following can be modified if defaults don't apply:\
|
||||||
- **CHECK_UPDATES_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.
|
- **CHECK_UPDATES_UPDATES_CMD** is the command for retrieving which updates are available, by default it's set to */usr/bin/checkupdates* (Arch Linux default).\
|
||||||
- **CHECK_UPDATES_UPDATES_CMD** is the command for retrieving which updates are available, by default it's set to */usr/bin/checkupdates* (Arch Linux default).
|
- **CHECK_UPDATES_UPDATES_AMOUNT_CMD** is the command used to determine the amount of updates, by default it's set to */usr/bin/checkupdates | wc -l* (Arch Linux default).\
|
||||||
- **CHECK_UPDATES_UPDATES_AMOUNT_CMD** is the command used to determine the amount of updates, by default it's set to */usr/bin/checkupdates | wc -l* (Arch Linux default).
|
|
||||||
|
|
||||||
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
# EXAMPLE
|
# 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*.
|
Create a *$HOME/.check_updates.conf* and add *CHECK_UPDATES_UPDATES_CMD="..."*. Notifications will be delivered via **notifier**. Examples can be found in */usr/share/doc/check_updates*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -32,3 +31,7 @@ Create a *$HOME/.check_updates.conf* and add *CHECK_UPDATES_MAIL_ADDRESS="alias@
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -3,7 +3,7 @@
|
||||||
% January 2023
|
% January 2023
|
||||||
|
|
||||||
# NAME
|
# NAME
|
||||||
disk_space_alert - Checks available disk space and sends out notification via mail. Configuration is done in environment files.\
|
disk_space_alert - Checks available disk space and notifies. Configuration is done in environment files.\
|
||||||
It's part of **system-helpers**.
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
|
@ -11,22 +11,19 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
# DESCRIPTION
|
# 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.
|
**disk_space_alert** checks available diskspace for configured **mounts** and notifies if certain limits are reached. It comes with systemd services.
|
||||||
|
|
||||||
By default, **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 a proper configuration file.
|
By default, **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 a proper configuration file.
|
||||||
|
|
||||||
The following are at least required for the script to work:\
|
The following can be customized:\
|
||||||
- **DISK_SPACE_ALERT_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.\
|
- **DISK_SPACE_ALERT_THRESHOLD=93** in percentage.\
|
||||||
|
- **DISK_SPACE_ALERT_MOUNTPOINTS=("/")** is an array of mountpoints.\
|
||||||
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.
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
# EXAMPLE
|
# 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*.
|
Create a *$HOME/.disk_space_alert.conf* and add *DISK_SPACE_ALERT_THRESHOLD="95"*. Notifications will be delivered via **notifier**. Examples can be found in */usr/share/doc/disk_space_alert*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -34,3 +31,7 @@ Create a *$HOME/.disk_space_alert.conf* and add *DISK_SPACE_ALERT_MAIL_ADDRESS="
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -15,17 +15,15 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
By default, **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 a proper configuration file.
|
By default, **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 a proper configuration file.
|
||||||
|
|
||||||
The following are at least required for the script to work:\
|
The following can be customized:\
|
||||||
- **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_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_NOTIFY_LEVELS=("UNKNOWN" "WARNING" "CRITICAL")** determines when to notify/output. 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.
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
# EXAMPLE
|
# 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*.
|
Create a *$HOME/.docker_check.conf* and add *DOCKER_CHECK_NOTIFY_LEVELS="(WARNING)"*. Notifications will be delivered via **notifier**. Examples can be found in */usr/share/doc/docker_check*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -33,3 +31,7 @@ Create a *$HOME/.docker_check.conf* and add *DOCKER_CHECK_MAIL_ADDRESS="alias@do
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -20,7 +20,7 @@ The following are at least required for the script to work:\
|
||||||
- **DOCKER_COMPOSE_UPDATE_IGNORES=("mailcow")** folder names which will be ignored and not be updated, at least () is required.\
|
- **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_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_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
|
- **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.
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,7 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
By default, **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 a proper configuration file.
|
By default, **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 a proper configuration file.
|
||||||
|
|
||||||
The following are at least required for the script to work:\
|
The following can be customized:\
|
||||||
- **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_TOKEN** the dynv6 token.\
|
||||||
- **DYNV6_HOSTNAME** the dynv6 hostname.\
|
- **DYNV6_HOSTNAME** the dynv6 hostname.\
|
||||||
- **DYNV6_IPV4_ENABLED** enable or disable updating IPv4.\
|
- **DYNV6_IPV4_ENABLED** enable or disable updating IPv4.\
|
||||||
|
@ -28,7 +26,7 @@ You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FI
|
||||||
|
|
||||||
# EXAMPLE
|
# 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*.
|
Create a *$HOME/.dynv6.conf* and add *DYNV6_TOKEN="mySecretToken"*. Notifications will be delivered via **notifier**. Examples can be found in */usr/share/doc/dynv6*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -36,3 +34,7 @@ Create a *$HOME/.dynv6.conf* and add *DYNV6_MAIL_ADDRESS="alias@domain.tld"*. No
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -3,7 +3,7 @@
|
||||||
% January 2023
|
% January 2023
|
||||||
|
|
||||||
# NAME
|
# NAME
|
||||||
memory_usage_alert - Checks available memory and sends out notification via mail. Configuration is done in environment files.\
|
memory_usage_alert - Checks available memory and sends out notifications. Configuration is done in environment files.\
|
||||||
It's part of **system-helpers**.
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
|
@ -11,13 +11,10 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
|
|
||||||
**memory_usage_alert** checks available memory and sends out a mail if certain limits are reached. It comes with systemd services.
|
**memory_usage_alert** checks available memory and sends notifications if certain limits are reached. It comes with systemd services.
|
||||||
|
|
||||||
By default, **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 a proper configuration file.
|
By default, **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 a 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:
|
The following are optional or have reasonable defaults:
|
||||||
- **MEMORY_USAGE_ALERT_THRESHOLD=512** threshold to warn about (in *megabytes*)
|
- **MEMORY_USAGE_ALERT_THRESHOLD=512** threshold to warn about (in *megabytes*)
|
||||||
|
|
||||||
|
@ -25,7 +22,7 @@ You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FI
|
||||||
|
|
||||||
# EXAMPLE
|
# 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*.
|
Create a *$HOME/.memory_usage_alert.conf* and add *MEMORY_USAGE_ALERT_THRESHOLD="1024"*. Notifications will be delivered via **notifier**. Examples can be found in */usr/share/doc/memory_usage_alert*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -33,3 +30,7 @@ Create a *$HOME/.memory_usage_alert.conf* and add *MEMORY_USAGE_ALERT_MAIL_ADDRE
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -25,7 +25,7 @@ You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FI
|
||||||
|
|
||||||
# EXAMPLE
|
# EXAMPLE
|
||||||
|
|
||||||
Create a *$HOME/.notifier.conf* and add *NOTIFIER_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld. Examples can be found in */usr/share/doc/notifier*.
|
Create a *$HOME/.notifier.conf* and add *NOTIFIER_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld or via gotify if enabled. Examples can be found in */usr/share/doc/notifier*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -36,4 +36,4 @@ Create a *$HOME/.notifier.conf* and add *NOTIFIER_MAIL_ADDRESS="alias@domain.tld
|
||||||
|
|
||||||
# SEE ALSO
|
# SEE ALSO
|
||||||
|
|
||||||
system-helpers
|
**system-helpers**
|
|
@ -11,19 +11,18 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
|
|
||||||
**smart_tests_long** checks for available updates using *smartctl* and sends out a mail. It comes with systemd services.
|
**smart_tests_long** checks for available updates using *smartctl* and notifies. It comes with systemd services.
|
||||||
|
|
||||||
By default, **smart_tests_long** tries to read from *$HOME/.smartctl_tests_long.conf* and */etc/smartctl_tests_long.conf* for configuration. It will exit with a non-zero exit code if it cannot find a proper configuration file.
|
By default, **smart_tests_long** tries to read from *$HOME/.smartctl_tests_long.conf* and */etc/smartctl_tests_long.conf* for configuration. It will exit with a non-zero exit code if it cannot find a proper configuration file.
|
||||||
|
|
||||||
The following are at least required for the script to work:\
|
The following can be customized:\
|
||||||
- **SMARTCTL_TESTS_LONG_MAIL_ADDRESS=""** which requires *mail.rc* to be configured and '*mailx*' command has be available.
|
|
||||||
- **SMARTCTL_TESTS_LONG_DEVICES=(sda)** array of block devices (not partitions!) to check.
|
- **SMARTCTL_TESTS_LONG_DEVICES=(sda)** array of block devices (not partitions!) to check.
|
||||||
|
|
||||||
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
# EXAMPLE
|
# EXAMPLE
|
||||||
|
|
||||||
Create a *$HOME/.smartctl_tests_long.conf* and add *SMARTCTL_TESTS_LONG_MAIL_ADDRESS="alias@domain.tld"*. Notifications will be delivered to alias@domain.tld for default block device **sda**. Examples can be found in */usr/share/doc/smart_tests_long*.
|
Create a *$HOME/.smartctl_tests_long.conf* and add *SMARTCTL_TESTS_LONG_DEVICES="(nvme1 sdc sdf)"*. Notifications will be delivered via **notifier** for default block device **sda**. Examples can be found in */usr/share/doc/smart_tests_long*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -31,3 +30,7 @@ Create a *$HOME/.smartctl_tests_long.conf* and add *SMARTCTL_TESTS_LONG_MAIL_ADD
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -19,8 +19,8 @@ shell scripts for common tasks.
|
||||||
- docker housekeeping for removing unused docker containers, volumes and images
|
- docker housekeeping for removing unused docker containers, volumes and images
|
||||||
- update check for pacman (ArchLinux specific, see **man check_updates**)
|
- update check for pacman (ArchLinux specific, see **man check_updates**)
|
||||||
|
|
||||||
Provided systemd services mostly support mail notifications if they have failed
|
Provided systemd services mostly support notifications if they have failed
|
||||||
via **systemd_failure_notify**.
|
via **systemd_failure_notify** which uses **notifier** (see **man notifier**).
|
||||||
|
|
||||||
See */usr/share/doc/system-helpers* for example configurations which should
|
See */usr/share/doc/system-helpers* for example configurations which should
|
||||||
be copied inside **$HOME** or **/etc** depending on the helper script.
|
be copied inside **$HOME** or **/etc** depending on the helper script.
|
|
@ -15,16 +15,14 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
By default, **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 a proper configuration file.
|
By default, **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 a proper configuration file.
|
||||||
|
|
||||||
The following are at least required for the script to work:\
|
The following can be customized:\
|
||||||
- **SYSTEMD_CHECK_LIST_FILE="$HOME/.systemd_check.list"** which lists to be checked systemd services, timers or targets separated by lines.\
|
- **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.
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
# EXAMPLE
|
# 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*.
|
Create a *$HOME/.systemd_check.conf* and add *SYSTEMD_CHECK_LIST_FILE="/other/path/to/list"*. Notifications will be delivered via **notifier**. Examples can be found in */usr/share/doc/systemd_check*.
|
||||||
|
|
||||||
# EXIT VALUES
|
# EXIT VALUES
|
||||||
**0**
|
**0**
|
||||||
|
@ -32,3 +30,7 @@ Create a *$HOME/.systemd_check.conf* and add *SYSTEMD_CHECK_MAIL_ADDRESS="alias@
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -3,7 +3,7 @@
|
||||||
% January 2023
|
% January 2023
|
||||||
|
|
||||||
# NAME
|
# NAME
|
||||||
systemd_failure_notify - Notifies via mail or gotify when a service has failed. Configuration is done in environment files.\
|
systemd_failure_notify - Invokes when a systemd service has failed. Configuration is done in environment files.\
|
||||||
It's part of **system-helpers**.
|
It's part of **system-helpers**.
|
||||||
|
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
|
@ -11,23 +11,15 @@ It's part of **system-helpers**.
|
||||||
|
|
||||||
# DESCRIPTION
|
# 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*.
|
**systemd_failure_notify** triggered when systemd services fail. It comes with systemd services. Use the provided systemd service in the **OnFailure** directive with *OnFailure=systemd_failure_notify@%n.service*.
|
||||||
|
|
||||||
By default, **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 a proper configuration file.
|
By default, **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 a 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"** uses *gotify* command which 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.
|
You can copy this script to */usr/local/bin* and use create a custom **CONFIG_FILE** as user.
|
||||||
|
|
||||||
# EXAMPLE
|
# 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*.
|
Create a *$HOME/.systemd_failure_notify.conf*. Notifications will be delivered via **notifier**. 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:
|
Then, add **systemd_failure_notify@serviceName** in a systemd unit file in the **OnFailure** directive:
|
||||||
|
|
||||||
|
@ -40,3 +32,7 @@ OnFailure=systemd_failure_notify@%n.service\
|
||||||
|
|
||||||
**1**
|
**1**
|
||||||
: Error
|
: Error
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**notifier** - used as notification application
|
|
@ -60,13 +60,8 @@ check_required() {
|
||||||
echo "CHECK_UPDATES_UPDATES_AMOUNT_CMD is required"
|
echo "CHECK_UPDATES_UPDATES_AMOUNT_CMD is required"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [[ -z ${CHECK_UPDATES_MAIL_ADDRESS} ]]; then
|
|
||||||
echo "CHECK_UPDATES_MAIL_ADDRESS is required"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK_UPDATES_UPDATES=$(eval "${CHECK_UPDATES_UPDATES_CMD}")
|
CHECK_UPDATES_UPDATES=$(eval "${CHECK_UPDATES_UPDATES_CMD}")
|
||||||
|
@ -80,13 +75,12 @@ HOSTNAME=$(hostname)
|
||||||
|
|
||||||
if [[ "$CHECK_UPDATES_UPDATES_AMOUNT" -gt "0" ]]; then
|
if [[ "$CHECK_UPDATES_UPDATES_AMOUNT" -gt "0" ]]; then
|
||||||
SUBJECT="[updates ${HOSTNAME}]"
|
SUBJECT="[updates ${HOSTNAME}]"
|
||||||
MESSAGE=$(
|
MESSAGE=$(cat <<EOF
|
||||||
cat <<EOF
|
|
||||||
There are ${CHECK_UPDATES_UPDATES_AMOUNT} updates available on ${HOSTNAME}.
|
There are ${CHECK_UPDATES_UPDATES_AMOUNT} updates available on ${HOSTNAME}.
|
||||||
|
|
||||||
${CHECK_UPDATES_UPDATES};
|
${CHECK_UPDATES_UPDATES};
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
|
|
||||||
echo "$MESSAGE" | mailx -Ssendwait -s "$SUBJECT" "$CHECK_UPDATES_MAIL_ADDRESS"
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -5,7 +5,7 @@ usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: disk_space_alert
|
Usage: disk_space_alert
|
||||||
|
|
||||||
Checks available diskspace for configured **mounts** and sends out a mail if certain limits are reached. Please see man disk_space_alert.
|
Checks available diskspace for configured **mounts** and notifies if certain limits are reached. Please see man disk_space_alert.
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
@ -47,12 +47,10 @@ source_config() {
|
||||||
|
|
||||||
check_required() {
|
check_required() {
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
type df &> /dev/null || { echo "Requiring 'df' but it's not installed"; exit 1; }
|
type df &> /dev/null || { echo "Requiring 'df' but it's not installed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
# apply defaults
|
# apply defaults
|
||||||
DISK_SPACE_ALERT_MAIL_ADDRESS="";
|
|
||||||
DISK_SPACE_ALERT_THRESHOLD=93
|
DISK_SPACE_ALERT_THRESHOLD=93
|
||||||
DISK_SPACE_ALERT_MOUNTPOINTS=("/")
|
DISK_SPACE_ALERT_MOUNTPOINTS=("/")
|
||||||
|
|
||||||
|
@ -69,8 +67,11 @@ do
|
||||||
CURRENT_INODES=$(df -i "$point" | grep "$point" | awk '{ print $5}' | sed 's/%//g')
|
CURRENT_INODES=$(df -i "$point" | grep "$point" | awk '{ print $5}' | sed 's/%//g')
|
||||||
|
|
||||||
if [ "$CURRENT" -gt "$DISK_SPACE_ALERT_THRESHOLD" ] ; then
|
if [ "$CURRENT" -gt "$DISK_SPACE_ALERT_THRESHOLD" ] ; then
|
||||||
mailx -s "[disk $HOSTNAME] $point" "$DISK_SPACE_ALERT_MAIL_ADDRESS" << EOF
|
SUBJECT="[disk $HOSTNAME] $point"
|
||||||
|
MESSAGE=$(cat <<EOF
|
||||||
Your $point partition remaining free space is critically low. Used space: $CURRENT_SPACE%. Used inodes: $CURRENT_INODES%.
|
Your $point partition remaining free space is critically low. Used space: $CURRENT_SPACE%. Used inodes: $CURRENT_INODES%.
|
||||||
EOF
|
EOF
|
||||||
fi
|
)
|
||||||
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
@ -47,15 +47,12 @@ source_config() {
|
||||||
|
|
||||||
check_required() {
|
check_required() {
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
type docker &> /dev/null || { echo "Requiring 'docker' but it's not installed"; exit 1; }
|
type docker &> /dev/null || { echo "Requiring 'docker' but it's not installed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
DOCKER_CHECK_LIST_FILE="$HOME/.docker_check.list"
|
DOCKER_CHECK_LIST_FILE="$HOME/.docker_check.list"
|
||||||
DOCKER_CHECK_GLOBAL_LIST_FILE="/etc/docker_check.list"
|
DOCKER_CHECK_GLOBAL_LIST_FILE="/etc/docker_check.list"
|
||||||
DOCKER_CHECK_NOTIFY_LEVELS=("UNKNOWN" "WARNING" "CRITICAL")
|
DOCKER_CHECK_NOTIFY_LEVELS=("UNKNOWN" "WARNING" "CRITICAL")
|
||||||
DOCKER_CHECK_MAIL_ENABLED=false
|
|
||||||
DOCKER_CHECK_MAIL_ADDRESS=""
|
|
||||||
CONTAINERS=()
|
CONTAINERS=()
|
||||||
|
|
||||||
source_config "$HOME/.docker_check.conf" "/etc/docker_check.conf"
|
source_config "$HOME/.docker_check.conf" "/etc/docker_check.conf"
|
||||||
|
@ -97,7 +94,7 @@ function shouldLog() {
|
||||||
echo false;
|
echo false;
|
||||||
}
|
}
|
||||||
|
|
||||||
# log and send mail if enabled
|
# log
|
||||||
function log() {
|
function log() {
|
||||||
local CONTAINER=$1;
|
local CONTAINER=$1;
|
||||||
local STATUS=$2;
|
local STATUS=$2;
|
||||||
|
@ -108,10 +105,7 @@ function log() {
|
||||||
if [ "$SHOULD_LOG" = "true" ]; then
|
if [ "$SHOULD_LOG" = "true" ]; then
|
||||||
local SUBJECT="[docker $HOSTNAME] $STATUS $CONTAINER";
|
local SUBJECT="[docker $HOSTNAME] $STATUS $CONTAINER";
|
||||||
echo "$SUBJECT: $MESSAGE";
|
echo "$SUBJECT: $MESSAGE";
|
||||||
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
if [ "$DOCKER_CHECK_MAIL_ENABLED" = true ]; then
|
|
||||||
echo "$MESSAGE"|mailx -Ssendwait -s "$SUBJECT" "$DOCKER_CHECK_MAIL_ADDRESS";
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,12 +45,6 @@ source_config() {
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_defaults() {
|
apply_defaults() {
|
||||||
if [ -z "${DYNV6_MAIL_ENABLED}" ]; then
|
|
||||||
DYNV6_MAIL_ENABLED=false;
|
|
||||||
fi
|
|
||||||
if [ -z "${DYNV6_MAIL_ADDRESS}" ]; then
|
|
||||||
DYNV6_MAIL_ADDRESS="";
|
|
||||||
fi
|
|
||||||
if [ -z "${DYNV6_TOKEN}" ]; then
|
if [ -z "${DYNV6_TOKEN}" ]; then
|
||||||
DYNV6_TOKEN="";
|
DYNV6_TOKEN="";
|
||||||
fi
|
fi
|
||||||
|
@ -79,7 +73,6 @@ check_required() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
type ip &> /dev/null || { echo "Requiring 'ip' but it's not installed"; exit 1; }
|
type ip &> /dev/null || { echo "Requiring 'ip' but it's not installed"; exit 1; }
|
||||||
type grep &> /dev/null || { echo "Requiring 'grep' but it's not installed"; exit 1; }
|
type grep &> /dev/null || { echo "Requiring 'grep' but it's not installed"; exit 1; }
|
||||||
type curl &> /dev/null || { echo "Requiring 'curl' but it's not installed"; exit 1; }
|
type curl &> /dev/null || { echo "Requiring 'curl' but it's not installed"; exit 1; }
|
||||||
|
@ -123,10 +116,10 @@ if [ "${DYNV6_IPV6_ENABLED}" = "true" ]; then
|
||||||
ipv6Changed=false;
|
ipv6Changed=false;
|
||||||
fi
|
fi
|
||||||
if [ "${ipv6Changed}" = "true" ]; then
|
if [ "${ipv6Changed}" = "true" ]; then
|
||||||
if [ "${DYNV6_MAIL_ENABLED}" = "true" ]; then
|
|
||||||
HOSTMACHINE=$(hostname)
|
HOSTMACHINE=$(hostname)
|
||||||
echo -e "IPv6 for ${hostname} on host ${HOSTMACHINE} changed to ${ipv6Address}" | mailx -s "[dynv6 IPv6 ${HOSTMACHINE}] IPv6 changed for ${hostname}" "${DYNV6_MAIL_ADDRESS}"
|
SUBJECT="[dynv6 IPv6 ${HOSTMACHINE}] IPv6 changed for ${hostname}"
|
||||||
fi
|
MESSAGE="IPv6 for ${hostname} on host ${HOSTMACHINE} changed to ${ipv6Address}"
|
||||||
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -143,9 +136,9 @@ if [ "${DYNV6_IPV4_ENABLED}" = "true" ]; then
|
||||||
if [ "${ipv4Changed}" = "true" ]; then
|
if [ "${ipv4Changed}" = "true" ]; then
|
||||||
echo "IPv4 changed"
|
echo "IPv4 changed"
|
||||||
|
|
||||||
if [ "${DYNV6_MAIL_ENABLED}" = "true" ]; then
|
|
||||||
HOSTMACHINE=$(hostname)
|
HOSTMACHINE=$(hostname)
|
||||||
echo -e "IPv4 for ${hostname} on host ${HOSTMACHINE} changed to ${ipv4Address}" | mailx -s "[dynv6 IPv4 ${HOSTMACHINE}] IPv4 changed for ${hostname}" "${DYNV6_MAIL_ADDRESS}"
|
SUBJECT="[dynv6 IPv4 ${HOSTMACHINE}] IPv4 changed for ${hostname}"
|
||||||
fi
|
MESSAGE="IPv4 for ${hostname} on host ${HOSTMACHINE} changed to ${ipv4Address}"
|
||||||
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -5,7 +5,7 @@ usage() {
|
||||||
USAGE=$(cat <<EOF
|
USAGE=$(cat <<EOF
|
||||||
Usage: memory_usage_alert
|
Usage: memory_usage_alert
|
||||||
|
|
||||||
Checks available memory and sends out notification via mail. Please see man memory_usage_alert.
|
Checks available memory and notifies. Please see man memory_usage_alert.
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
echo "$USAGE";
|
echo "$USAGE";
|
||||||
|
@ -47,11 +47,9 @@ source_config() {
|
||||||
|
|
||||||
check_required() {
|
check_required() {
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
type free &> /dev/null || { echo "Requiring 'free' but it's not installed"; exit 1; }
|
type free &> /dev/null || { echo "Requiring 'free' but it's not installed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
MEMORY_USAGE_ALERT_MAIL_ADDRESS="";
|
|
||||||
MEMORY_USAGE_ALERT_THRESHOLD=512;
|
MEMORY_USAGE_ALERT_THRESHOLD=512;
|
||||||
|
|
||||||
source_config "$HOME/.memory_usage_alert.conf" "/etc/memory_usage_alert.conf"
|
source_config "$HOME/.memory_usage_alert.conf" "/etc/memory_usage_alert.conf"
|
||||||
|
@ -68,9 +66,10 @@ free=$(($total-$used))
|
||||||
|
|
||||||
if [[ "$free" -le $MEMORY_USAGE_ALERT_THRESHOLD ]]; then
|
if [[ "$free" -le $MEMORY_USAGE_ALERT_THRESHOLD ]]; then
|
||||||
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/top_proccesses_consuming_memory.txt
|
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/top_proccesses_consuming_memory.txt
|
||||||
|
|
||||||
file=/tmp/top_proccesses_consuming_memory.txt
|
file=/tmp/top_proccesses_consuming_memory.txt
|
||||||
echo -e "Memory on $HOSTNAME is running low ($MEMORY_USAGE_ALERT_THRESHOLD MB is the remaining threshold)!\n\nFree memory: $free MB" | mailx -a "$file" -s "$SUBJECT" "$MEMORY_USAGE_ALERT_MAIL_ADDRESS"
|
fileContents=$(cat ${file})
|
||||||
|
MESSAGE=$(echo -e "Memory on $HOSTNAME is running low ($MEMORY_USAGE_ALERT_THRESHOLD MB is the remaining threshold)!\n\nFree memory: $free MB\n\n${fileContents}")
|
||||||
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -47,11 +47,9 @@ source_config() {
|
||||||
|
|
||||||
check_required() {
|
check_required() {
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
type smartctl &> /dev/null || { echo "Requiring 'smartctl' but it's not installed"; exit 1; }
|
type smartctl &> /dev/null || { echo "Requiring 'smartctl' but it's not installed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
SMARTCTL_TESTS_LONG_MAIL_ADDRESS="";
|
|
||||||
SMARTCTL_TESTS_LONG_DEVICES=(sda)
|
SMARTCTL_TESTS_LONG_DEVICES=(sda)
|
||||||
|
|
||||||
source_config "$HOME/.smartctl_tests_long.conf" "/etc/smartctl_tests_long.conf"
|
source_config "$HOME/.smartctl_tests_long.conf" "/etc/smartctl_tests_long.conf"
|
||||||
|
@ -65,8 +63,8 @@ for d in "${SMARTCTL_TESTS_LONG_DEVICES[@]}"; do
|
||||||
DEVICE="/dev/$d";
|
DEVICE="/dev/$d";
|
||||||
echo "$DEVICE";
|
echo "$DEVICE";
|
||||||
smartctl -t long "$DEVICE";
|
smartctl -t long "$DEVICE";
|
||||||
mailx -s "[smartd $HOSTNAME] queued long test" "$SMARTCTL_TESTS_LONG_MAIL_ADDRESS" << EOF
|
SUBJECT="[smartd $HOSTNAME] queued long test"
|
||||||
Queued a smartd long test for $DEVICE.
|
MESSAGE="Queued a smartd long test for $DEVICE."
|
||||||
EOF
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
|
|
||||||
check_required() {
|
check_required() {
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
type wall &> /dev/null || { echo "Requiring 'wall' but it's not installed"; exit 1; }
|
type wall &> /dev/null || { echo "Requiring 'wall' but it's not installed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
check_required
|
check_required
|
||||||
|
|
||||||
HOSTNAME=$(hostname)
|
HOSTNAME=$(hostname)
|
||||||
echo "$SMARTD_MESSAGE" | mail -s "[smartd $HOSTNAME] $SMARTD_FAILTYPE" "$SMARTD_ADDRESS"
|
|
||||||
|
SUBJECT="[smartd $HOSTNAME] $SMARTD_FAILTYPE"
|
||||||
|
MESSAGE=$(echo -e "$SMARTD_MESSAGE")
|
||||||
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
wall "$SMARTD_MESSAGE"
|
wall "$SMARTD_MESSAGE"
|
|
@ -48,15 +48,12 @@ source_config() {
|
||||||
|
|
||||||
check_required() {
|
check_required() {
|
||||||
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
type hostname &> /dev/null || { echo "Requiring 'hostname' but it's not installed"; exit 1; }
|
||||||
type mailx &> /dev/null || { echo "Requiring 'mailx' but it's not installed"; exit 1; }
|
|
||||||
type whoami &> /dev/null || { echo "Requiring 'whoami' but it's not installed"; exit 1; }
|
type whoami &> /dev/null || { echo "Requiring 'whoami' but it's not installed"; exit 1; }
|
||||||
type systemctl &> /dev/null || { echo "Requiring 'systemctl' but it's not installed"; exit 1; }
|
type systemctl &> /dev/null || { echo "Requiring 'systemctl' but it's not installed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
SYSTEMD_CHECK_LIST_FILE="$HOME/.systemd_check.list"
|
SYSTEMD_CHECK_LIST_FILE="$HOME/.systemd_check.list"
|
||||||
SYSTEMD_CHECK_GLOBAL_LIST_FILE="/etc/systemd_check.list"
|
SYSTEMD_CHECK_GLOBAL_LIST_FILE="/etc/systemd_check.list"
|
||||||
SYSTEMD_CHECK_MAIL_ENABLED=fase
|
|
||||||
SYSTEMD_CHECK_MAIL_ADDRESS=""
|
|
||||||
SYSTEMD_CHECK_SERVICES=()
|
SYSTEMD_CHECK_SERVICES=()
|
||||||
|
|
||||||
source_config "$HOME/.systemd_check.conf" "/etc/systemd_check.conf"
|
source_config "$HOME/.systemd_check.conf" "/etc/systemd_check.conf"
|
||||||
|
@ -110,10 +107,7 @@ function checkService() {
|
||||||
if [ "$RESULT" -gt 0 ]; then
|
if [ "$RESULT" -gt 0 ]; then
|
||||||
local SUBJECT="[systemd $SYSTEMD_CHECK_HOSTNAME for $SYSTEMD_CHECK_USER] CRITICAL $SERVICE";
|
local SUBJECT="[systemd $SYSTEMD_CHECK_HOSTNAME for $SYSTEMD_CHECK_USER] CRITICAL $SERVICE";
|
||||||
echo "-> $SUBJECT: $MESSAGE";
|
echo "-> $SUBJECT: $MESSAGE";
|
||||||
|
notifier "${SUBJECT}" "${MESSAGE}";
|
||||||
if [ "$SYSTEMD_CHECK_MAIL_ENABLED" = true ]; then
|
|
||||||
echo "$MESSAGE"|mailx -Ssendwait -s "$SUBJECT" "$SYSTEMD_CHECK_MAIL_ADDRESS";
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -21,10 +21,6 @@ if [ -z "$SYSTEMD_FAILURE_NOTIFY_SERVICE" ]; then
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED="true";
|
|
||||||
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;
|
||||||
|
@ -43,18 +39,6 @@ apply_config() {
|
||||||
}
|
}
|
||||||
|
|
||||||
check_requirements() {
|
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
|
|
||||||
|
|
||||||
type whoami &> /dev/null || { echo "Requiring 'whoami' but it's not installed"; exit 1; }
|
type whoami &> /dev/null || { echo "Requiring 'whoami' but it's not installed"; exit 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +57,7 @@ source_config() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
source_config "$HOME/.systemd_failure_notify.conf" "/etc/systemd_failure_notify.conf"
|
source_config "$HOME/.systemd_failure_notify.conf" "/etc/systemd_failure_notify.conf"
|
||||||
check_requirements "$SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED" "$SYSTEMD_FAILURE_NOTIFY_GOTIFY_ENABLED"
|
check_requirements
|
||||||
|
|
||||||
SYSTEMD_FAILURE_NOTIFY_HOSTNAME=$(hostname)
|
SYSTEMD_FAILURE_NOTIFY_HOSTNAME=$(hostname)
|
||||||
SYSTEMD_FAILURE_NOTIFY_USER=$(whoami)
|
SYSTEMD_FAILURE_NOTIFY_USER=$(whoami)
|
||||||
|
@ -81,22 +65,4 @@ SYSTEMD_FAILURE_NOTIFY_USER=$(whoami)
|
||||||
SUBJECT="[systemd $SYSTEMD_FAILURE_NOTIFY_HOSTNAME for $SYSTEMD_FAILURE_NOTIFY_USER] $SYSTEMD_FAILURE_NOTIFY_USER RUN FAILED"
|
SUBJECT="[systemd $SYSTEMD_FAILURE_NOTIFY_HOSTNAME for $SYSTEMD_FAILURE_NOTIFY_USER] $SYSTEMD_FAILURE_NOTIFY_USER RUN FAILED"
|
||||||
MESSAGE="$SYSTEMD_FAILURE_NOTIFY_SERVICE run failed"
|
MESSAGE="$SYSTEMD_FAILURE_NOTIFY_SERVICE run failed"
|
||||||
|
|
||||||
if [[ "${SYSTEMD_FAILURE_NOTIFY_MAIL_ENABLED}" == "true" ]]; then
|
notifier "${SUBJECT}" "${MESSAGE}"
|
||||||
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
|
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
CHECKUPDATES_MAIL_ADDRESS="alias@domain.tld"
|
#CHECK_UPDATES_UPDATES_CMD="/usr/bin/checkupdates"
|
||||||
|
#CHECK_UPDATES_UPDATES_AMOUNT_CMD="/usr/bin/checkupdates | wc -l"
|
|
@ -1,4 +1,3 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
DISK_SPACE_ALERT_MAIL_ADDRESS="alias@domain.tld"
|
|
||||||
DISK_SPACE_ALERT_THRESHOLD=99
|
DISK_SPACE_ALERT_THRESHOLD=99
|
||||||
DISK_SPACE_ALERT_MOUNTPOINTS=("/", "/home")
|
DISK_SPACE_ALERT_MOUNTPOINTS=("/", "/home")
|
|
@ -1,5 +1,3 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
DOCKER_CHECK_LIST_FILE="/root/other/directory/prefix_docker_check.list"
|
DOCKER_CHECK_LIST_FILE="/root/other/directory/prefix_docker_check.list"
|
||||||
DOCKER_CHECK_NOTIFY_LEVELS=("UNKNOWN" "WARNING" "CRITICAL")
|
DOCKER_CHECK_NOTIFY_LEVELS=("UNKNOWN" "WARNING" "CRITICAL")
|
||||||
DOCKER_CHECK_MAIL_ENABLED=true
|
|
||||||
DOCKER_CHECK_MAIL_ADDRESS="alias@domain.tld"
|
|
|
@ -1,6 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
DYNV6_MAIL_ENABLED="false" # if notify via mail
|
|
||||||
DYNV6_MAIL_ADDRESS="" # (optional) mail.rc has to be configured
|
|
||||||
DYNV6_TOKEN="" # the dynv6 token
|
DYNV6_TOKEN="" # the dynv6 token
|
||||||
DYNV6_HOSTNAME="" # the dynv6 hostname
|
DYNV6_HOSTNAME="" # the dynv6 hostname
|
||||||
DYNV6_IPV4_ENABLED=true # if should update ipv4
|
DYNV6_IPV4_ENABLED=true # if should update ipv4
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
MEMORY_USAGE_ALERT_MAIL_ADDRESS="alias@domain.tld"
|
|
||||||
MEMORY_USAGE_ALERT_THRESHOLD=512
|
MEMORY_USAGE_ALERT_THRESHOLD=512
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
NOTIFIER_MAIL_ADDRESS=test@domain.tld
|
NOTIFIER_MAIL_ADDRESS=test@domain.tld
|
||||||
NOTIFIER_MAIL_ENABLED=true
|
NOTIFIER_MAIL_ENABLED=true
|
||||||
NOTIFIER_GOTIFY_ENABLED=true
|
NOTIFIER_GOTIFY_ENABLED=false
|
|
@ -12,3 +12,6 @@ echo -e "$STATS\n\n$SNAPSHOTS"
|
||||||
# output for mail
|
# output for mail
|
||||||
me="$0"
|
me="$0"
|
||||||
echo -e "$STATS\n\n$SNAPSHOTS" | mailx -Ssendwait -s "[restic - $(hostname)] $me - REPORT" "${RESTIC_REPORT_MAIL}"
|
echo -e "$STATS\n\n$SNAPSHOTS" | mailx -Ssendwait -s "[restic - $(hostname)] $me - REPORT" "${RESTIC_REPORT_MAIL}"
|
||||||
|
|
||||||
|
# or
|
||||||
|
# notifier "[restic - $(hostname)] $me - REPORT" "$(echo -e "$STATS\n\n$SNAPSHOTS" )"
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
SMARTCTL_TESTS_LONG_MAIL_ADDRESS="alias@domain.tld"
|
|
||||||
SMARTCTL_TESTS_LONG_DEVICES=(sda sdb)
|
SMARTCTL_TESTS_LONG_DEVICES=(sda sdb)
|
|
@ -1,4 +1,2 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
SYSTEMD_CHECK_MAIL_ENABLED=true
|
|
||||||
SYSTEMD_CHECK_MAIL_ADDRESS="alias@domain.tld"
|
|
||||||
SYSTEMD_CHECK_LIST_FILE="$HOME/.systemd_check.list"
|
SYSTEMD_CHECK_LIST_FILE="$HOME/.systemd_check.list"
|
|
@ -1,2 +1 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS="alias@domain.tld"
|
|
|
@ -30,7 +30,7 @@ It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
\f[B]check_updates\f[R] checks for available updates using
|
\f[B]check_updates\f[R] checks for available updates using
|
||||||
\f[I]checkupdates\f[R] and sends out a mail.
|
\f[I]checkupdates\f[R] (which can be customized) and notifies.
|
||||||
It comes with systemd services.
|
It comes with systemd services.
|
||||||
.PP
|
.PP
|
||||||
By default, \f[B]check_updates\f[R] tries to read from
|
By default, \f[B]check_updates\f[R] tries to read from
|
||||||
|
@ -39,27 +39,30 @@ By default, \f[B]check_updates\f[R] tries to read from
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.PP
|
||||||
The following are at least required for the script to work:
|
The following can be modified if defaults don\[cq]t apply:
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.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.
|
|
||||||
- \f[B]CHECK_UPDATES_UPDATES_CMD\f[R] is the command for retrieving
|
- \f[B]CHECK_UPDATES_UPDATES_CMD\f[R] is the command for retrieving
|
||||||
which updates are available, by default it\[cq]s set to
|
which updates are available, by default it\[cq]s set to
|
||||||
\f[I]/usr/bin/checkupdates\f[R] (Arch Linux default).
|
\f[I]/usr/bin/checkupdates\f[R] (Arch Linux default).
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
- \f[B]CHECK_UPDATES_UPDATES_AMOUNT_CMD\f[R] is the command used to
|
- \f[B]CHECK_UPDATES_UPDATES_AMOUNT_CMD\f[R] is the command used to
|
||||||
determine the amount of updates, by default it\[cq]s set to
|
determine the amount of updates, by default it\[cq]s set to
|
||||||
\f[I]/usr/bin/checkupdates | wc -l\f[R] (Arch Linux default).
|
\f[I]/usr/bin/checkupdates | wc -l\f[R] (Arch Linux default).
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
.PP
|
.PP
|
||||||
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
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.
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.check_updates.conf\f[R] and add
|
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].
|
\f[I]CHECK_UPDATES_UPDATES_CMD=\[lq]\&...\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
Notifications will be delivered via \f[B]notifier\f[R].
|
||||||
Examples can be found in \f[I]/usr/share/doc/check_updates\f[R].
|
Examples can be found in \f[I]/usr/share/doc/check_updates\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -68,5 +71,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -18,8 +18,7 @@
|
||||||
.hy
|
.hy
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
disk_space_alert - Checks available disk space and sends out
|
disk_space_alert - Checks available disk space and notifies.
|
||||||
notification via mail.
|
|
||||||
Configuration is done in environment files.
|
Configuration is done in environment files.
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
|
@ -31,7 +30,7 @@ It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
\f[B]disk_space_alert\f[R] checks available diskspace for configured
|
\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.
|
\f[B]mounts\f[R] and notifies if certain limits are reached.
|
||||||
It comes with systemd services.
|
It comes with systemd services.
|
||||||
.PP
|
.PP
|
||||||
By default, \f[B]disk_space_alert\f[R] tries to read from
|
By default, \f[B]disk_space_alert\f[R] tries to read from
|
||||||
|
@ -40,29 +39,27 @@ By default, \f[B]disk_space_alert\f[R] tries to read from
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.PP
|
||||||
The following are at least required for the script to work:
|
The following can be customized:
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
- \f[B]DISK_SPACE_ALERT_MAIL_ADDRESS=\[lq]\[lq]\f[R] which requires
|
- \f[B]DISK_SPACE_ALERT_THRESHOLD=93\f[R] in percentage.
|
||||||
\f[I]mail.rc\f[R] to be configured and `\f[I]mailx\f[R]' command has be
|
.PD 0
|
||||||
available.
|
.P
|
||||||
|
.PD
|
||||||
|
- \f[B]DISK_SPACE_ALERT_MOUNTPOINTS=(\[lq]/\[rq])\f[R] is an array of
|
||||||
|
mountpoints.
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.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
|
.PP
|
||||||
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
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.
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.disk_space_alert.conf\f[R] and add
|
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].
|
\f[I]DISK_SPACE_ALERT_THRESHOLD=\[lq]95\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
Notifications will be delivered via \f[B]notifier\f[R].
|
||||||
Examples can be found in \f[I]/usr/share/doc/disk_space_alert\f[R].
|
Examples can be found in \f[I]/usr/share/doc/disk_space_alert\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -71,5 +68,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -40,13 +40,7 @@ for configuration.
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.PP
|
||||||
The following are at least required for the script to work:
|
The following can be customized:
|
||||||
.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
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
|
@ -59,22 +53,20 @@ containers piped into the file: \f[I]docker ps \[en]format `{{.Names}}'
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
- \f[B]DOCKER_CHECK_NOTIFY_LEVELS=(\[lq]UNKNOWN\[rq] \[lq]WARNING\[rq]
|
- \f[B]DOCKER_CHECK_NOTIFY_LEVELS=(\[lq]UNKNOWN\[rq] \[lq]WARNING\[rq]
|
||||||
\[lq]CRITICAL\[rq])\f[R] determines when to notify/output/send mail.
|
\[lq]CRITICAL\[rq])\f[R] determines when to notify/output.
|
||||||
Possible: \f[I]\[lq]UNKNOWN\[rq]\f[R] \f[I]\[lq]WARNING\[rq]\f[R]
|
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].
|
\f[I]\[lq]CRITICAL\[rq]\f[R] \f[I]\[lq]INFO\[rq]\f[R].
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
- \f[B]DOCKER_CHECK_MAIL_ENABLED=false\f[R] enables or disables sending
|
|
||||||
mail notifications.
|
|
||||||
.PP
|
.PP
|
||||||
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
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.
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.docker_check.conf\f[R] and add
|
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].
|
\f[I]DOCKER_CHECK_NOTIFY_LEVELS=\[lq](WARNING)\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
Notifications will be delivered via \f[B]notifier\f[R].
|
||||||
Examples can be found in \f[I]/usr/share/doc/docker_check\f[R].
|
Examples can be found in \f[I]/usr/share/doc/docker_check\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -83,5 +75,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -77,7 +77,10 @@ default update command executed for each deployment.
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
- \f[B]DOCKER_COMPOSE_UPDATE_FAIL_ON_UPDATE_ERROR=\[lq]false\[rq]\f[R]
|
- \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
|
determines if script fails if at least one update procedure failed.
|
||||||
|
.PD 0
|
||||||
|
.P
|
||||||
|
.PD
|
||||||
.PP
|
.PP
|
||||||
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
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.
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
|
|
|
@ -40,13 +40,7 @@ configuration.
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.PP
|
||||||
The following are at least required for the script to work:
|
The following can be customized:
|
||||||
.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
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
|
@ -77,8 +71,8 @@ custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.dynv6.conf\f[R] and add
|
Create a \f[I]$HOME/.dynv6.conf\f[R] and add
|
||||||
\f[I]DYNV6_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
\f[I]DYNV6_TOKEN=\[lq]mySecretToken\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
Notifications will be delivered via \f[B]notifier\f[R].
|
||||||
Examples can be found in \f[I]/usr/share/doc/dynv6\f[R].
|
Examples can be found in \f[I]/usr/share/doc/dynv6\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -87,5 +81,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
.hy
|
.hy
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
memory_usage_alert - Checks available memory and sends out notification
|
memory_usage_alert - Checks available memory and sends out
|
||||||
via mail.
|
notifications.
|
||||||
Configuration is done in environment files.
|
Configuration is done in environment files.
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
|
@ -30,8 +30,8 @@ It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
\f[B]memory_usage_alert\f[R]
|
\f[B]memory_usage_alert\f[R]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
\f[B]memory_usage_alert\f[R] checks available memory and sends out a
|
\f[B]memory_usage_alert\f[R] checks available memory and sends
|
||||||
mail if certain limits are reached.
|
notifications if certain limits are reached.
|
||||||
It comes with systemd services.
|
It comes with systemd services.
|
||||||
.PP
|
.PP
|
||||||
By default, \f[B]memory_usage_alert\f[R] tries to read from
|
By default, \f[B]memory_usage_alert\f[R] tries to read from
|
||||||
|
@ -40,17 +40,6 @@ By default, \f[B]memory_usage_alert\f[R] tries to read from
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.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: -
|
The following are optional or have reasonable defaults: -
|
||||||
\f[B]MEMORY_USAGE_ALERT_THRESHOLD=512\f[R] threshold to warn about (in
|
\f[B]MEMORY_USAGE_ALERT_THRESHOLD=512\f[R] threshold to warn about (in
|
||||||
\f[I]megabytes\f[R])
|
\f[I]megabytes\f[R])
|
||||||
|
@ -60,8 +49,8 @@ custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.memory_usage_alert.conf\f[R] and add
|
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].
|
\f[I]MEMORY_USAGE_ALERT_THRESHOLD=\[lq]1024\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
Notifications will be delivered via \f[B]notifier\f[R].
|
||||||
Examples can be found in \f[I]/usr/share/doc/memory_usage_alert\f[R].
|
Examples can be found in \f[I]/usr/share/doc/memory_usage_alert\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -70,5 +59,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -62,7 +62,8 @@ custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.notifier.conf\f[R] and add
|
Create a \f[I]$HOME/.notifier.conf\f[R] and add
|
||||||
\f[I]NOTIFIER_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
\f[I]NOTIFIER_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
Notifications will be delivered to alias\[at]domain.tld or via gotify if
|
||||||
|
enabled.
|
||||||
Examples can be found in \f[I]/usr/share/doc/notifier\f[R].
|
Examples can be found in \f[I]/usr/share/doc/notifier\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -73,6 +74,6 @@ Success
|
||||||
Error
|
Error
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.PP
|
.PP
|
||||||
system-helpers
|
\f[B]system-helpers\f[R]
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -30,7 +30,7 @@ It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
\f[B]smart_tests_long\f[R] checks for available updates using
|
\f[B]smart_tests_long\f[R] checks for available updates using
|
||||||
\f[I]smartctl\f[R] and sends out a mail.
|
\f[I]smartctl\f[R] and notifies.
|
||||||
It comes with systemd services.
|
It comes with systemd services.
|
||||||
.PP
|
.PP
|
||||||
By default, \f[B]smart_tests_long\f[R] tries to read from
|
By default, \f[B]smart_tests_long\f[R] tries to read from
|
||||||
|
@ -39,13 +39,10 @@ By default, \f[B]smart_tests_long\f[R] tries to read from
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.PP
|
||||||
The following are at least required for the script to work:
|
The following can be customized:
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
- \f[B]SMARTCTL_TESTS_LONG_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.
|
|
||||||
- \f[B]SMARTCTL_TESTS_LONG_DEVICES=(sda)\f[R] array of block devices
|
- \f[B]SMARTCTL_TESTS_LONG_DEVICES=(sda)\f[R] array of block devices
|
||||||
(not partitions!)
|
(not partitions!)
|
||||||
to check.
|
to check.
|
||||||
|
@ -55,9 +52,9 @@ custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.smartctl_tests_long.conf\f[R] and add
|
Create a \f[I]$HOME/.smartctl_tests_long.conf\f[R] and add
|
||||||
\f[I]SMARTCTL_TESTS_LONG_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
\f[I]SMARTCTL_TESTS_LONG_DEVICES=\[lq](nvme1 sdc sdf)\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld for default
|
Notifications will be delivered via \f[B]notifier\f[R] for default block
|
||||||
block device \f[B]sda\f[R].
|
device \f[B]sda\f[R].
|
||||||
Examples can be found in \f[I]/usr/share/doc/smart_tests_long\f[R].
|
Examples can be found in \f[I]/usr/share/doc/smart_tests_long\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -66,5 +63,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -50,8 +50,9 @@ images
|
||||||
update check for pacman (ArchLinux specific, see \f[B]man
|
update check for pacman (ArchLinux specific, see \f[B]man
|
||||||
check_updates\f[R])
|
check_updates\f[R])
|
||||||
.PP
|
.PP
|
||||||
Provided systemd services mostly support mail notifications if they have
|
Provided systemd services mostly support notifications if they have
|
||||||
failed via \f[B]systemd_failure_notify\f[R].
|
failed via \f[B]systemd_failure_notify\f[R] which uses
|
||||||
|
\f[B]notifier\f[R] (see \f[B]man notifier\f[R]).
|
||||||
.PP
|
.PP
|
||||||
See \f[I]/usr/share/doc/system-helpers\f[R] for example configurations
|
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]
|
which should be copied inside \f[B]$HOME\f[R] or \f[B]/etc\f[R]
|
||||||
|
|
|
@ -40,7 +40,7 @@ By default, \f[B]systemd_check\f[R] tries to read from
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.PP
|
||||||
The following are at least required for the script to work:
|
The following can be customized:
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.PD
|
||||||
|
@ -50,22 +50,14 @@ by lines.
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
.PD
|
.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
|
.PP
|
||||||
You can copy this script to \f[I]/usr/local/bin\f[R] and use create a
|
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.
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.systemd_check.conf\f[R] and add
|
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].
|
\f[I]SYSTEMD_CHECK_LIST_FILE=\[lq]/other/path/to/list\[rq]\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
Notifications will be delivered via \f[B]notifier\f[R].
|
||||||
Examples can be found in \f[I]/usr/share/doc/systemd_check\f[R].
|
Examples can be found in \f[I]/usr/share/doc/systemd_check\f[R].
|
||||||
.SH EXIT VALUES
|
.SH EXIT VALUES
|
||||||
.TP
|
.TP
|
||||||
|
@ -74,5 +66,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
|
@ -18,8 +18,7 @@
|
||||||
.hy
|
.hy
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.PP
|
.PP
|
||||||
systemd_failure_notify - Notifies via mail or gotify when a service has
|
systemd_failure_notify - Invokes when a systemd service has failed.
|
||||||
failed.
|
|
||||||
Configuration is done in environment files.
|
Configuration is done in environment files.
|
||||||
.PD 0
|
.PD 0
|
||||||
.P
|
.P
|
||||||
|
@ -30,8 +29,7 @@ It\[cq]s part of \f[B]system-helpers\f[R].
|
||||||
\f[B]systemd_failure_notify\f[R] [SERVICE]
|
\f[B]systemd_failure_notify\f[R] [SERVICE]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
\f[B]systemd_failure_notify\f[R] executes \f[I]mailx\f[R] or
|
\f[B]systemd_failure_notify\f[R] triggered when systemd services fail.
|
||||||
\f[I]gotify\f[R] to send out notifications.
|
|
||||||
It comes with systemd services.
|
It comes with systemd services.
|
||||||
Use the provided systemd service in the \f[B]OnFailure\f[R] directive
|
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].
|
with \f[I]OnFailure=systemd_failure_notify\[at]%n.service\f[R].
|
||||||
|
@ -42,37 +40,12 @@ By default, \f[B]systemd_failure_notify\f[R] tries to read from
|
||||||
It will exit with a non-zero exit code if it cannot find a proper
|
It will exit with a non-zero exit code if it cannot find a proper
|
||||||
configuration file.
|
configuration file.
|
||||||
.PP
|
.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.
|
|
||||||
.PD 0
|
|
||||||
.P
|
|
||||||
.PD
|
|
||||||
.PP
|
|
||||||
The following are optional and integrate gotify-cli to send
|
|
||||||
notifications, it defaults to false:
|
|
||||||
.PD 0
|
|
||||||
.P
|
|
||||||
.PD
|
|
||||||
- \f[B]SYSTEMD_FAILURE_NOTIFY_GOTIFY_ENABLED=\[lq]true\[rq]\f[R] uses
|
|
||||||
\f[I]gotify\f[R] command which 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
|
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.
|
custom \f[B]CONFIG_FILE\f[R] as user.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.PP
|
.PP
|
||||||
Create a \f[I]$HOME/.systemd_failure_notify.conf\f[R] and add
|
Create a \f[I]$HOME/.systemd_failure_notify.conf\f[R].
|
||||||
\f[I]SYSTEMD_FAILURE_NOTIFY_MAIL_ADDRESS=\[lq]alias\[at]domain.tld\[rq]\f[R].
|
Notifications will be delivered via \f[B]notifier\f[R].
|
||||||
Notifications will be delivered to alias\[at]domain.tld.
|
|
||||||
Examples can be found in
|
Examples can be found in
|
||||||
\f[I]/usr/share/doc/systemd_failure_notify\f[R].
|
\f[I]/usr/share/doc/systemd_failure_notify\f[R].
|
||||||
.PP
|
.PP
|
||||||
|
@ -94,5 +67,8 @@ Success
|
||||||
.TP
|
.TP
|
||||||
\f[B]1\f[R]
|
\f[B]1\f[R]
|
||||||
Error
|
Error
|
||||||
|
.SH SEE ALSO
|
||||||
|
.PP
|
||||||
|
\f[B]notifier\f[R] - used as notification application
|
||||||
.SH AUTHORS
|
.SH AUTHORS
|
||||||
Alexander Sch\[:a]ferdiek.
|
Alexander Sch\[:a]ferdiek.
|
||||||
|
|
Loading…
Reference in a new issue