#!/bin/bash # Program: # NutchEz management interface # Author: # Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw # Version: # 1.0 # History: # 2010/06/07 Rock First release (1.0) # Variables Declaration # DIALOG=dialog main_choice= #LIST_Option="off" # Functions Declaration # ## Prepare Check ## function prepare_check(){ if [ ! -e /home/nutchuser/nutch_nodes ]; then $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "nutch_nodes Files:" \ --msgbox "Fail: Don't find /home/nutchuser/nutch_nodes!!!" 10 40 exit fi $DIALOG --clear --defaultno --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "/etc/host Update" \ --yesno "Do you want to update /etc/hosts!!!" 6 40 if [ "$?" == "0" ]; then ./duplicate_del /home/nutchuser/nutch_nodes echo -e "\nPlz input root password to modify /etc/hosts !!!" su root -c "./duplicate_del /etc/hosts" su root -c "./add_hosts /home/nutchuser/nutch_nodes /etc/hosts" fi } ## Main Menu function main_menu(){ main_choice="/tmp/main_choice" $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" \ --title "management options" \ --menu "Plz choose: " 15 55 5 \ "cluster_setup" "Setup your datanode & tasknode" \ "tomcat_switch" "Start/Stop/Restart Tomcat" \ "tomcat_port" "Change Tomcat port" \ "lang_switch" "Change language" \ "exit" "Exit" 2>$main_choice } ## Cluster Setup (datanode & tasknode) ## function cluster_setup(){ node_list=$(cat /home/nutchuser/nutch_nodes | awk '{print $1}') #echo -e $node_list #read #dataNodes=$($DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC = " --title "datanode & tasknode setup" \ # --checklist "datanode & tasknode choose: " 15 55 7 $(cat /home/nutchuser/nutch_nodes | awk '{print $1 "\t" $2 "\t" "off" }')) #echo $dataNodes clusterSetup="/tmp/clusterSetup" $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Datanode & Tasktracker Setup" \ --menu "Plz choose: " 10 65 3 \ "start" "Start all datanodes & taskcrackers in cluster" \ "stop" "Stop all datanodes & taskcrackers in cluster" \ "exit" "Exit" 2>$clusterSetup #echo -e "$clusterSetup" if [ "$(cat $clusterSetup)" == "start" ]; then echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode" echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracke" /opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode /opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracker for node in $(echo $node_list) do echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode" # ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh start datanode" echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracker" # ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh start tasktracker" done elif [ "$(cat $clusterSetup)" == "stop" ]; then echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode" echo "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker" # /opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode # /opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker for node in $(echo $node_list) do echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode" # ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop datanode" echo -e "ssh $node -c /opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker" # ssh $node -c "/opt/nutchez/nutch/bin/hadoop-daemon.sh stop tasktracker" done else exit 0 fi } ## Tomcat Severice start/stop/restart ## function tomcat_switch(){ pid_tc=$(ps axw -eo pid,command | grep "catalina" | grep "java" | grep "start" | awk '{print $1}') #echo $pid_tc #read if [ -n "$pid_tc" ]; then $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Status" \ --msgbox "Tomcat is runing in this system!!!" 7 50 else $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Status" \ --msgbox "Tomcat is not running in this system!!!" 7 50 fi tomcatSwitch="/tmp/tomcatSwitch" $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Service Options" \ --menu "Plz choose: " 15 55 4 \ "start" "Start tomcat" \ "stop" "Stop tomcat" \ "restart" "Restart tomcat" \ "exit" "Exit" 2>$tomcatSwitch if [ "$(cat $tomcatSwitch)" == "start" ]; then echo "/opt/nutchez/tomcat/bin/startup.sh" /opt/nutchez/tomcat/bin/startup.sh elif [ "$(cat $tomcatSwitch)" == "stop" ]; then echo "/opt/nutchez/tomcat/bin/shutdown.sh" /opt/nutchez/tomcat/bin/shutdown.sh elif [ "$(cat $tomcatSwitch)" == "restart" ]; then echo "/opt/nutchez/tomcat/bin/restart.sh" /opt/nutchez/tomcat/bin/shutdown.sh /opt/nutchez/tomcat/bin/startup.sh else exit 0 fi } ## Tomcat Port change ## function tomcat_port(){ if [ ! -e /opt/nutchez/tomcat/conf/server.xml ]; then $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC =" --title "Tomcat Servel.xml" \ --msgbox "Fial: Don't find /opt/nutchez/tomcat/conf/server.xml !!!" 10 50 exit fi tomcatPort="/tmp/tomcatPort" $DIALOG --clear --backtitle "= [NutchEz Management Interface] ~by NCHC = " --title "Tomcat Port Change" \ --inputbox "Plz input port number for tomcat (default is 8080)" 10 55 2>$tomcatPort if [ -z $(cat $tomcatPort) ]; then exit else modify_line_nu=$(cat -n /opt/nutchez/tomcat/conf/server.xml | grep -v SSL | grep 'HTTP/1.1' | grep '$langSwitch # echo "source $(cat $langSwitch)" } # Main Code if [ $USER != "nutchuser" ]; then echo -e "\nYour identify is not nutchuser, plz change to \"nutchuser\" !!!" exit fi prepare_check main_menu case $(cat $main_choice) in "cluster_setup") cluster_setup;; "tomcat_switch") tomcat_switch;; "tomcat_port") tomcat_port;; "lang_switch") lang_switch;; esac