source: drbl-virt/sbin/drbl_client_cmd @ 211

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

Rename & Modify: execute command to client

  • Property svn:executable set to *
File size: 2.2 KB
RevLine 
[203]1#!/bin/bash
2# Program:
3#   Deploy PXE PV VM to DRBL client
4# Author:
5#   Jazz, Rock {jazz, rock}@nchc.org.tw
6# Version:
7#    1.0
8# History:                                                                                         
9#   2010/08/27  Rock    First release (1.0)
10
11# [Source]
12source /opt/drbl-virt/conf/drbl-virt.conf
13source $Work_Path/functions_drbl_virt
14#source ./functions_drbl_PXE_PV-VM_create
15
16
17# [Declation]
18# = 1. Varibales declation =
19#vm_dir="/home/domains"
20
21
22# = 2. Functions declation =
23Usage(){
24echo "Usage: drbl_xen_cmd.sh options"
25echo "Options:"
[211]26echo "-c|--client         client name"
27echo "-x|--execute        execute command"
[203]28echo "Example:"
[211]29echo "drbl_xen_cmd.sh -c drbl101 -x 'shutdown'"
[203]30}
31
32
33# [Main]
34check_root
35# = 1. Parse parameters =
36if [ $# -eq 0 ]; then
37Usage && exit
38fi
39
40while [ $# -gt 0 ]; do
41    case "$1" in
[211]42        -c|--client)
[203]43            shift 
44            if [ -z "$(echo $1 |grep ^-.)" ]; then
45                if [ -n "$(echo $1)" ]; then
46                    client_name=$1
47                else
48                    echo "-h host_value is null"
49                    Usage && exit 2
50                fi
51            shift 
52            fi 
53            ;; 
[211]54        -x|--command)
[203]55            shift 
56            if [ -z "$(echo $1 |grep ^-.)" ]; then
57                if [ -n "$(echo $1)" ]; then
[211]58                command="$1"
[203]59                else
[211]60                    echo "-x command is null"
[203]61                    Usage && exit 2
62                fi 
63            shift 
64            fi 
65            ;;
66        -*)
67            echo "$0 $1 invalid option" >&2
68            echo ""
69            Usage >&2
70            exit 2
71            ;;
72        *)  Usage >&2
73            exit 2
74            ;;
75    esac
76done
77
78
79# = 2. Check null value =
80[ -z $client_name ] && echo "[Error] no host" && Usage && exit 2
[211]81[ -z "$command" ] && echo "[Error] no command" && Usage && exit 2
[203]82
83
[211]84# = 3. Check client exist
85grep $client_name $Work_Home/etc/IP_HOST_TABLE >> /dev/null
[203]86if [ $? -ne 0 ]; then
87    echo "[Error] This host is not DRBL client"
88    exit 2
89fi
90
[211]91echo "[$client_name]"
[203]92
93# = 4. ssh host to deploy VM  =
94# local varibales
95host_IP=$(cat $Work_Home/etc/IP_HOST_TABLE | grep $client_name | awk '{print $1}')
96
97# start ssh
[211]98ssh -o StrictHostKeyChecking=no $host_IP "$command"
[203]99
Note: See TracBrowser for help on using the repository browser.