#!/bin/bash #以hdfs用户执行jstack每分钟采集一次namenode heapstack日志 #mkdir -p /tmp/jstack export JAVA_HOME=xxx cd /log/hadoop/jstack_nn pid=$(${JAVA_HOME}/bin/jps | grep -i "namenode" | awk 'NR==1{print $1}') dir=/log/hadoop/jstack_nn/jstack_nn_`date +"%Y-%m-%d-%H"` if [ ! -d ${dir} ] then mkdir jstack_nn_`date +"%Y-%m-%d-%H"` fi ${JAVA_HOME}/bin/jstack -l ${pid} > jstack_nn_`date +"%Y-%m-%d-%H"`/nn_heapStack_`date +"%Y-%m-%d-%H-%M"`.log 2>&1 dir2=/log/hadoop/jstack_nn/jstack_nn_`date -d "1 hour ago" +"%Y-%m-%d-%H"` if [ ! -d ${dir2} ] then echo "Nothing to do" else mv jstack_nn_`date -d "1 hour ago" +"%Y-%m-%d-%H"`/ /tmp/jstack fi
/etc/cron.allow加入hdfs */1 * * * * sh /home/hdfs/jstack/jstack_nn.sh