定时清除Zookeeper日志

命令格式:

 
  
  1. java -cp zookeeper.jar:log4j.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir> <snapDir> -n <count> 

举例:

 
  
  1. 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任务。

 
  
  1. [smdev@M12-131 bin]$ crontab –e 

 任务内容如下: 

 
  
  1. 0 */1 * * * sh /www/xres/app/zookeeper-3.3.3/bin/purgeTxnLog.sh >> /log/xres/zookeeper/log/purgeTxnLog.log 
Step3 启动服务
 
  
  1. [smdev@M12-131 bin]$service crond start 
到此为止,定时清除zookeeper日志和快照数据的全部工作已完成。