#!/bin/sh
# run a vserver command on every vserver on the host, with doubled memory allowed
VSERVERS=$(/bin/ls /etc/vservers | egrep -v "newvserver-vars|unused|\."|sort)
for V in $VSERVERS
do
        echo $V
        guest_as=`cat /etc/vservers/$V/rlimits/as.soft`
        guest_rss=`cat /etc/vservers/$V/rlimits/rss.soft`
        guest_rss_hard=`cat /etc/vservers/$V/rlimits/rss.hard`
        let guest_as_big="$guest_as * 2"
        let guest_rss_big="$guest_rss * 2"
        let guest_rss_hard_big="$guest_rss_hard * 2"
        /usr/sbin/vserver $V running && (/usr/sbin/vlimit --xid $V -H --as $guest_as_big; /usr/sbin/vlimit --xid $V -S --as $guest_as_big; /usr/sbin/vlimit --xid $V -H --rss $guest_rss_hard_big; /usr/sbin/vlimit --xid $V -S --rss $guest_rss_big)
        vserver $V "$@"
        /usr/sbin/vserver $V running && (/usr/sbin/vlimit --xid $V -H --as $guest_as; /usr/sbin/vlimit --xid $V -S --as $guest_as; /usr/sbin/vlimit --xid $V -H --rss $guest_rss_hard; /usr/sbin/vlimit --xid $V -S --rss $guest_rss)
done
