source: drbl-virt/sbin/drbl_client_cmd @ 250

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

Add: migration command

  • 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(){
[222]24echo "Usage: drbl_xen_cmd options"
[203]25echo "Options:"
[211]26echo "-c|--client         client name"
27echo "-x|--execute        execute command"
[203]28echo "Example:"
[222]29echo "drbl_xen_cmd -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
[222]48                    echo "-h client value is null"
[203]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
[212]84# = 3. ssh client to execute command  =
[211]85echo "[$client_name]"
[203]86
[212]87# check network
88IP_status="online"
89ping -c1 -w1 $client_name > /dev/null 2>&1 || IP_status="offline"
[203]90
[212]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.