From abe71a2818da3e202c32b2d395fa1e7abe01ceca Mon Sep 17 00:00:00 2001 From: Martinski4GitHub <119833648+Martinski4GitHub@users.noreply.github.com> Date: Sun, 4 Jan 2026 22:58:18 -0800 Subject: [PATCH] More Improvements and Fine-Tuning - Decreased the log message size to 2048 (from original 16384). - Increased the log FIFO queue for number of messages to 1024 (2048 if total RAM > 512MB). - Changes in the CLI menu display. - Miscellaneous code improvements. --- init.d/rc.func.syslog-ng | 7 - scribe.sh | 179 ++++++++++++++------------ syslog-ng.share/syslog-ng.conf-scribe | 2 +- 3 files changed, 97 insertions(+), 91 deletions(-) diff --git a/init.d/rc.func.syslog-ng b/init.d/rc.func.syslog-ng index 966b62a..894268f 100644 --- a/init.d/rc.func.syslog-ng +++ b/init.d/rc.func.syslog-ng @@ -124,13 +124,6 @@ kill_logger() [ ! -L "$tmplog-1" ] && /bin/ln -s "${syslog_loc}-1" "${tmplog}-1" fi - if "$postLogMsgs" - then - $loggerCmd -t "$logTagStr" $logPrioNum "optmsg=[$(ls -ld "$optmsg")]" - $loggerCmd -t "$logTagStr" $logPrioNum "syslog_loc=[$(ls -ld "$syslog_loc")]" - $loggerCmd -t "$logTagStr" $logPrioNum "script_conf=[$(ls -ld "$script_conf")]" - fi - # create /opt/var/run/syslog-ng/ directory if it doesn't exist # # not needed for older versions of syslog-ng, but doesn't hurt anything # [ ! -d "/opt/var/run/syslog-ng" ] && mkdir "/opt/var/run/syslog-ng" diff --git a/scribe.sh b/scribe.sh index 86c4c23..2a95d0f 100644 --- a/scribe.sh +++ b/scribe.sh @@ -35,7 +35,7 @@ readonly script_name="scribe" readonly scribe_ver="v3.2.7" -readonly scriptVer_TAG="26010401" +readonly scriptVer_TAG="26010422" scribe_branch="develop" script_branch="$scribe_branch" @@ -45,7 +45,7 @@ export PATH="/sbin:/bin:/usr/sbin:/usr/bin:$PATH" # set TMP if not set # [ -z "${TMP:+xSETx}" ] && export TMP=/opt/tmp -# parse parameters +# parse parameters # action="X" got_zip=false banner=true @@ -91,6 +91,7 @@ readonly script_conf="${config_d}/config" readonly optmsg="/opt/var/log/messages" readonly jffslog="/jffs/syslog.log" readonly tmplog="/tmp/syslog.log" +syslog_loc="" export optmsg export tmplog export jffslog @@ -186,7 +187,7 @@ readonly LR_FLock_FName="/tmp/scribeLogRotate.flock" readonly logFilesRegExp="${optVarLogDir}/.*([.]log)?" readonly filteredLogList="${config_d}/.filteredlogs" readonly noConfigLogList="${config_d}/.noconfiglogs" -sysLogMsgSizeMAX=10240 +sysLogMsgeSizeMAX=2048 sysLogFiFoSizeMIN=1024 # color constants # @@ -198,8 +199,9 @@ readonly magenta="\033[1;35m" readonly cyan="\033[1;36m" readonly white="\033[1;37m" readonly std="\e[0m" -readonly CLRD="\e[0m" readonly BOLD="\e[1m" +readonly CLRct="\e[0m" +readonly GRNct="\e[1;32m" ##-------------------------------------## ## Added by Martinski W. [2025-Nov-29] ## @@ -209,8 +211,8 @@ readonly twoMByte=2097152 readonly LR_CronJobMins=5 readonly LR_CronJobHour=0 readonly LR_CronTagStr="scribeLogRotate" -readonly validHourRegExp="(3|4|6|8|12|24)" -readonly validHourLstStr="3, 4, 6, 8, 12, 24." +readonly validHourRegExp="(2|3|4|6|8|12|24)" +readonly validHourLstStr="2, 3, 4, 6, 8, 12, and 24." ##----------------------------------------## ## Modified by Martinski W. [2025-Jul-07] ## @@ -222,8 +224,7 @@ readonly uiscribeBranch="master" readonly uiscribeRepo="$raw_git/$uiscribeAuthor/$uiscribeName/$uiscribeBranch/${uiscribeName}.sh" readonly uiscribePath="$script_d/$uiscribeName" readonly uiscribeVerRegExp="v[0-9]{1,2}([.][0-9]{1,2})([.][0-9]{1,2})" - -readonly header="=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=${std}\n\n" +readonly menuSepStr="${white} =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=${CLRct}\n\n" # check if Scribe is already installed by looking for link in /opt/bin # [ -e "/opt/bin/$script_name" ] && scribeInstalled=true || scribeInstalled=false @@ -851,22 +852,26 @@ _Get_LogRotate_CronHour_() ##-------------------------------------## menu_LogRotate_CronJob_Time() { - local cronHourNum cronHourStr hourInput validInput - local GRNct="\\\e[1;32m" CLRct="\\\e[0m" validHoursStr + local GREEN="\\\e[1;32m" CLRD="\\\e[0m" + local validHoursANDstr validHoursORstr + local cronHourNum cronHourStr hourInput inputOK retCode + + validHoursANDstr="$(echo "$validHourLstStr" | sed -E "s/([1-9]+)/${GREEN}\1${CLRD}/g")" + validHoursORstr="$(echo "$validHoursANDstr" | sed 's/and/or/')" - validHoursStr="$(echo "$validHourLstStr" | sed -E "s/([1-9]+)/${GRNct}\1${CLRct}/g")" + retCode=1 + inputOK=false - validInput=false while true do ScriptLogo - printf "$white $header" + printf "$menuSepStr" cronHourNum="$(_Config_Option_Get_ LR_CRONJOB_HOUR)" - printf " ${BOLD}Current $lr cron job interval: " - printf "${green}Every ${cronHourNum} hours${CLRD}\n" - printf "\n ${BOLD}Please enter how often in HOURS to run the cron job." - printf "\n Valid values are $validHoursStr " - printf "(${green}e${CLRD}=Exit): " + printf " ${BOLD}Current $lr cron job frequency: " + printf "${green}Every ${cronHourNum} hours${CLRct}\n" + printf "\n ${BOLD}Please specify how often to run the cron job." + printf "\n Valid values are ${validHoursANDstr}\n" + printf "\n Enter frequency in HOURS (${green}e${CLRct}=Exit): " read -r hourInput if echo "$hourInput" | grep -qE "^[eE]$" @@ -875,28 +880,30 @@ menu_LogRotate_CronJob_Time() elif [ -z "$hourInput" ] || \ ! echo "$hourInput" | grep -qE "^${validHourRegExp}$" then - printf "\n ${red}Please enter a valid number:${CLRD} ${validHoursStr}\n\n" + printf "\n ${red}Please enter a valid number:${CLRct} ${validHoursORstr}\n\n" PressEnterTo "continue..." elif [ "$hourInput" -eq 24 ] then - validInput=true + inputOK=true cronHourNum="$hourInput" cronHourStr="$LR_CronJobHour" echo ; break else - validInput=true + inputOK=true cronHourNum="$hourInput" cronHourStr="*/$hourInput" echo ; break fi done - if "$validInput" + if "$inputOK" then + retCode=0 _Config_Option_Update_ LR_CRONJOB_HOUR "$cronHourNum" _Create_LogRotate_CronJob_ "$cronHourStr" LogRotate_CronJob_PostMount_Create fi + return "$retCode" } ##----------------------------------------## @@ -949,7 +956,7 @@ _SysLogMsgSizeFromConfig_() local msgSizeNum msgSizeOK=true msgSizeNum="$(grep -m1 'log_msg_size(' "$sng_conf" | cut -d ';' -f1 | grep -oE '[0-9]+')" - if [ -n "$msgSizeNum" ] && [ "$msgSizeNum" -gt "$sysLogMsgSizeMAX" ] + if [ -n "$msgSizeNum" ] && [ "$msgSizeNum" -gt "$sysLogMsgeSizeMAX" ] then msgSizeOK=false fi "$msgSizeOK" && return 0 @@ -958,7 +965,7 @@ _SysLogMsgSizeFromConfig_() then return 1 elif [ "$1" = "update" ] then - sed -i "s/log_msg_size($msgSizeNum)/log_msg_size($sysLogMsgSizeMAX)/g" "$sng_conf" + sed -i "s/log_msg_size($msgSizeNum)/log_msg_size($sysLogMsgeSizeMAX)/g" "$sng_conf" return 0 fi } @@ -1381,7 +1388,7 @@ _DoRotateLogFiles_() "$doPostRotateCleanup" && _DoPostRotateCleanup_ } -menu_status() +Menu_Status() { check_sng syslogd_check @@ -1600,7 +1607,7 @@ pre_install() ##----------------------------------------## ## Modified by Martinski W. [2025-Dec-05] ## ##----------------------------------------## -menu_install() +Menu_Install() { if [ ! -e "$sng_loc" ] then @@ -1763,7 +1770,7 @@ doUninstall() fi } -menu_uninstall() +Menu_Uninstall() { andre="remove" uni="UN" @@ -2086,7 +2093,7 @@ menu_restore() chmod 600 "$lrd_d"/* printf "\n$std Backup data has been restored from $cyan%s$std.\n" "$script_bakname" menu_restart - menu_status + Menu_Status ;; *) printf "\n\n$white *** RESTORE ABORTED! ***$std\n\n" @@ -2098,36 +2105,38 @@ menu_restore() ##----------------------------------------## ## Modified by Martinski W. [2024-Jul-07] ## ##----------------------------------------## -menu_about() +Menu_About() { - printf "About ${magenta}${SCRIPT_VERS_INFO}${std}\n" + printf "$menuSepStr" + printf " About ${magenta}${SCRIPT_VERS_INFO}${CLRct}\n" cat <