Автоматическое включение заглушки для graylog (на препроде)#

Настроено на препроде на с07-nginx01.

Скрипт выбирает все файлы *graylog*.conf из /etc/nginx/conf.d/ и создаёт для них соответствующие флаги .maintenance в /tmp/ramdisk.

Attention

Cкрипт не будет работать корректно, если в именах файлов встретятся пробелы или символы переноса строки!

Файлы:

/root/bin/nginx-graylog-maintenance-create.sh

#!/bin/bash

# This script will find any site conf files matching ${sites_pattern}
# in ${nginx_sites_location} and create corresponding flag files
# in ${flag_path} location
#
# Won't work correctly for filenames containing spaces, but to hell with it right now
# Alexey 2020-12-24

sites_pattern="*graylog*.conf"
nginx_sites_location="/etc/nginx/conf.d/"
flag_filename_suffix=".maintenance"
flag_path="/tmp/ramdisk/"

graylog_sites=$( find ${nginx_sites_location} -iname ${sites_pattern} -type f -printf "%f " ) 

if [ -z "${graylog_sites}" ]
    then
	echo "Haven't found any ${sites_pattern} sites in ${nginx_sites_location}, will exit now"
        exit
fi

if [ ! -d "${flag_path}" ]
    then
        mkdir -p "${flag_path}"
fi

for cur_site in ${graylog_sites}
    do
        touch "${flag_path}${cur_site%.conf}${flag_filename_suffix}"
    done

/root/bin/nginx-graylog-maintenance-remove.sh (автоматически не исполняется!)

#!/bin/bash

# This script will find any site conf files matching ${sites_pattern}
# in ${nginx_sites_location} and create corresponding flag files
# in ${flag_path} location
#
# Won't work correctly for filenames containing spaces, but to hell with it right now
# Alexey 2020-12-24

sites_pattern="*graylog*.conf"
nginx_sites_location="/etc/nginx/conf.d/"
flag_filename_suffix=".maintenance"
flag_path="/tmp/ramdisk/"

graylog_sites=$( find ${nginx_sites_location} -iname ${sites_pattern} -type f -printf "%f " ) 

if [ -z "${graylog_sites}" ]
    then
	echo "Haven't found any ${sites_pattern} sites in ${nginx_sites_location}, will exit now"
        exit
fi

if [ ! -d "${flag_path}" ]
    then
        echo "nginx-graylog-maintenance ERROR: ${flag_path} does not exist!"
        exit
fi

for cur_site in ${graylog_sites}
    do
        rm --force "${flag_path}${cur_site%.conf}${flag_filename_suffix}"
    done

/etc/cron.d/sitefactory-nginx-graylog-auto-maintenance

# Alexey 2020-12-23: Automatically put maintenance flag files for graylog hosts
# Autoremove is commented out by GrayHoax'es order
59 23 * * * root /root/bin/nginx-graylog-maintenance-create.sh
###59 08 * * mon-fri root /root/bin/nginx-graylog-maintenance-remove.sh