mirror of
https://github.com/mag37/dockcheck.git
synced 2026-04-18 10:27:54 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae53fe2cc7 | ||
|
|
722fb90ce2 | ||
|
|
18947a462d | ||
|
|
e331dda080 |
@@ -17,12 +17,12 @@
|
|||||||
|
|
||||||
___
|
___
|
||||||
## :bell: Changelog
|
## :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.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.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.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.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
|
## :nut_and_bolt: Dependencies
|
||||||
@@ -84,6 +84,8 @@ Current templates:
|
|||||||
- Apprise (with it's [multitude](https://github.com/caronc/apprise#supported-notifications) of notifications)
|
- 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)
|
- 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)
|
- 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!
|
Further additions are welcome - suggestions or PR!
|
||||||
<sub><sup>Initiated and first contributed by [yoyoma2](https://github.com/yoyoma2).</sup></sub>
|
<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
|
#!/usr/bin/env bash
|
||||||
VERSION="v0.3.4"
|
VERSION="v0.3.6"
|
||||||
### ChangeNotes: Added ntfy.sh template and error message on registry fail.
|
### ChangeNotes: Added a Pushbullet template.
|
||||||
Github="https://github.com/mag37/dockcheck"
|
Github="https://github.com/mag37/dockcheck"
|
||||||
RawUrl="https://raw.githubusercontent.com/mag37/dockcheck/main/dockcheck.sh"
|
RawUrl="https://raw.githubusercontent.com/mag37/dockcheck/main/dockcheck.sh"
|
||||||
|
|
||||||
@@ -128,6 +128,17 @@ datecheck() {
|
|||||||
fi
|
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 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 ; }
|
[[ "$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"
|
printf "\n"
|
||||||
fi
|
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
|
### Check the image-hash of every running container VS the registry
|
||||||
for i in $(docker ps $Stopped --filter "name=$SearchName" --format '{{.Names}}') ; do
|
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:
|
### Looping every item over the list of excluded names and skipping:
|
||||||
for e in "${Excludes[@]}" ; do [[ "$i" == "$e" ]] && continue 2 ; done
|
for e in "${Excludes[@]}" ; do [[ "$i" == "$e" ]] && continue 2 ; done
|
||||||
printf ". "
|
|
||||||
RepoUrl=$(docker inspect "$i" --format='{{.Config.Image}}')
|
RepoUrl=$(docker inspect "$i" --format='{{.Config.Image}}')
|
||||||
LocalHash=$(docker image inspect "$RepoUrl" --format '{{.RepoDigests}}')
|
LocalHash=$(docker image inspect "$RepoUrl" --format '{{.RepoDigests}}')
|
||||||
### Checking for errors while setting the variable:
|
### Checking for errors while setting the variable:
|
||||||
@@ -301,3 +317,4 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
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