You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.3 KiB
63 lines
2.3 KiB
#!/bin/bash
|
|
# info: update system queue
|
|
# options: PIPE
|
|
#
|
|
# example: v-update-sys-queue
|
|
#
|
|
# This function is responsible queue processing. Restarts of services,
|
|
# scheduled backups, web log parsing and other heavy resource consuming
|
|
# operations are handled by this script. It helps to optimize system behaviour.
|
|
# In a nutshell Apache will be restarted only once even if 10 domains are
|
|
# added or deleted.
|
|
|
|
#----------------------------------------------------------#
|
|
# Variables & Functions #
|
|
#----------------------------------------------------------#
|
|
# Argument definition
|
|
queue=$1
|
|
|
|
# Includes
|
|
# shellcheck source=/etc/hestiacp/hestia.conf
|
|
source /etc/hestiacp/hestia.conf
|
|
# shellcheck source=/usr/local/hestia/func/main.sh
|
|
source $HESTIA/func/main.sh
|
|
# load config file
|
|
source_conf "$HESTIA/conf/hestia.conf"
|
|
|
|
#----------------------------------------------------------#
|
|
# Verifications #
|
|
#----------------------------------------------------------#
|
|
|
|
check_args '1' "$#" 'QUEUE'
|
|
|
|
#----------------------------------------------------------#
|
|
# Action #
|
|
#----------------------------------------------------------#
|
|
|
|
b_task=$(ps auxf | grep -v "grep" | grep "$BIN/v-update-sys-queue backup")
|
|
b_task=$(echo "$b_task" | grep -v sudo | wc -l)
|
|
d_task=$(ps auxf | grep -v "grep" | grep "$BIN/v-update-sys-queue dns")
|
|
d_task=$(echo "$d_task" | grep -v sudo | wc -l)
|
|
if [ "$b_task" -gt 2 ] || [ "$d_task" -gt 2 ]; then
|
|
exit
|
|
fi
|
|
|
|
# Defining pipe functions
|
|
case $queue in
|
|
restart) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
webstats) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
backup) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
disk) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
daily) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
traffic) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
dns-cluster) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
letsencrypt) bash $HESTIA/data/queue/$queue.pipe > /dev/null 2>&1 ;;
|
|
*) check_args '1' '0' 'QUEUE' ;;
|
|
esac
|
|
|
|
#----------------------------------------------------------#
|
|
# Hestia #
|
|
#----------------------------------------------------------#
|
|
|
|
exit
|