Posted on

Ghetto backup for all (part 1)

Why to use Ghetto ?

There are a lot of backup softwares for vmware virtual machine and some are free, but in a scenario it should not be possible to use one of these : for example, if you have vmware esx hosts with old versions (4.0,5.5).

Prepare connection to esx host  via SSH

Usually you get connection to esx host using vsphere client, but you have to use ghetto script directly inside esx operating system. So you need to operate using a prompt via ssh. Download, for example, putty : https://www.putty.org/

Install putty.

SSH port in esx host is number 22. To understand if this port is open, you could open a dos prompt and type

telnet your_esx_ip_address 22

you should recive some response.

Enable SSH on the ESX Host

By default SSH is disabled on an ESXi host.

  1. Open and login to the vSphere Client
  2. Click on the configuration tab and then on Security profile
  3. Click on Properties and Remote Tech Support (SSH)
  4. Click on Options and choose the startup policy.

ESX user for SSH

To connect to esx host via putty you need to create a user on esx. Open vsphere client.

  1. Log in to the vSphere Client as a root user.
  2. Click Users & Groups.
  3. Right-click on a blank area and click Add.
  4. Enter a username and password. Confirm your password.
  5. Select Grant shell access to this user.
  6. Select root group from the dropdown and click Add > OK.

 

How to upload script on esx

Ghetto script is a file and you will have to upload on esx server this file. To do this task we”l use for example WinSCP that is a free and open-source file transfer utility for Windows. It can be used to transfer files between a local and remote machine over SSH. You can download it from here : https://winscp.net/eng/download.php

Install it. Now you have all tools and we can start to work on Ghetto.

Ghetto script

First of all you need to download ghetto from github repository : https://github.com/lamw/ghettoVCB   

Unzip it. Open with an editor the file ghettoVCB.sh. You have to update only one line of script :

VM_BACKUP_VOLUME=/vmfs/volumes/mini-local-datastore-hdd/backups

That you have to substitute with the path of the datastore where you’ll save the backup of vm.

Two options to find the datastore path :

  1. Via vsphere client : you have to find the list of datastores. Using datastore’s name the path will be : /vmfs/volumes/DATASTORENAME
  2. Usng Putty connection : go in vmfs folder, volumes folder.

Prepare virtual machine list

If you ‘ll call ghetto script , you’ll backup all machines in your esx. Instead you can backup only some specific virtual machine. Create a new file, for example mylist.txt with the esactly name of each virtual machine to backup, in each line.

Upload Files to Esx

So you have two files (ghettoVCB.sh, mylist.txt) to upload in esx environment. To do this you can use WinSCP. When the Login dialog pops up click on New Site, enter the IP address in the hostname field, the username and password and then click Login.

WinSCP window is divided in two part : on the left side there is your computer, on the right side there is the esx environment. On esx, create a new folder and upload in it the two files.

Prepare ghetto script to execute

Double click on the PuTTY shortcut , enter the IP address of the ESX  and click Open. Enter the username and your password and you should now be connected.

To continue you need to have administrator (root) priviliges. Write

su -

and enter the password of root user.

Now you need to give execution privileges to .sh file. Navigate in the folder where you have put your files and write the command

chmod +x ghettoVCB.sh

Run the script

Write the command :

./ghettoVCB.sh -f mylist.txt -l output.txt

This command will backup all the virtual machines written in mylist.txt and will write the log of process in the file output.txt in the same folder.