01-26-2011 08:58 AM
01-26-2011 10:17 AM
01-26-2011 01:07 PM
01-27-2011 03:49 AM
08-03-2011 05:02 AM
#!/bin/sh
# #################################################################
# Script to monitor a server
# #################################################################
####################
# CONFIGURATION USER
####################
### Check Disk Space
CHECK_DISKSPACE_ENABLE="true" #"true" or "false"
# Write the partition with the limit maximum size(if the limit is a size, put the same unit than the command "df -h" show the partition
# "/dev/sda1=90%" means that an alert mail will be sent if the disk used is more or egal than 90%
# "/dev/sda1=10G" means that an alert mail will be sent if the disk used is more or egal than 10G
CHECK_DISKSPACE_PARTITIONS_LIMITS=("/dev/sda1=80%")
### Check WebSite
CHECK_WEBSITE_ENABLE="true" #"true" or "false"
CHECK_WEBSITE_ADDRESS="http://localhost:8080/alfresco"
### Mail
MAIL_NOTIFICATION_ENABLE="true" # true or false
MAIL_NOTIFICATION_SENDER="ged@domain.ch"
MAIL_NOTIFICATION_DESTINATION="watchdog@domain.ch"
MAIL_NOTIFICATION_LOCATION="YourCompagny" # Where the script is running
MAIL_NOTIFICATION_TYPE_SERVER="GED" # Type of the server
MAIL_NOTIFICATION_TYPE_SCRIPT="Monitoring" # Type of the script like Backup, Monitoring…
### LogFile
LOGFILE="/var/log/gedMonitoring.log"
### Message
SUCCESS="SUCCESS"
ERROR="ERROR"
WARNING="WARNING"
TRUE="TRUE"
FALSE="FALSE"
######
# Init
######
### Check Disk Space
# Get the list of partition in a compact format
partitionDetails=$( df -Ph | sed -r "s/ {1,}/@/g" )
# Position elements in the output of the command "df"
POSITION_PARTITION=1
POSITION_USEDSPACE_PERCENT=5
POSITION_USEDSPACE_SIZE=3
### Check WebSite
# Success message get from command wget
CHECK_WEBSITE_WGET_SUCCESS="200 OK"
###############################################
# Get the date of the day
###############################################
getTime(){
date="$(date +'%b %e %H:%M:%S')"
echo "$date"
}
############################################################
# Check the disk space (configure in the partitionsLimites).
############################################################
checkDiskSpace(){
message="`getTime` CheckDiskSpace"
echo "$message"
echo "$message" >> $LOGFILE
# Read all partitions with the limit
for partitionsToCheck in ${CHECK_DISKSPACE_PARTITIONS_LIMITS[@]}
do
# Get the values of the parameters in the list (partition, limit)
partitionInList=${partitionsToCheck%%=*}
limitInList=${partitionsToCheck##*=}
# Read all partition on the disk
checkPartition="false" # The partition in the liste has been compared
for partitionOnDisk in $partitionDetails
do
# Check if it's the good partition
if [ "$partitionInList" != "$( echo "$partitionOnDisk" | awk -F@ '{print$1}')" ]; then
continue
fi
# The partition in the list has been found on the system
checkPartition="true"
# Read the unit (G, M, %) of the limit
typLimit=${limitInList:(-1)}
valueLimit=$(echo "$limitInList" | tr -d $typLimit)
echo "Check $partitionInList with the limit fixed with $limitInList"
# Search if the limit is fixed in "%" or unit like G, M…
if [ "$typLimit" = "%" ]; then
# The size is in %
valueToCheck=$POSITION_USEDSPACE_PERCENT
else
# The size is in unit G, M …
valueToCheck=$POSITION_USEDSPACE_SIZE
fi
usedSpace=$( echo "$partitionOnDisk" | awk -F@ -vposition=$valueToCheck '{print$position}' | tr -d $typLimit)
# Comparaison
if [ $usedSpace -ge $valueLimit ]; then
# Alert !!!
message "$WARNING : Not enough space on $partitionOnDisk.The maximum is fixed on $limitInList."
else
echo "All is ok with $partitionOnDisk with the maximum limit fixed on $limitInList"
fi
done
# Check if the partition in the list has been found in the system
if [ $checkPartition == "false" ]; then
message "$ERROR : The partition $partitionInList has not been found !!! Please check the configuration of the script."
fi
done
}
############################################################
# Check if the web site is up.
############################################################
checkWebSite(){
message="`getTime` CheckWebSite"
echo "$message"
echo "$message" >> $LOGFILE
resultWget=$(wget –spider $CHECK_WEBSITE_ADDRESS 2>&1)
if [[ "$resultWget" = *"$CHECK_WEBSITE_WGET_SUCCESS"* ]];then
echo "The website $CHECK_WEBSITE_ADDRESS is up."
else
message "$ERROR : The WebSite $CHECK_WEBSITE_ADDRESS is not responding."
fi
}
#############################################################################
# Send a mail. Do not use it directly… Use function message()
# Use it like this :
# message="I am a message"
# sendMail "%I - $MAIL_NOTIFICATION_LOCATION - GED - Backup" "$message"
#############################################################################
sendMail(){
echo "Send mail notification to : $MAIL_NOTIFICATION_DESTINATION"
echo "$2" | mail -s "$1" "$MAIL_NOTIFICATION_DESTINATION" – -r "$MAIL_NOTIFICATION_SENDER"
if [ $? -gt 0 ] ; then
message="`getTime` Unable to send mail notification"
echo "$message"
echo $MESSAGE_SEE_LOG
echo "$message" >> $LOGFILE
fi
}
#############################################################################################
# Write a message in the console and send a mail
# Use it like this :
# message "$ERROR : Unable to give permissions on the directory to link to the share"
# message "$WARNING : Unable to remove mysql file : $BACKUP_FILE_MYSQL_SLQ"
# message "End backup ($SUCCESS)"
############################################################################################
message(){
message="`getTime` $1"
echo "$message"
echo $MESSAGE_SEE_LOG
echo "$message" >> $LOGFILE
# Sendmail ?
if [ "$MAIL_NOTIFICATION_ENABLE" = "true" ]; then
# Success
echo "$message" | grep "$SUCCESS" 1>/dev/null
if [ $? = 0 ] ; then
typeMessage="Info"
fi
# WARNING
echo "$message" | grep "$WARNING" 1>/dev/null
if [ $? = 0 ] ; then
typeMessage="Warning"
fi
# ERROR
echo "$message" | grep "$ERROR" 1>/dev/null
if [ $? = 0 ] ; then
typeMessage="Error"
fi
# SendMail
sendMail "$typeMessage - $MAIL_NOTIFICATION_LOCATION - $MAIL_NOTIFICATION_TYPE_SERVER - $MAIL_NOTIFICATION_TYPE_SCRIPT" "$message"
fi
}
######
# Main
######
# Information startup
message="`getTime` Start Monitoring"
echo "$message"
echo "The log file is here : $LOGFILE"
echo ""
echo "$message" >> $LOGFILE
# CheckDiskSpace
if [ "$TRUE" = "$(echo $CHECK_DISKSPACE_ENABLE | tr "[:lower:]" "[:upper:]")" ]; then
checkDiskSpace
fi
# CheckWebSite
if [ "$TRUE" = "$(echo $CHECK_WEBSITE_ENABLE | tr "[:lower:]" "[:upper:]")" ]; then
checkWebSite
fi
# Information end
message="`getTime` End of monitoring"
echo "$message"
echo "$message" >> $LOGFILE
# Monitor the server
0 7,14 * * * /usr/local/bin/monitoring.sh > /var/log/crontab.log 2>&1
12-11-2016 01:50 AM
Bonjour,
C'est pas les possibilités qui manquent, pour savoir si Alfresco tourne, c'est à pas à Tomcat de le dire, mais à Alfresco, ce qui donne :
Voilà un exemple en PHP-CURL qui retourne un nombre d'élément...pis le jour ou y a rien -> Alert !
$url_for_alf = 'http://127.0.0.1:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser/'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url_for_alfl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$result = curl_exec($ch);
curl_close($ch); # on referme la liaison
$obj2 = (json_decode($result,true));
Il faudrait peaufiner le code mais çà fonctionne et c'est rapide à faire, $obj2 retourne une erreur ou contient des données
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.