#!/bin/bash # # $Id$ # # Script to act on various distributions with qemu # # Syntax: action2qemu script [[vm1][..|vmx]] ( dname=`dirname $0` prem=`echo $dname |cut -c1` if [ _${prem} = _"/" ]; then export TOOLHOME=$dname else export TOOLHOME=${PWD}/$dname fi . $TOOLHOME/common-env . $TOOLHOME/distro-env if [ _"$1" != _"" ]; then export SCRIPT=$1 shift else echo "Syntax: action2qemu script [[vm1][..|vmx]]" exit -1 fi if [ _"$1" = _"" ]; then export VMS=`cat ${TOOLHOME}/DISTROS` else export VMS="$*" single=1 fi chmod 755 $SCRIPT for m in $VMS; do echo "Working on $m" vmp=0 if [ ! -f /users/qemu/$m.qemu ]; then echo "VM unaccessible. Verify NFS mount" exit -1 fi if [ _"$sp" = _"" ]; then export sp=2222 fi ps auxww | grep qemu | grep -v grep | grep -q /users/qemu/$m.qemu if [ $? -ne 0 ]; then # Virtual machine alreday started vmp=1 $TOOLHOME/mkqemu $m & sleep 300 fi ssh -q -p $sp root@localhost "mkdir -p ${TOOLHOME}" scp -P $sp -p $SCRIPT root@localhost:${TOOLHOME} bn=`basename "$SCRIPT"` ssh -q -p $sp root@localhost "${TOOLHOME}/$bn" if [ $vmp -eq 1 ]; then ssh -q -p $sp root@localhost "halt -p" sleep 300 proces=`ps auxww | grep qemu | grep -v grep | grep /users/qemu/$m.qemu | awk '{print $2}'` if [ "$proces" != "" ]; then kill $proces sleep 10 fi fi done ) 2>&1 | tee /tmp/action2qemu.log