new: [check services] add check_service script and cron job
This commit is contained in:
35
bin/cron/check_services
Executable file
35
bin/cron/check_services
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
SHELL=/bin/bash
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
|
|
||||||
|
## launch vps check-service and if the result is not empty: send a notification
|
||||||
|
## If the result is empty, remove the state file
|
||||||
|
## ``vps check-service`` output is filled only if there is a problem
|
||||||
|
|
||||||
|
|
||||||
|
STATE_WORKING_DIR="/var/run/elab-manage"
|
||||||
|
mkdir -p "$STATE_WORKING_DIR"
|
||||||
|
STATE_CHECK_SERVICE="$STATE_WORKING_DIR/check_service.state"
|
||||||
|
|
||||||
|
|
||||||
|
vps_check_service=$(vps check-service)
|
||||||
|
|
||||||
|
if [ -n "$vps_check_service" ]; then
|
||||||
|
msg="New"
|
||||||
|
if [ -e "$STATE_CHECK_SERVICE" ]; then
|
||||||
|
if [[ "$(cat "$STATE_CHECK_SERVICE")" == "$vps_check_service" ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
msg="Changed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$vps_check_service" > "$STATE_CHECK_SERVICE"
|
||||||
|
title="alert: check-service failed"
|
||||||
|
message="$vps_check_service"
|
||||||
|
echo "MESSAGE: '$message'" >&2
|
||||||
|
send -c check-service.alert -t "$title ($msg)" "$message"
|
||||||
|
else
|
||||||
|
if [ -e "$STATE_CHECK_SERVICE" ]; then
|
||||||
|
rm "$STATE_CHECK_SERVICE"
|
||||||
|
fi
|
||||||
|
fi
|
@@ -6,13 +6,13 @@ REPO_PATH="/opt/apps/elab-manage"
|
|||||||
# Function to update the git repository
|
# Function to update the git repository
|
||||||
update_repo() {
|
update_repo() {
|
||||||
echo "Updating the git repository..."
|
echo "Updating the git repository..."
|
||||||
cd "$REPO_PATH" || {
|
cd "$REPO_PATH" || {
|
||||||
echo "Error: Unable to find the repository at $REPO_PATH";
|
echo "Error: Unable to find the repository at $REPO_PATH";
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
git pull -r || {
|
git pull -r || {
|
||||||
echo "Error: Unable to update the repository";
|
echo "Error: Unable to update the repository";
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,9 +22,9 @@ update_repo() {
|
|||||||
update_symlinks() {
|
update_symlinks() {
|
||||||
echo "Updating symbolic links for cron.daily..."
|
echo "Updating symbolic links for cron.daily..."
|
||||||
# Update or add new symbolic links for cron.daily and cron.hourly
|
# Update or add new symbolic links for cron.daily and cron.hourly
|
||||||
for dir in "cron."{daily,hourly}; do
|
for dir in "cron."{d,daily,hourly,mounthly,weekly}; do
|
||||||
find -L /etc/$dir -maxdepth 1 -type l -ilname $REPO_PATH/etc/$dir\* -delete
|
find -L /etc/$dir -maxdepth 1 -type l -ilname $REPO_PATH/etc/$dir\* -delete
|
||||||
ln -sf $REPO_PATH/etc/$dir/* /etc/$dir
|
ln -sf $REPO_PATH/etc/$dir/* /etc/$dir
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Symbolic links have been successfully updated."
|
echo "Symbolic links have been successfully updated."
|
||||||
|
4
etc/cron.d/check_services
Executable file
4
etc/cron.d/check_services
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
SHELL=/bin/bash
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
|
|
||||||
|
*/10 * * * * root lock check_services_elabore -v -D -p 10 -k -c "/opt/apps/elab-manage/bin/cron/check_services" 2>&1 | logger -t check-services-elabore
|
Reference in New Issue
Block a user