#!/usr/bin/env bash set -euo pipefail if [[ "${EUID}" -ne 0 ]]; then echo "[ERROR] please run as root" exit 1 fi CH_LOG_LEVEL="${CH_LOG_LEVEL:-warning}" CH_DIR="/etc/clickhouse-server" CH_CONFIG_D_DIR="${CH_DIR}/config.d" OVERRIDE_FILE="${CH_CONFIG_D_DIR}/waf-runtime.xml" case "${CH_LOG_LEVEL}" in none|fatal|critical|error|warning|notice|information|debug|trace|test) ;; *) echo "[ERROR] invalid CH_LOG_LEVEL: ${CH_LOG_LEVEL}" echo " allowed: none,fatal,critical,error,warning,notice,information,debug,trace,test" exit 1 ;; esac mkdir -p "${CH_CONFIG_D_DIR}" echo "[INFO] writing ClickHouse runtime override config ..." cat >"${OVERRIDE_FILE}" < ${CH_LOG_LEVEL} EOF echo "[INFO] restarting clickhouse-server ..." systemctl restart clickhouse-server sleep 2 echo "[INFO] service status ..." systemctl --no-pager -l status clickhouse-server | sed -n '1,15p' echo "[OK] ClickHouse runtime config applied" echo " file : ${OVERRIDE_FILE}" echo " logger level: ${CH_LOG_LEVEL}"