2.5 KiB
2.5 KiB
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 ...