Thursday, 21 June 2018 12:55

BackupPC and Volume Shadow Copy Services (VSS)

Rate this item
(0 votes)

BackupPC can be a very daunting task when first starting out, but as many people who have installed it multiple times will say, it's not that bad, but it does take some time to figure out.  One of my sayings (as I may have said before), "It's easy, if you know how to do it," meaning it's not easy, if you don't. :)  BackupPC is one of them, but don't fear, if you work through the issues, you'll make it. Additionally, my plan is to write my notes how I install it in a future post.

For those that get it running, the first thing they'll notice is that it doesn't copy open files.  So, for those computers where the backup begins and people are working on stuff, open files are not backed up, i.e., Outlook Files or open Office documents.  This bugged me because I was and I am a BackupPC fan.  I scoured the internet in search of an easy way (emphasis on easy) to have BackupPC copy open files on Windows Computers.  Well, in my search, I didn't find an easy one, so I went on a development spree to try and figure out a way to do it.  It took a few weeks of trial and error, but I can now say, there is an easy way to do it.

Over the years, what I did grew into a hodge podge of files in a folder and a few batch files.  These past few weeks, I decided to try and put them together into one interface.  I wanted to use AutoIt, but the compressed executable, although doesn't have viruses, is flagged by many Antivirus programs as having one just because it was compressed by AutoIt.  I didn't want to keep answering the question, "Does it contain viruses," so I opted to use Visual Basic, instead.  So, below is what has been developed.  From my experience, this solution runs on anything after Windows 7.  I've, successfully, run this solution on Windows 7/8/10 without problems.

This is the first version of the GUI, so there may be a few bugs. If you find one or more, please post it in the comments below.

Additionally, I uploaded the exe's to VirusTotal.com.  They have passed all virus checks.  I would encourage you to do the same, if you decide to use these files.  I can, personally, attest that I did not write any backdoors nor viruses in these files.  These are clean and feel free to use them, if you like.

 

 VSSBackupPC

 

VSSBackupPC is designed to be used with the BackupPC server software.  This app uses Volume Shadow Copy Services so the server can backup open files on the C:\ drive.  To accomplish this, it uses Cygwin and Rsync for the data transfer.

I tried to make this as easy as possible.  I know it's a lot of writing below, but, in reality, there are only a few settings.

This app is written in Visual Basic and the .Net Framwork version 4.6.1 is needed to run it.

The Welcome window

Select the resource zip file that is included in the download.

The contents of the resource file is below.

When the app is started, it creates a folder called: C:\rsyncd

This is a hard coded folder and cannot be changed at this time.

All files related to this app will be created and placed in this folder.
 

Rsyncd.secrets

Enter the rsync user name and password.  It should be the same as used on the BackupPC server in these fields: RsyncdUserName, RsyncdPassword


As you hover over the window, if the app finds the secrets file, it will display: Secrets File Exists.  If not, it displays: No Secrets File

Click the Add button to create the file and/or add credentials to an existing one

To find more information about the secrets file, check the client setup on the BackupPC website.

 

Rsyncd.Conf

See samba.org website for more information about this file.

RysncShareName = [Module Name]

Should be the same as the one added in BackupPC. Case matters, so UserFolder and userfolder are different.

Choose the Local Backup Path.

Do Not Use VSS: Checking this box will force BackupPC to use the actual folder and will not copy open files.  At this point, drives other than C: are not included in the Shadow folder, but if there is interest, it can be added in a future version.

Comment:  A short comment, like "User Folder"

BackupPC Server IP Address: The ‘Allowed host(s)’ to run rsync remotely

Strict Modes, Read Only, and List: Consult the samba website above for more information

As you hover over the window, if the app finds the conf file, it will display: Conf File Exists.  If not, it displays: No Conf File

Clicking ‘Load Defaults’ will place default values in the fields and check boxes.  You'll want to edit the RsyncShareName, Host IP Address, and/or Path.  Then, you're set.

 

 
Manually Edit Rsyncd.Conf

You can manually edit the rsyncd.conf file.  This is not necessary nor encouraged, but is built-in to help with advanced configurations.
 
Install Services

Type the Host IP Network.  Only type the first three octets of the network.  There are a few drop down examples, but you can type any IP address that is needed.1  For example:
192.168.1
172.16.0
10.0.0

When ready, click the ‘Install Services’ button.  This will open two command windows and will install the services needed to run.

To remove the service, click the ‘Remove Services’ button.

When VSSBackupPC starts, it checks for a running process of rsync on startup.  If it finds one, it will display a message asking to remove the service, if it needs to be installed again.  You do not have to remove the service if you only need to change the secrets or conf file.

1This network is added to the Private firewall profile to allow port 873 and pings through it. The script does not change the public profile in any way so make sure the computer is in the private firewall profile

The script adds .0 and netmask of 24, for example: 192.168.1.0/24At this point, this is hard coded.  If another network mask is needed, edit the rsyncd firewall rules after the script finishes. This can be changed in future versions, if there is interest.

 
The resource zip file contains 8 files as seen to the right.  The Cygwin files can be found on the internet as well as the vshadow,exe file.  removevss.exe and vss-backuppc.exe were written in Visual Basic to handle the logic.

All files have been uploaded and checked at VirusTotal.com.  Feel free to upload them to check yourself.  There are no Viruses or Backdoors written in the code.
 

There is one, additional, thing you have to do on the BackupPC server, but it's not difficult.

Add a DumpPreUserCmd script to the BackupPC server.

Create a folder that is accessible by the backuppc user, for example, chose to create a 'scripts' subfolder where backuppc resides

In the folder, create two files:

  1. preshare.sh
  2. pass

*Replace <Enter_Secrets_File_UserName> with the user name used above in the secrets file.

The second file is called 'pass' and is used in the preshare.sh command. 

Enter the secrets password used in the secrets file. Nothing else, no brackets, etc.

In the DumpPreUserCmd field, type

sh + the path to the preshare.sh + space + $host

Ex: sh /media/backup/scripts/preshare.sh $host

 

 

1.  preshare.sh:
---------------------
#!/bin/bash
echo "I am the dumppresharecmd for BackupPC..."
echo "======================================="
 
rsync --dry-run --password-file=/media/backup/scripts/pass rsync://<Secrets_File_UserName>@$1/cDrive

#Ex. rsync --dry-run --password-file=/media/backup/scripts/pass rsync://SUser@$1/cDrive

echo "Waiting 60 seconds.  Giving time to create shadow copy"
sleep 60
echo "all Done."
echo "======================================"

 


2.  pass
---------------------
# =======================
Secrets_File_Password
#Ex.   mysecretpass
# =======================

 

Some notes:

A VSS folder called c:\shadow is created.  This is where BackupPC is directed.  At this time, if the c:\shadow folder is currently found by the script, it is removed and created again if it's more than 6 hours old.  This is hard coded, but can be changed in a future version, if there is interest. 

Additionally, the script creates a logfile called: vsslog.log and is found in the C:\rsyncd folder.  When the logfile reaches 2MB, it is deleted and recreated.

I hope this makes sense and may even help someone down the road.  If there are any questions, bugs, or comments, leave them below.

As always, enjoy!

VSSBackupPC.exe and the resource.zip file can be downloaded here: VSSBackupPC.zip

 

Read 32 times Last modified on Friday, 22 June 2018 13:00
More in this category: « Install Teamviewer 13 on CentOS 7

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.