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
Line 
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
9# 正式版之後,記的將不必要的 echo 拿掉
10
11
12# 檢查執行這個程式的是否為root權限
13function check_root(){
14# 正式版後可拿掉此 echo
15echo -e "\n= check_root (debug) ="
16if [ $USER != "root" ]; then
17    echo -e "\nPlz Change root to execute it!!!"
18    exit
19fi
20# 正式版後可拿掉此 echo
21echo -e "Identify is root."
22}
23
24
25# 查出此主機的作業系統,以及版本
26function check_systemInfo(){
27echo -e "\n= check_systemInfo (debug) ="
28echo -e "\nYour system information are:"
29lsb_release -a 2>/dev/null
30}
31
32
33# 檢查之前是否有安裝NutchEz
34# 目前先檢查是否有/opt/nutchez 這個資料夾即可
35function check_nez_installed(){
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."
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(){
46echo -e "\n= check_sunJava (debug) ="
47echo -e "\nNutchEz need Sun Java JDK 1.6.x or above version"
48javaPath="/usr/"
49
50test -e $javaPath/bin/java || read -p "Plz input specific Java path\
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 
59        echo "Java is not Sun version, plz install sun Java 1.6.X"
60        exit   
61    fi
62   
63    large16=$(echo "$JAVA_version >= 1.6" | bc)
64    if [ "${large16}" == 0 ]; then
65        echo "Java version is too old (it need 1.6.X above)"
66        exit
67    fi
68   
69    echo "System has Sun Java 1.6 above version."
70else
71    echo "Plz install Sun JAVA 1.6.X or above version"
72    exit
73fi
74
75unset JAVA_org
76unset JAVA_version
77}
78
79
80# 檢查是否有安裝openssh, openssh-server
81function check_ssh(){
82echo -e "\n= check_ssh (debug) ="
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
96}
97
98
99# 檢查是否有安裝dialog
100function check_dialog(){
101echo -e "\n= check_dialog (debug) ="
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(){
113echo -e "\n= check_php (debug) ="
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
117    echo -e "\nplz install PHP 5 version!"
118#    exit
119fi
120}
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.