|
1 | 1 | # Bash Script Collection |
2 | 2 |
|
| 3 | +## Table of Contents |
| 4 | +- [About](#about) |
| 5 | +- [Scripts](#scripts) |
| 6 | +- [Dependencies](#dependencies) |
| 7 | +- [License](#license) |
| 8 | +- [Contributing](#contributing) |
| 9 | +- [Captive DNS (`captive-dns.bash`)](#captive-dns-captive-dnsbash) |
| 10 | +- [Linode Dynamic DNS (`linode-dynamic-dns.bash`)](#linode-dynamic-dns-linode-dynamic-dnsbash) |
| 11 | +- [Plex DLP Mirror (`plex-dlp-mirror.bash`)](#plex-dlp-mirror-plex-dlp-mirrorbash) |
| 12 | +- [Plex Update TBA (`plex-update-tba.bash`)](#plex-update-tba-plex-update-tbabash) |
| 13 | +- [Sonarr Group Notifications (`sonarr-group-notifications.bash`)](#sonarr-group-notifications-sonarr-group-notificationsbash) |
| 14 | +- [Sonarr Update TBA (`sonarr-update-tba.bash`)](#sonarr-update-tba-sonarr-update-tbabash) |
| 15 | +- [Unifi Client Monitor (`unifi_client_monitor.bash`)](#unifi-client-monitor-unifi_client_monitorbash) |
| 16 | +- [Update Plex in Docker (`update-plex-in-docker.bash`)](#update-plex-in-docker-update-plex-in-dockerbash) |
| 17 | +- [YouTube to Podcast (`youtube_to_podcast.bash`)](#youtube-to-podcast-youtube_to_podcastbash) |
| 18 | +- [Todo](#todo) |
| 19 | +- [Done ✓](#done-) |
| 20 | + |
3 | 21 | ## About |
4 | 22 |
|
5 | 23 | This repository contains a collection of Bash scripts designed for various automation and utility tasks. These scripts are primarily passion projects. I have a moderate amount of skill in bash. I am certainly no expert, but I am no novice either. There are likely better ways to execute the flow of logic I am trying to achieve in these scripts! If you have a suggestion, I would welcome a pull request. All scripts require **Bash version 4 or greater** to run. |
@@ -142,29 +160,6 @@ If you happen to find these scripts particularly helpful and have a few bucks to |
142 | 160 |
|
143 | 161 | --- |
144 | 162 |
|
145 | | -### Unifi Client Monitor (`unifi_client_monitor.bash`) |
146 | | - |
147 | | -* **Purpose**: Monitors `/var/log/daemon.log` on a Unifi device (likely a UDM) for DHCPACK entries, logs new client connections to an SQLite database, and sends Telegram notifications for newly seen clients or MAC addresses. |
148 | | -* **Requirements**: |
149 | | - * `yq` (will attempt to download if missing) |
150 | | - * `sqlite3` (will attempt to `apt install` if missing) |
151 | | - * Dependencies: `curl`, `date`, `sqlite3`, `yq` |
152 | | -* **Installation**: |
153 | | - 1. Download the `.bash` script and `unifi_client_monitor.env.example`. |
154 | | - 2. Rename `unifi_client_monitor.env.example` to `unifi_client_monitor.env` and customize with Telegram bot details and local DNS server IP. |
155 | | - 3. Place both files in a suitable directory on your Unifi device. |
156 | | - 4. Make the script executable: `chmod +x unifi_client_monitor.bash`. |
157 | | - 5. Run the script; it will background itself to continuously monitor the log. Consider using [on-boot.d](https://github.com/unifi-utilities/unifios-utilities/tree/main/on-boot-script-2.x) for persistance. |
158 | | -* **Features**: |
159 | | - * Continuously monitors `/var/log/daemon.log` for new DHCP leases. |
160 | | - * Logs new client details (VLAN, MAC, IP, Name from DHCP, Timestamp) to an SQLite database (`.unifi_client_monitor.db`). |
161 | | - * Sends a Telegram notification when a new client (or a known MAC with a new IP/VLAN) is detected. |
162 | | - * Checks against a local DNS server for a hostname associated with the new IP address. |
163 | | - * Indicates if the MAC address has been seen before. |
164 | | - * Manages a lockfile to prevent concurrent execution of the main script (the monitoring part runs in the background). |
165 | | - |
166 | | ---- |
167 | | - |
168 | 163 | ### Update Plex in Docker (`update-plex-in-docker.bash`) |
169 | 164 |
|
170 | 165 | * **Purpose**: Automates the update process for official Plex Media Server Docker containers. It checks the currently running version against the latest available from Plex.tv and, if an update is found and no one is actively using Plex, restarts the container to apply the update. |
|
0 commit comments