定时清除Zookeeper日志【转】
命令格式:
java -cp zookeeper.jar:log4j.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count>
举例:
java -cp zookeeper.jar:log4j.jar:conf org.apache.zookeeper.server.PurgeTxnLog /log/xres/zookeeper/zk_trlog /www/xres/app/zk_data -n 10
定时清除zookeeper日志和快照数据非常简单,只需简单3步。
Step1:在zookeeper/bin目录建立purgeTxnLog.sh文件,内容如下所示:
1 #!/bin/sh 2 3 # Only follow symlinks if readlink supports it 4 if readlink -f "$0" > /dev/null 2>&1 5 then 6 ZOOBIN=`readlink -f "$0"` 7 else 8 ZOOBIN="$0" 9 fi 10 ZOOBINDIR=`dirname "$ZOOBIN"` 11 12 . "$ZOOBINDIR"/zkEnv.sh 13 14 #echo "Purge transaction log is starting..." 15 PATH="/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/java/jdk1.6.0_21/bin:/usr/java/jdk1.6.0_21/jre/bin:/bin:/home/smdev/bin:$PATH" 16 export PATH 17 #echo "PATH=$PATH" 18 #echo "CLASSPATH=$CLASSPATH" 19 20 java -cp "$CLASSPATH" org.apache.zookeeper.server.PurgeTxnLog /log/xres/zookeeper/zk_trlog /www/xres/app/zk_data -n 10 21 22 #echo "Purge transaction log is finished."
Step2:创建cron任务。
[smdev@M12-131 bin]$ crontab –e
任务内容如下:
0 */1 * * * sh /www/xres/app/zookeeper-3.3.3/bin/purgeTxnLog.sh >> /log/xres/zookeeper/log/purgeTxnLog.log
Step3:启动服务
[smdev@M12-131 bin]$service crond start
到此为止,定时清除zookeeper日志和快照数据的全部工作已完成。