Some useful bash scripts.
This repository has been archived on 2023-09-23. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2021-05-16 00:27:56 +02:00
node_exporter updated node_exporter scripts 2021-05-16 00:27:56 +02:00
.gitignore added scripts and setup.sh 2020-05-21 01:57:45 +02:00
docker-compose-up-all.sh improved docker-compose-up-all.sh 2020-12-13 23:40:43 +01:00
docker-stack-deploy-all.sh updated docker-compose-up-all.sh 2020-10-19 19:59:22 +02:00
healthcheck.sh added scripts and setup.sh 2020-05-21 01:57:45 +02:00
LICENSE Initial commit 2020-05-20 23:46:30 +00:00
login-notify.sh updated node_exporter scripts 2021-05-16 00:27:56 +02:00
README.md updated node_exporter scripts 2021-05-16 00:27:56 +02:00
setup.sh updated setup.sh and README.md 2020-06-15 18:00:27 +02:00
update-notify.sh extended update-notify.sh to send a notification if a reboot is needed 2021-01-12 20:38:21 +01:00
validate-remote-backup.sh added scripts and setup.sh 2020-05-21 01:57:45 +02:00

awesome-scripts

Some useful bash scripts.

Content

Script Description
healthcheck.sh Script to use as cron wrap to monitor the job with health.sp-codes.de
login-notify.sh Script to send an alert on ssh login
validate-remote-backup.sh Script to validate server side rsync command to use ssh force command
docker-compose-up-all.sh Script to call docker-compose up -d on all subdirectories
docker-stack-deploy-all.sh Script to call docker stack deploy on all subdirectories
node_dir_size_exporter.sh Script to call du on a given directory to export the size to prometheus
update-notify.sh Script to call apt to check the host for new updates and notify in gotify

node_exporter

Script Description
active-sessions.sh Script to export all active sessions to prometheus
directory-size.sh Script to export directory sizes to prometheus

Setup

To set up all scripts in the current directory run this:

curl https://git.sp-codes.de/samuel-p/awesome-scripts/raw/branch/master/setup.sh | bash -s healthcheck.sh login-notify.sh validate-remote-backup.sh docker-compose-up-all.sh docker-stack-deploy-all.sh update-notify.sh
curl https://git.sp-codes.de/samuel-p/awesome-scripts/raw/branch/master/setup.sh | bash -s active-sessions.sh directory-size.sh

Usage

healthcheck.sh

Just use it like this in a cronjob:

0 0 * * * /root/healthcheck.sh 333a77a4-a63e-4885-a045-d52a4f6a3d2f /root/backup.sh > /root/log/last-backup.log 2>&1

The first parameter is the healthcheck uuid instead of the script file you can als pass the command to execute directly after the uuid. The pipe to put all output to a log file is also optional.

login-notify.sh

Place a .gotify file in the same direction as the script and put the application token in. Append the following line to /etc/pam.d/sshd:

session optional pam_exec.so seteuid /path/to/login-notify.sh

node_exporter

Add the following in crontab:

*/5 * * * * /root/exporter/directory-size.sh "<your_dir_pattern>" "<your_key>" | sponge /path/to/textfiles/directory-size.prom
* * * * * /root/exporter/active-sessions.sh | sponge /path/to/textfiles/active-sessions.prom

Add the textfiles dir as param to node_exporter:

node_exporter --collector.textfile.directory /path/to/textfiles ...