source: nutchez-0.2/src/test/client_install_func.sh @ 128

Last change on this file since 128 was 128, checked in by rock, 14 years ago

update 3 func(scp_master_nutchuser_sshkey, creat_nutchuser_account, scp_packages)
modify 1 func(check_sunJava)

  • Property svn:executable set to *
File size: 4.5 KB
RevLine 
[122]1#!/bin/bash
2# Program:
3#   Functions for client_install.sh
4# Author:
5#   Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw
6# History:
7#   2010/05/20  Rock    First release(0.1)
8
[123]9# 正式版之後,記的將不必要的 echo 拿掉
10
11
12# 檢查執行這個程式的是否為root權限
[122]13function check_root(){
[123]14# 正式版後可拿掉此 echo
[128]15echo -e "\n= check_root (debug) ="
[122]16if [ $USER != "root" ]; then
17    echo -e "\nPlz Change root to execute it!!!"
18    exit
19fi
[123]20# 正式版後可拿掉此 echo
21echo -e "Identify is root."
[122]22}
23
24
25# 查出此主機的作業系統,以及版本
26function check_systemInfo(){
[128]27echo -e "\n= check_systemInfo (debug) ="
[122]28echo -e "\nYour system information are:"
29lsb_release -a 2>/dev/null
30}
31
32
33# 檢查之前是否有安裝NutchEz
34# 目前先檢查是否有/opt/nutchez 這個資料夾即可
35function check_nez_installed(){
[128]36echo -e "\n= chcheck_nez_installed (debug) ="
37test -d /opt/nutchez && echo -e "\nYour system already had NutchEz." || \
38echo -e "\nYour system does not has NutchEz."
[122]39}
40
41
42# 檢查是否有安裝sun java ,並檢查是否為jdk 1.6 以上版本
43# 4種判斷可能性 (1)系統沒安裝 JAVA (2)系統有安裝JAVA,但非sun版本
44# (3)系統有安裝但Sun Java 在非預設路徑下 (4)以正確安裝 Sun JAVA 預設路徑下
45function check_sunJava(){
[128]46echo -e "\n= check_sunJava (debug) ="
[122]47echo -e "\nNutchEz need Sun Java JDK 1.6.x or above version"
48javaPath="/usr/"
49
[123]50test -e $javaPath/bin/java || read -p "Plz input specific Java path\
[122]51(ex./opt/jvm/java-6-sun-1.6.0.20/): " javaPath
52
53if [ -e $javaPath/bin/java ]; then
54    JAVA_org=$($javaPath/bin/java -version 2>&1 | grep "Java(TM)")
55    JAVA_version=$($javaPath/bin/java -version 2>&1 | grep "java version" | \
56    awk '{print $3}' | cut -d "." -f1-2 | cut -d "\"" -f2)
57
58    if [ "$JAVA_org" == "" ]; then 
[123]59        echo "Java is not Sun version, plz install sun Java 1.6.X"
[122]60        exit   
61    fi
[128]62   
63    large16=$(echo "$JAVA_version >= 1.6" | bc)
64    if [ "${large16}" == 0 ]; then
[123]65        echo "Java version is too old (it need 1.6.X above)"
[122]66        exit
67    fi
[128]68   
69    echo "System has Sun Java 1.6 above version."
[122]70else
71    echo "Plz install Sun JAVA 1.6.X or above version"
72    exit
73fi
74
75unset JAVA_org
76unset JAVA_version
[123]77}
[122]78
[123]79
80# 檢查是否有安裝openssh, openssh-server
81function check_ssh(){
[128]82echo -e "\n= check_ssh (debug) ="
[123]83if [ -e /usr/bin/ssh ]; then
84    echo -e "\nSystem has ssh."
85else
86    echo "Plz install ssh."
87    exit
88fi
89
90if [ -e /usr/sbin/sshd ]; then
91    echo "System has ssh Server (sshd)."
92else
93    echo "Plz install ssh Server (sshd)."
94    exit
95fi
[122]96}
[123]97
98
99# 檢查是否有安裝dialog
100function check_dialog(){
[128]101echo -e "\n= check_dialog (debug) ="
[123]102if [ -e /usr/bin/dialog ]; then
103    echo -e "\nSystem has dialog."
104else
105    echo "Plz install dialog."
106    exit
107fi
108}
109
110
111# 檢查是否安裝 php 5.5
112function check_php(){
[128]113echo -e "\n= check_php (debug) ="
[123]114if [ "$(php -v 2>/dev/null | grep "PHP 5" | awk '{print $2}' | cut -d "." -f1)" == 5 ]; then
115    echo -e "\nPHP'version is 5"
116else
[128]117    echo -e "\nplz install PHP 5 version!"
[123]118#    exit
119fi
120}
[128]121
122
123# scp nutchuser@master_ip:~ 把.ssh/目錄複製下來
124# 當使用者輸入nutchuser 密碼時,將此密碼紀錄到Nutchuser_Passwd
125# 此步驟若無法連到 master 則跳出
126function scp_master_nutchuser_sshkey(){
127echo -e "\n= scp_master_nutchuser_sshkey (debug) ="
128echo -e "mkdir -p /home/nutchuser/"
129mkdir -p /home/nutchuser/
130read -p "Plz input nutchuser passwd of mater node: " Nutchuser_Passwd
131
132echo -e "scp nutchuser@$1:~/.ssh /home/nutchuser/"
133expect -c "spawn scp -r -o StrictHostKeyChecking=no nutchuser@$1:~/.ssh /home/nutchuser/
134expect \"*: \"
135send \"$Nutchuser_Passwd\r\"
136expect eof"
137
138chown -R nutchuser:nutchuser /home/nutchuser/.ssh
139}
140
141
142# 新增nutchuser 帳號時用 Nutchuser_Passwd 當密碼
143function creat_nutchuser_account(){
144echo -e "\n= creat_nutchuser_account (debug) ="                             
145read -p "Create nutchuser, plz input nutchuser's password: " Nutchuser_Passwd
146useradd -m nutchuser -s /bin/bash
147
148expect -c "spawn passwd nutchuser                 
149expect \"*: \"
150send \"$1\r\"
151expect \"*: \"
152send \"$1\r\"
153expect eof"
154}
155
156
157# 用scp 複製 master 的設定與安裝資料
158# 目前僅需做到能無礙的複製遠端的/opt/nutchez/到local的/opt/
159function scp_packages(){
160echo -e "\n= scp_packages (debug) ="
161echo "scp -r -o StrictHostKeyChecking=no nutchuser@$1:/opt/nutchez/ /opt/"
162scp -r -o StrictHostKeyChecking=no nutchuser@$1:/opt/nutchez/ /opt/
163
164echo "chown -R nutchuser:nutchuser /opt/nutchez/"
165chown -R nutchuser:nutchuser /opt/nutchez/
166}
Note: See TracBrowser for help on using the repository browser.