#!/bin/bash
source install_lang
####### garbage here #############
function mainFunction ( )
{
echo "$Good"
}
function braBraBra ( )
{
echo "$Bra_Bra_Bra"
}
####### garbage end ###############
####### fafa code here ###########
User_HOME=/home/nutchuser/nutchez
NutchEZ_HOME=/opt/nutchez
Nutch_HOME=$NutchEZ_HOME/nutch
Tomcat_HOME=$NutchEZ_HOME/tomcat
Index_DB=$User_HOME/search
MasterIP_Address=`/sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g' | sed 's/ .*// '`
# DNS暫時以IP取代
MasterDNS=$MasterIP_Address
function set_install_information () {
set_nutchuser_passwd
read -p "Please enter Administrator's e-mail address: " Admin_email
select_eth
MasterIP_Address=$net_address
# read -p "Please enter the Master DNS: " MasterDNS
}
function set_nutchuser_passwd () {
read -p "Please enter nutchuser's password : " nutchuser_passwd
read -p "Please enter nutchuser's password again: " nutchuser_passwd_confirm
if [ $nutchuser_passwd != $nutchuser_passwd_confirm ]; then
set_nutchuser_passwd
fi
}
function select_eth () {
net_interfaces=$(ifconfig | grep ^eth | cut -d " " -f1)
net_nu=$(echo $net_interfaces | wc -w)
# 若只有一個 eth 時
if [ "$net_nu" == "1" ]; then
ifconfig $net_interfaces | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1
net_address=$(ifconfig $net_interfaces | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1)
# echo "net_address is $net_address"
# 若有多個 eth 時
else
declare -i i=1
echo -e "\nSystem have multiple network device, which network use for this machine: "
for net in $net_interfaces
do
echo "($i) $net $(ifconfig $net | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1)"
i=i+1
done
read -p "Plz choice(1/2/3...): " net_choice
if [ -z $net_choice ]; then
net_choice=1
fi
echo "Your choice is $net_choice"
net_interface=$(echo $net_interfaces | cut -d " " -f $net_choice)
ifconfig $net_interface | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1
net_address=$(ifconfig $net_interface | grep "inet addr:" | sed 's/^.*inet addr://g' | cut -d " " -f1)
echo "net_address is $net_address"
fi
}
function show_info () {
echo "Administrator's e-mail address is $Admin_email."
echo "The Master IP Address is: $MasterDNS"
}
function confirm_install_information () {
read -p "Please confirm your install infomation: 1.Yes 2.No " confirm
}
function make_ssh_key () {
su nutchuser -c 'ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""'
su nutchuser -c "cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys"
}
function set_haoop-site () {
echo "set $Nutch_HOME/conf/hadoop-site.xml"
cd $Nutch_HOME/conf/
cat > hadoop-site.xml << EOF
fs.default.name
hdfs://$MasterIP_Address:9000
mapred.job.tracker
$MasterIP_Address:9001
hadoop.tmp.dir
/var/nutchez/nutch-nutchuser
EOF
}
# 修改nutch-site.xml中-http.agent.url, http.agent.email
function set_nutch-site () {
echo "set $Nutch_HOME/conf/nutch-site.xml"
Line_NO=`cat $Nutch_HOME'/conf/nutch-site.xml' | grep -n 'http.agent.url' | sed 's/:.*//g'`
echo "debug...http.agent.url line number = $Line_NO..."
sed -i ''$((Line_NO+1))'d' $Nutch_HOME/conf/nutch-site.xml
echo "debug...edit http.agent.url delete line $((Line_NO+1))..."
sed -i ''$Line_NO'a '$MasterIP_Address'' $Nutch_HOME/conf/nutch-site.xml
echo "debug...edit http.agent.url done..."
Line_NO=`cat $Nutch_HOME'/conf/nutch-site.xml' | grep -n 'http.agent.email' | sed 's/:.*//g'`
echo "debug...http.agent.email line number = $Line_NO..."
sed -i ''$((Line_NO+1))'d' $Nutch_HOME/conf/nutch-site.xml
echo "debug...edit http.agent.email delete line $((Line_NO+1))..."
sed -i ''$Line_NO'a '$Admin_email'' $Nutch_HOME/conf/nutch-site.xml
echo "debug...edit http.agent.email done..."
}
function format_HDFS () {
echo "format HDFS..."
su nutchuser -c "$Nutch_HOME/bin/hadoop namenode -format"
}
function start_up_NutchEZ (){
echo "start up NutchEZ..."
su nutchuser -c "$Nutch_HOME/bin/start-all.sh"
}
function Install_Nutch () {
set_haoop-site
set_nutch-site
}
function client_PassMasterIPAddr () {
Line_NO=`cat client_install | grep -n '# Master IP here' | sed 's/:.*//g'`
echo "debug...Master IP here line number = $Line_NO..."
sed -i ''$((Line_NO+1))'d' client_install
echo "debug...edit Master IP at line $((Line_NO+1))..."
sed -i ''$Line_NO'a Master_IP_Address='$MasterIP_Address'' client_install
echo "edit client_install done..."
}
function client_PassMaster_Hostname () {
Line_NO=`cat client_install | grep -n '# Master Hostname here' | sed 's/:.*//g'`
echo "debug...Master hostname here line number = $Line_NO..."
sed -i ''$((Line_NO+1))'d' client_install
echo "debug...edit Master Hostname at line $((Line_NO+1))..."
sed -i ''$Line_NO'a Master_Hostname='$(hostname)'' client_install
echo "edit client_install done..."
}
function make_client_install () {
# 將Master_IP_Address給client
# 打包安裝目錄(不含tomcat)
echo "function make_client_install..."
client_PassMasterIPAddr
client_PassMaster_Hostname
su nutchuser -c "tar -cvzf /opt/nutchez/NutchezForClientOf_$Master_IP_Address.tar.gz /home/nutchuser/nutchez/"
}
function start_up_tomcat () {
echo "start up tomcat..."
sleep 10s
echo "su nutchuser -c "$Tomcat_HOME/bin/startup.sh""
su nutchuser -c "$Tomcat_HOME/bin/startup.sh"
}
# client簡易步驟
function client_install_command () {
echo "Client Install Command as Follows:"
echo "cd ~"
echo "mkdir NutchezClientInstall"
echo "scp 安裝的shell檔所在路徑/PATH/ ~/NutchezClientInstall"
echo "./client_install"
}