I feel like I’ve been looking for a couple of years for this solution and could never find it. Well I worked it out for myself so I thought I should post it so the answer can be found for others as it really does seem to be complete undocumented online.

void ledBlinking(word led, int amount, int timeOn, int timeOff){ // set the variables used between loop and function
for ( int i=1; i<=amount; i=i+1 ) { // for each i in amount run the below
digitalWrite(led, HIGH); // bring the chosen pin high
delay(timeOn); // wait the LED time on
digitalWrite(led, LOW); // bring the chosen pin low
delay(timeOff); // wait the LED time off
} // loop back to i counter until over
}

So hopefully you see what I'm doing here. I'm telling the function in void loop to use the pin redLed and blueLed with a word (not a string) variable. The rest are simple integers holding the amount of flashes, and how long to hold them on and off for.

I’m a bit chuffed with my scripting efforts in ESXi, so I thought I would share, I hope someone else might find this useful.

To give a bit of background, I run a VMWare Hypervisor ESXi server, it’s only a free license version single host, so most of the backup software doesn’t work that you can buy. But I have found an awesome script called ghettovcb that utilizes the snapshot and VM console commands to make VM running (and off) backups of my guest VMs. But obviously I want to get this data off the host, this is where ncftp comes in.

Now I found the code I needed to write to get all my machines backed up and transferred was crazy, and to get these two to work together.

Writing this, I’ve just thought I should code up all the commands into a single script file, maybe that’ll be next. But the below allows you to state a single VM’s backup folder, or a list with the “-f textfilewithvmsperline” command, which I’ve been able to use the same list from ghettovcb, so I know, if it’s backed up, it’ll be uploaded also.

#Turn the firewall off, got this permanently set though it's hand to keep it in mind
#esxcli network firewall set --enabled false

#Check a VM name has been given, and advise if not.
if [ "$1" == "" ]; then
echo "Please enter the name of the VM you wish to upload..."
exit 1
else
# Check if a -f command has been issued, for a file list upload
if [ "$1" == "-f" ]; then
echo "Flag issued for VMs file list to upload, load these and process.."
UPLOAD=`cat $2`
#echo "$UPLOAD" && exit 0 #Debugging line to see the list before it is run, this is normally commented out
else
echo "Single named VM listed to upload, processing.."
UPLOAD=$1
fi
fi

#Okay lets get down to business and process this list or single VM
for I in $UPLOAD; do
#Identify the most recent backup files for the listed VM
echo "You've stated $I, looking up the most recent backup."
LASTBACKUP=`ls -Art $BACKUPS/$I | tail -n 1`

#Check if a location has been found.
if [ "$LASTBACKUP" == "" ]; then
echo "Results of the search have failed, please check the listed name and try again."
else
echo "The last backup location is $SHORTNAMEFORECHO/$I/$LASTBACKUP"
# Use this location and upload it to Icharus NAS
echo "Beginning upload of folder"
$NCFTP -u$FTPUSER -p$FTPPASS -E -R $FTPHOST $FTPPATH $BACKUPS/$I/$LASTBACKUP
fi
done