[CentOS] virtdown script

Tue May 3 18:55:39 UTC 2011
Ljubomir Ljubojevic <office at plnet.rs>

Tim Dunphy wrote:
> hello list!
> 
> I have a small shell script that I wrote that is meant to quickly bring down all of my xen instances in a quick and easy manner. Odd thing is, it does work on the command line. But if I put it into a script this happens:
> 
> 
> [root at LCENT03:/home/bluethundr/bin] #virtdown
> 
> it expects another command to happen. which is odd since all of the text delimiters (" and ') are balanced according to vim. I was wondering if I could have an opinion on why this might be happening. Here's the script:
> 
> 
> 
> #/bin/bash
> 
> for i in $(virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print $1}');
> do
> /usr/bin/virsh shutdown $i
> done
> 
> 
> thanks in advance!
> tim

Last thing I saw is "#/bin/bash" instead of "#!/bin/bash". Fix and try.

The rest of suggestions:
Add plenty of unique "echo" lines so you can see where it brakes.

Also try $(`virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print 
$1}'`)

and try sending that same part to variable first and echo the variable 
so you can see output.


#!/bin/bash

list=$(virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print $1}')
echo "the list is=$list"; sleep 2
for i in "$list";
do
    echo "Running shutdown for item $i"; sleep 2
    /usr/bin/virsh shutdown $i
    echo " shutdown for item $i is complete"; sleep 2
done

and try version with:
list=$(`virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print $1}'`)

Ljubomir