소스 검색

Treat log files separately during daily ops

Michael Schloh von Bennewitz 22 년 전
부모
커밋
daed269e0a
2개의 변경된 파일45개의 추가작업 그리고 17개의 파일을 삭제
  1. 1 1
      mysql/mysql.spec
  2. 44 16
      mysql/rc.mysql

+ 1 - 1
mysql/mysql.spec

@@ -39,7 +39,7 @@ Distribution: OpenPKG [BASE]
 Group:        Database
 License:      GPL
 Version:      %{V_opkg}
-Release:      20030805
+Release:      20030829
 
 #   package options
 %option       with_berkeleydb  yes

+ 44 - 16
mysql/rc.mysql

@@ -7,18 +7,28 @@
     mysql_enable="$openpkg_rc_def"
     mysql_pwd_file=@l_prefix@/etc/mysql/my.pwd
     mysql_cnf_file=@l_prefix@/etc/mysql/my.cnf
-    mysql_log_prolog="true"
-    mysql_log_epilog="true"
-    mysql_log_numfiles="10"
-    mysql_log_minsize="1M"
-    mysql_log_complevel="9"
+    mysql_common_prolog="true"
+    mysql_common_epilog="true"
+    mysql_common_numfiles="10"
+    mysql_common_minsize="1M"
+    mysql_common_complevel="9"
+    mysql_update_prolog="true"
+    mysql_update_epilog="true"
+    mysql_update_numfiles="10"
+    mysql_update_minsize="1M"
+    mysql_update_complevel="9"
+    mysql_err_prolog="true"
+    mysql_err_epilog="true"
+    mysql_err_numfiles="10"
+    mysql_err_minsize="1M"
+    mysql_err_complevel="9"
 
 %common
     #   same paths as in my.cnf
     mysql_pid_file=@l_prefix@/var/mysql/mysqld.pid
-    mysql_log_err=@l_prefix@/var/mysql/mysqld.err
-    mysql_log_common=@l_prefix@/var/mysql/common.log
-    mysql_log_update=@l_prefix@/var/mysql/update.log
+    mysql_err_log=@l_prefix@/var/mysql/mysqld.err
+    mysql_common_log=@l_prefix@/var/mysql/common.log
+    mysql_update_log=@l_prefix@/var/mysql/update.log
 
 %status -u @l_rusr@ -o
     mysql_usable="unknown"
@@ -57,14 +67,32 @@
 %daily -u @l_rusr@
     rcService mysql enable yes || exit 0
 
-    #   rotate logfile
+    #   rotate logfiles
+    rcTmp -i
+    hintfile=`rcTmp -f -n hint`
     shtool rotate -f \
-        -n ${mysql_log_numfiles} -s ${mysql_log_minsize} -d \
-        -z ${mysql_log_complevel} -m 660 -o @l_rusr@ -g @l_rgrp@ \
-        -P "${mysql_log_prolog}" \
-        -E "$mysql_log_epilog && @l_prefix@/bin/mysqladmin \
+        -n ${mysql_common_numfiles} -s ${mysql_common_minsize} -d \
+        -z ${mysql_common_complevel} -m 660 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${mysql_common_prolog}" \
+        -E "${mysql_common_epilog} && @l_prefix@/bin/mysqladmin \
             --defaults-extra-file=${mysql_pwd_file} flush-logs" \
-        ${mysql_log_common} \
-        ${mysql_log_update} \
-        ${mysql_log_err}
+        ${mysql_common_log}
+    shtool rotate -f \
+        -n ${mysql_update_numfiles} -s ${mysql_update_minsize} -d \
+        -z ${mysql_update_complevel} -m 660 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${mysql_update_prolog}" \
+        -E "${mysql_update_epilog} && @l_prefix@/bin/mysqladmin \
+            --defaults-extra-file=${mysql_pwd_file} flush-logs" \
+        ${mysql_update_log}
+    shtool rotate -f \
+        -n ${mysql_err_numfiles} -s ${mysql_err_minsize} -d \
+        -z ${mysql_err_complevel} -m 660 -o @l_rusr@ -g @l_rgrp@ \
+        -P "${mysql_err_prolog}" \
+        -E "${mysql_err_epilog} && @l_prefix@/bin/mysqladmin \
+            --defaults-extra-file=${mysql_pwd_file} flush-logs" \
+        ${mysql_err_log}
+    if [ -s $hintfile ]; then
+        rc mysql restart
+    fi
+    rcTmp -k