#!/bin/bash
CLUSTER_LOG_DIR=/var/log
DEFAULT_CLUSTER_LOG_DIR=/data/uha

tar_name=$(date +%Y-%m-%d"-uos-cluster-log")

function corosync_log(){
    local DES_DIR=$1
    mkdir -p $DES_DIR/corosync
    cp $CLUSTER_LOG_DIR/cluster/corosync.log* $DES_DIR/corosync/
    exit 0
}


function pacemaker_log(){
    local DES_DIR=$1
    mkdir -p $DES_DIR/pacemaker
    cp $CLUSTER_LOG_DIR/pacemaker/pacemaker.log* $DES_DIR/pacemaker/
    exit 0
}


function pcsd_log(){
    local DES_DIR=$1
    mkdir -p $DES_DIR/pcsd
    cp $CLUSTER_LOG_DIR/pcsd/pcsd.log* $DES_DIR/pcsd/
    exit 0
}


function all_log(){
    local DES_DIR=$1
    mkdir -p $DES_DIR/pacemaker $DES_DIR/corosync $DES_DIR/pcsd
    cp $CLUSTER_LOG_DIR/cluster/corosync.log* $DES_DIR/corosync/
    cp $CLUSTER_LOG_DIR/pacemaker/pacemaker.log* $DES_DIR/pacemaker/
    cp $CLUSTER_LOG_DIR/pcsd/pcsd.log* $DES_DIR/pcsd
    exit 0
}


function export_log()
{
    if [ "$#" == "1" ]; then
	echo "集群日志将默认导出至/data/uha"
	all_log $DEFAULT_CLUSTER_LOG_DIR
	log "集群日志将默认导出至/data/uha" >> $ha_check_log
    fi
	
    if [ "$#" == "2" ]; then
	case $2 in
	    -a | --all)
		echo "集群日志将默认导出至/data/uha"
		all_log $DEFAULT_CLUSTER_LOG_DIR
		log "集群日志将默认导出至/data/uha" >> $ha_check_log
		;;
	    --corosync)
	 	echo "corosync日志将默认导出至/data/uha"
		corosync_log $DEFAULT_CLUSTER_LOG_DIR
		log "corosync日志将默认导出至/data/uha" >> $ha_check_log
		;;
	    --pacemaker)
		echo "pacemaker日志将默认导出至/data/uha"
		pacemaker_log $DEFAULT_CLUSTER_LOG_DIR
		log "pacemaker日志将默认导出至/data/uha" >> $ha_check_log
		;;
	    --pcsd)
		echo "pcsd日志将默认导出至/data/uha"
		pcsd_log $DEFAULT_CLUSTER_LOG_DIR
		log "pcsd日志将默认导出至/data/uha" >> $ha_check_log
		;;
	   -D)
		error_exit "目录名不能为空"
		;;
	    *)
		error_exit "集群日志导出命令用法为：ha-health-check --export-log [-D directory] [options]"
		;;
	esac
    fi

    if [ "$#" == "3" ]; then
	if [ "$2" == "-D" ];then
	    echo $3 | grep -E "^[/[:alnum:]]+$" &>/dev/dull
	    if [ "$?" -eq "0" ]; then
		DES_DIR=$3
                all_log $DES_DIR
		log "集群日志将默认导出至$DES_DIR" >> $ha_check_log
    	    else
		error_exit "目录名格式错误"
	    fi
	else
	    error_exit "集群日志导出命令用法为：ha-health-check --export-log [-D directory] [options]"
	fi
    fi

    if [ "$#" == "4" ];then
	if [ "$2" == "-D" ];then
	    echo $3 | grep -E "^[/[:alnum:]]+$" &>/dev/dull
	    if [ "$?" -eq "0" ]; then
                DES_DIR=$3
	        case $4 in
		    -a | --all)
                        echo "集群日志将导出至$DES_DIR"
                        all_log $DES_DIR
			log "集群日志将默认导出至$DES_DIR" >> $ha_check_log
                        ;;
           	    --corosync)
		        echo "corosync日志将导出至$DES_DIR"
                        corosync_log $DES_DIR
			log "corosync日志将默认导出至$DES_DIR" >> $ha_check_log
                        ;;
                    --pacemaker)
		        echo "pacemaker日志将导出至$DES_DIR"
                        pacemaker_log $DES_DIR
			log "pacemaker日志将默认导出至$DES_DIR" >> $ha_check_log
                        ;;
                    --pcsd)
                        echo "pcsd日志将导出至$DES_DIR"
                        pcsd_log $DES_DIR
			log "pcsd日志将默认导出至$DES_DIR" >> $ha_check_log
                        ;;
		    *)
                        error_exit "集群日志导出命令用法为：ha-health-check --export-log [-D directory] [options]"
                esac
	    else
                error_exit "目录名格式错误"
	    fi
        else
            error_exit "集群日志导出命令用法为：ha-health-check --export-log [-D directory] [options]"
        fi

    fi
	
}

