mirror of
https://github.com/mag37/dockcheck.git
synced 2026-04-17 18:07:46 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae53fe2cc7 | ||
|
|
722fb90ce2 | ||
|
|
18947a462d | ||
|
|
e331dda080 |
@@ -17,12 +17,12 @@
|
||||
|
||||
___
|
||||
## :bell: Changelog
|
||||
- **v0.3.6**: Added pushbullet template.
|
||||
- **v0.3.5**: Added a simple progress bar for the registry checkup.
|
||||
- **v0.3.4**: Added ntfy.sh template and error message on registry fail.
|
||||
- **v0.3.3**: Added Apprise template and the option `-i` inform - to send notifications.
|
||||
- **v0.3.2**: Added a notify function to wrap a notify-script, currently DSM/Ssmtp + template script.
|
||||
- **v0.3.1**: Addded option `-m` , monochrome mode - no printf color codes.
|
||||
- **v0.3.0**: Added option `-d N`, age (days) new images have to be before being pulled and updated.
|
||||
- **v0.2.6**: regctl check / download logic changed. Now using the scripts directory as primary location.
|
||||
___
|
||||
|
||||
## :nut_and_bolt: Dependencies
|
||||
@@ -84,6 +84,8 @@ Current templates:
|
||||
- Apprise (with it's [multitude](https://github.com/caronc/apprise#supported-notifications) of notifications)
|
||||
- both native [caronc/apprise](https://github.com/caronc/apprise) and the standalone [linuxserver/docker-apprise-api](https://github.com/linuxserver/docker-apprise-api)
|
||||
- Read the [QuickStart](extras/apprise_quickstart.md)
|
||||
- [ntfy.sh](https://ntfy.sh/) - HTTP-based pub-sub notifications.
|
||||
- [Pushbullet](https://www.pushbullet.com/) - connecting different devices with cross-platform features.
|
||||
|
||||
Further additions are welcome - suggestions or PR!
|
||||
<sub><sup>Initiated and first contributed by [yoyoma2](https://github.com/yoyoma2).</sup></sub>
|
||||
|
||||
23
dockcheck.sh
23
dockcheck.sh
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
VERSION="v0.3.4"
|
||||
### ChangeNotes: Added ntfy.sh template and error message on registry fail.
|
||||
VERSION="v0.3.6"
|
||||
### ChangeNotes: Added a Pushbullet template.
|
||||
Github="https://github.com/mag37/dockcheck"
|
||||
RawUrl="https://raw.githubusercontent.com/mag37/dockcheck/main/dockcheck.sh"
|
||||
|
||||
@@ -128,6 +128,17 @@ datecheck() {
|
||||
fi
|
||||
}
|
||||
|
||||
progress_bar() {
|
||||
QueCurrent="$1"
|
||||
QueTotal="$2"
|
||||
((Percent=100*${QueCurrent}/${QueTotal}))
|
||||
((Complete=50*${Percent}/100)) # change first number for width (50)
|
||||
((Left=50-${Complete})) # change first number for width (50)
|
||||
BarComplete=$(printf "%${Complete}s" | tr " " "#")
|
||||
BarLeft=$(printf "%${Left}s" | tr " " "-")
|
||||
[[ $QueTotal == $QueCurrent ]] || printf "\r[%s%s] %s/%s " $BarComplete $BarLeft $QueCurrent $QueTotal
|
||||
[[ $QueTotal == $QueCurrent ]] && printf "\r[%b%s%b] %s/%s \n" $c_teal $BarComplete $c_reset $QueCurrent $QueTotal
|
||||
}
|
||||
|
||||
### Version check & initiate self update
|
||||
[[ "$VERSION" != "$LatestRelease" ]] && { printf "New version available! Local: %s - Latest: %s \n Change Notes: %s \n" "$VERSION" "$LatestRelease" "$LatestChanges" ; [[ -z "$AutoUp" ]] && self_update_select ; }
|
||||
@@ -190,11 +201,16 @@ if [[ -n ${Excludes[*]} ]] ; then
|
||||
printf "\n"
|
||||
fi
|
||||
|
||||
# Variables for progress_bar function
|
||||
DocCount=$(docker ps --filter "name=$SearchName" --format '{{.Names}}' | wc -l)
|
||||
RegCheckQue=0
|
||||
|
||||
### Check the image-hash of every running container VS the registry
|
||||
for i in $(docker ps $Stopped --filter "name=$SearchName" --format '{{.Names}}') ; do
|
||||
((RegCheckQue+=1))
|
||||
progress_bar $RegCheckQue $DocCount
|
||||
### Looping every item over the list of excluded names and skipping:
|
||||
for e in "${Excludes[@]}" ; do [[ "$i" == "$e" ]] && continue 2 ; done
|
||||
printf ". "
|
||||
RepoUrl=$(docker inspect "$i" --format='{{.Config.Image}}')
|
||||
LocalHash=$(docker image inspect "$RepoUrl" --format '{{.RepoDigests}}')
|
||||
### Checking for errors while setting the variable:
|
||||
@@ -301,3 +317,4 @@ else
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
27
notify_pushbullet.sh
Normal file
27
notify_pushbullet.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
|
||||
#
|
||||
# Copy/rename this file to notify.sh to enable the notification snippet.
|
||||
# Required receiving services must already be set up.
|
||||
# Requires jq installed and in PATH.
|
||||
# Modify to fit your setup - set Url and Token.
|
||||
|
||||
send_notification() {
|
||||
Updates=("$@")
|
||||
UpdToString=$( printf "%s\n" "${Updates[@]}" )
|
||||
FromHost=$(hostname)
|
||||
|
||||
# platform specific notification code would go here
|
||||
printf "\nSending pushbullet notification\n"
|
||||
|
||||
MessageTitle="$FromHost - updates available."
|
||||
# Setting the MessageBody variable here.
|
||||
MessageBody="Containers on $FromHost with updates available: $UpdToString"
|
||||
|
||||
# Modify to fit your setup:
|
||||
PushUrl="https://api.pushbullet.com/v2/pushes"
|
||||
PushToken="Your Pushbullet token here"
|
||||
|
||||
# Requires jq to process json data
|
||||
jq -n --arg title "$MessageTitle" --arg body "$MessageBody" '{body: $body, title: $title, type: "note"}' | curl -sS -o /dev/null --show-error --fail -X POST -H "Access-Token: $PushToken" -H "Content-type: application/json" $PushUrl -d @-
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user