| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/bin/bash
- # info: update system queue
- # options: pipe
- #
- # 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.
- #----------------------------------------------------------#
- # Variable&Function #
- #----------------------------------------------------------#
- # Argument defenition
- pipe=$1
- # Importing system enviroment as we run this script
- # mostly by cron wich not read it by itself
- source /etc/profile.d/vesta.sh
- # Importing variables
- source $VESTA/conf/vars.conf
- source $V_CONF/vesta.conf
- source $V_FUNC/shared.func
- # Export PATH for cron
- PATH=$PATH:$V_BIN
- # Defining pipe functions
- restart_pipe() {
- for service in $(cat $V_QUEUE/restart.pipe |awk '!x[$0]++'); do
- v_restart_$service
- done
- echo > $V_QUEUE/restart.pipe
- }
- stats_pipe() {
- bash $V_QUEUE/stats.pipe
- }
- disk_pipe() {
- bash $V_QUEUE/disk.pipe
- }
- traff_pipe() {
- bash $V_QUEUE/traffic.pipe
- }
- backup_pipe() {
- for user in $(cat $V_QUEUE/backup.pipe |awk '!x[$0]++' ); do
- sed -i "/^$user$/d" $V_QUEUE/backup.pipe
- v_backup_user $user
- # Send notification to user
- done
- }
- #----------------------------------------------------------#
- # Verifications #
- #----------------------------------------------------------#
- # Checking arg number
- check_args '1' "$#" 'pipe'
- # Checking argument format
- format_validation 'pipe'
- #----------------------------------------------------------#
- # Action #
- #----------------------------------------------------------#
- case $pipe in
- restart) restart_pipe ;;
- stats) stats_pipe ;;
- backup) backup_pipe ;;
- disk) disk_pipe ;;
- traffic) traff_pipe ;;
- *) check_args '1' '0' 'pipe'
- esac
- #----------------------------------------------------------#
- # Vesta #
- #----------------------------------------------------------#
- # Logging
- log_event 'system' "$V_EVENT"
- exit
|