Some useful bash scripts.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Samuel Philipp c4572898d5
added apt.sh
6 months ago
node_exporter added apt.sh 6 months ago
.gitignore added scripts and setup.sh 2 years ago
LICENSE Initial commit 2 years ago
README.md added apt.sh 6 months ago
docker-compose-up-all.sh improved docker-compose-up-all.sh 12 months ago
healthcheck.sh added scripts and setup.sh 2 years ago
login-notify.sh updated node_exporter scripts 7 months ago
setup.sh updated setup.sh and README.md 1 year ago
update-notify.sh extended update-notify.sh to send a notification if a reboot is needed 11 months ago
validate-remote-backup.sh added scripts and setup.sh 2 years ago

README.md

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
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
apt.sh Script to export pending apt updates 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 update-notify.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 ...