#!/bin/bash ######################################################################## ## Script : ldap-loglevel.sh ## Name : LDAP のログレベル変更スクリプト ## Version : 0.0.1 ## Copyright : 2019 Nomura Kei ## License : BSD-2-Clause ## Usage: ## |使用法) ldap-loglevel.sh [オプション] [LogLevel] ## | ## | LDAP のログレベルを設定します。 ## | LogLevel の指定が無い場合、stats を設定します。 ## | LogLevel には次の Level の値または、Keyword の文字列を指定可能である。 ## | 複数指定する場合は、Level の値を OR した値を指定すれば良い。 ## | ## | Level Level(Hex) Keyword Description ## | -1 any enable all debugging ## | 0 no debugging (ログ出力なし) ## | 1 0x1 trace trace function calls ## | 2 0x2 packets debug packet handling ## | 4 0x4 args heavy trace debugging ## | 8 0x8 conns connection management ## | 16 0x10 BER print out packets sent and received ## | 32 0x20 filter search filter processing ## | 64 0x40 config configuration processing ## | 128 0x80 ACL access control list processing ## | 256 0x100 stats stats log connections/operations/results ## | 512 0x200 stats2 stats log entries sent ## | 1024 0x400 shell print communication with shell backends ## | 2048 0x800 parse print entry parsing debugging ## | 16384 0x4000 sync syncrepl consumer processing ## | 32768 0x8000 none only messages that get logged whatever log level is set ## | ## | 詳細は、https://www.openldap.org/doc/admin24/slapdconfig.html を参照のこと。 ## | ## |[オプション] ## | -h,--help 使用法を表示します。 ## | -v,--version バージョンを表示します。 ## | ## ######################################################################## SCRIPT_FILE=${0} SCRIPT_DIR=`dirname ${SCRIPT_FILE}` LIB_DIR=${SCRIPT_DIR}/../lib ######################################################################## ## ## ライブラリのロード ## [ -f "${LIB_DIR}/functions.sh" ] && . ${LIB_DIR}/bash-utils.sh ######################################################################## ## ## デフォルト値 ## LOG_LEVEL=stats ######################################################################## ## ## 関数群 ## # ====================================================================== # LDAP のログレベルを指定されたログレベルに変更する # ldif 形式のデータを標準出力します。 # # @param $1 ログレベル # ====================================================================== mkldif_for_change_loglevel() { cat << EOF dn: cn=config changeType: modify replace: olcLogLevel olcLogLevel: ${LOG_LEVEL} EOF } ######################################################################## ## ## メイン処理 ## for OPT in "$@"; do case "${OPT}" in '-h'|'--help') usage; exit 1 ;; '-v'|'--version') version; exit 1 ;; -*) usage exit 1 ;; *) if [[ ! -z "$1" ]] && [[ ! "$1" =~ ^-+ ]]; then LOG_LEVEL=("$1") shift 1 fi ;; esac done TMP_LDIF=$(mktemp /tmp/ldap.XXXXXXXXXXXX.ldif) trap 'rm -f ${TMP_LDIF}; exit 1' 1 2 3 15 mkldif_for_change_loglevel ${LOG_LEVEL} > ${TMP_LDIF} ldapmodify -Y EXTERNAL -H ldapi:/// -f ${TMP_LDIF} ldapsearch -Y EXTERNAL -H ldapi:/// -b 'cn=config' cn=config rm -f ${TMP_LDIF}