source: drbl-virt/sbin/drbl_client_cmd @ 247

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

Add: migration command

  • Property svn:executable set to *
File size: 2.2 KB
Line 
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 options"
25echo "Options:"
26echo "-c|--client         client name"
27echo "-x|--execute        execute command"
28echo "Example:"
29echo "drbl_xen_cmd -c drbl101 -x 'shutdown'"
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
42        -c|--client)
43            shift 
44            if [ -z "$(echo $1 |grep ^-.)" ]; then
45                if [ -n "$(echo $1)" ]; then
46                    client_name=$1
47                else
48                    echo "-h client value is null"
49                    Usage && exit 2
50                fi
51            shift 
52            fi 
53            ;; 
54        -x|--command)
55            shift 
56            if [ -z "$(echo $1 |grep ^-.)" ]; then
57                if [ -n "$(echo $1)" ]; then
58                command="$1"
59                else
60                    echo "-x command is null"
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
81[ -z "$command" ] && echo "[Error] no command" && Usage && exit 2
82
83
84# = 3. ssh client to execute command  =
85echo "[$client_name]"
86
87# check network
88IP_status="online"
89ping -c1 -w1 $client_name > /dev/null 2>&1 || IP_status="offline"
90
91if [ $IP_status == "offline" ]; then
92    echo "[Error] $client_name's network is offline !!!"
93else
94    ssh -o StrictHostKeyChecking=no $client_name "$command"
95fi
Note: See TracBrowser for help on using the repository browser.