| check.business.ru_monitor | ||
| .gitignore | ||
| build-python.sh | ||
| cert-info.sh | ||
| ds18b20-over-ssh.sh | ||
| LICENSE | ||
| README.md | ||
| sendmail.py | ||
| simplewc.py | ||
utils
Small tools needed to solve immediate tasks independently or as part of a project
build-python.sh
Description:
Building Python from sources.
Dependencies:
- bash (tested versions: 5.1.4 on Debian GNU/Linux 11, 5.0.17 on Ubuntu 20, 4.2.46 on CentOS 7)
| POSITION | PARAMETERS | DESCRIPTION | DEFAULT |
|---|---|---|---|
| 1 | [qn] | execution without pauses | |
| 2 | [version] | version of Python | 3.9.5 |
| 3 | [path/to/log] | path to log | /dev/null |
Example usage build-python.sh in terminal with make the script executable
wget https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/build-python.sh
chmod u+x ./build-python.sh
sudo ./build-python.sh - 3.9.5
Example usage build-python.sh in terminal without download
sudo su - -c "bash <(curl -s https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/build-python.sh) qn 3.9.5 install-python.log"
cert-info.sh
Description:
Get certificate info.
Dependencies:
| POSITION | PARAMETERS | DESCRIPTION | DEFAULT |
|---|---|---|---|
| 1 | [hostname:port | /path/to/cert] | certificate location | |
| 2 | [-e] | print of the expired date timestamp | |
| 2 | [-f] | print of the fingerprint | |
| 2 | [-r] | print of the remaining days |
Example usage cert-info.sh in terminal with make the script executable
# download
sudo wget https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/cert-info.sh -O /usr/local/bin/cert-info.sh
sudo chmod +x /usr/local/bin/cert-info.sh
# check cert
cert-info.sh www.hmp.today
cert-info.sh /etc/ssl/certs/ca-certificates.crt
Example usage cert-info.sh in terminal without download
bash <(curl -s https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/cert-info.sh) www.hmp.today
bash <(wget -qO- https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/cert-info.sh) www.hmp.today
Example usage cert-info.sh in Zabbix
# download
sudo wget https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/cert-info.sh -O /usr/lib/zabbix/externalscripts/cert-info.sh
sudo chmod +x /usr/lib/zabbix/externalscripts/cert-info.sh
Zabbix Server - Administration - Scripts - Create scripts
| PARAMETER | VALUE |
|---|---|
| Name | Check SSL certificate |
| Scope | Manual host action |
| Type | Script |
| Execute on | Zabbix server (proxy) |
| Commands | /usr/lib/zabbix/externalscripts/cert-info.sh {$URL} |
| Description | Load certificate info from {$URL} host macro |
Zabbix Server - Configuration - Hosts - "hostname" - Macros - Add
| MACRO | VALUE |
|---|---|
| {$URL} | hostname:port |
Zabbix Server - Monitoring - Hosts - "hostname" - Check SSL certificate
ds18b20-over-ssh.sh
Description:
Get ds18b20 sensor value.
Dependencies:
- bash (tested versions: 5.1.16 on Ubuntu 22.04)
- sshpass (tested version 1.0.9 on Ubuntu 22.04)
| POSITION | PARAMETERS | DESCRIPTION | DEFAULT |
|---|---|---|---|
| 1 | [host] | ssh host | REQUIRED |
| 2 | [port] | ssh port | REQUIRED |
| 3 | [user] | ssh username | REQUIRED |
| 4 | [pass] | ssh password | REQUIRED |
| 5 | [node] | ds18b20 node | REQUIRED |
Example usage ds18b20-over-ssh.sh in terminal with make the script executable
# download
sudo wget https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/ds18b20-over-ssh.sh -O /usr/local/bin/ds18b20-over-ssh.sh
sudo chmod +x /usr/local/bin/ds18b20-over-ssh.sh
# check ds18b20 value
ds18b20-over-ssh.sh host.domain.zone 22 root password 28-0a1b2c3d4e5f
Example usage ds18b20-over-ssh.sh in terminal without download
bash <(curl -s https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/ds18b20-over-ssh.sh) host.domain.zone 22 root password 28-0a1b2c3d4e5f
bash <(wget -qO- https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/ds18b20-over-ssh.sh) host.domain.zone 22 root password 28-0a1b2c3d4e5f
Example usage ds18b20-over-ssh.sh in Zabbix
# download
sudo wget https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/ds18b20-over-ssh.sh -O /usr/lib/zabbix/externalscripts/ds18b20-over-ssh.sh
sudo chmod +x /usr/lib/zabbix/externalscripts/ds18b20-over-ssh.sh
Zabbix Server - Administration - Scripts - Create scripts
| PARAMETER | VALUE |
|---|---|
| Name | Check ds18b20 over SSH |
| Scope | Manual host action |
| Type | Script |
| Execute on | Zabbix server (proxy) |
| Commands | /usr/lib/zabbix/externalscripts/ds18b20-over-ssh.sh {$HOST} {$PORT} {$USER} {$PASS} {$NODE} |
| Description | Get temperature from {$NODE} sensor over SSH |
Zabbix Server - Configuration - Hosts - "hostname" - Macros - Add
| MACRO | VALUE |
|---|---|
| {$HOST} | host.domain.zone |
| {$PORT} | 22 |
| {$USER} | root |
| {$PASS} | password |
| {$NODE} | 28-0a1b2c3d4e5f |
Zabbix Server - Monitoring - Hosts - "hostname" - Check ds18b20 over SSH
sendmail.py
Description:
Sending email from Python.
Dependencies:
- Python 3 (tested version 3.9.5 on Debian GNU/Linux 11)
| PARAMETERS | DESCRIPTION | DEFAULT |
|---|---|---|
| -u, --user | smtp valid user | REQUIRED |
| -p, --pass | smtp valid password | REQUIRED |
| -d, --dest | destination addresses | REQUIRED |
| [-h] | print help and exit | |
| [--smtp] | smtp hostname or ip address | smtp.gmail.com |
| [--port] | smtp port number | 587 |
| [--stls] | smtp required TLS | True |
| [--from] | mail from alias | --user value |
| [--subj] | mail subject | 'no subject' |
| [--text] | mail body text | 'no text' |
| [--type] | mail body type: plain, html | plain |
| [--file] | mail attachment files | None |
| [--time] | minutes of attempts to send | 3 |
Example usage sendmail.py in terminal with make the script executable
# download
sudo wget https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/sendmail.py -O /usr/local/bin/sendmail.py
sudo chmod +x /usr/local/bin/sendmail.py
# example 1
sendmail.py -u user@gmail.com -p password -d addr1@gmail.com,addr2@gmail.com
# example 2
/usr/local/opt/python-3.9/bin/python3.9 /usr/local/bin/sendmail.py -u user@gmail.com -p password -d addr1@gmail.com,addr2@gmail.com --file "/path/to/file1,/path/to/file2"
Example usage sendmail.py in terminal without download
python3 <(curl -s https://git.hmp.today/pavel.muhortov/utils/raw/branch/master/sendmail.py) \
--user user@gmail.com \
--pass password \
--dest addr1@gmail.com,addr2@gmail.com \
--subj "test subject" \
--text "test body" \
--file "/path/to/file1,/path/to/file2"
Example usage sendmail.py in Python
from sendmail import Mail
msg = Mail(smtp_user='user@gmail.com', smtp_pass='password', mail_dest='addr1@gmail.com,addr2@gmail.com')
log = msg.send()
print(log)
simplewc.py
Description:
Update Let's Encrypt wildcard certificate with DNS-01 challenge.
Dependencies:
- Python 3 (tested version 3.9.5 on Debian GNU/Linux 11)
- installed or downloaded acme.sh
- installed dnspython package
- dns is supported to dynamic update
| PARAMETERS | DESCRIPTION | DEFAULT |
|---|---|---|
| --domain | domain for which the wildcard certificate is issued | REQUIRED |
| --server | master server containing the domain zone | REQUIRED |
| --keyname | name of the key to update the zone | REQUIRED |
| --keydata | content of the key to update the zone | REQUIRED |
| [-h] | print help and exit | |
| [--acmepath] | alternative path to bin (example: ~/.acme.sh/acme.sh) | None |
| [--force] | "force" argument for the acme.sh | False |
| [--test] | "test" argument for the acme.sh | False |
Example usage simplewc.py in cron with Python
# at 00:00 on Monday
0 0 * * 1 /usr/bin/python3 ~/simplewc.py --domain EXAMPLE.COM --server 8.8.8.8 --keyname KEY --keydata YOU_KEY_CONTENT > /dev/null
# 00:00 on day-of-month 1 and 15
0 0 1,15 * * /usr/bin/python3 ~/simplewc.py --domain EXAMPLE.COM --server dyn.dns.he.net --keyname - --keydata YOU_DDNSKEY > /dev/null
Example usage simplewc.py in terminal with make the script executable
chmod u+x ./simplewc.py
./simplewc.py --domain EXAMPLE.COM --server 8.8.8.8 --keyname KEY --keydata YOU_KEY_CONTENT --test --force
./simplewc.py --domain EXAMPLE.COM --server dyn.dns.he.net --keyname - --keydata YOU_DDNSKEY --test --force