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.
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 Framework 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. 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 a secret file is found, 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. 1. RsyncShareName = [Module Name] Should be the same as the one added in BackupPC. Case matters, so UserFolder and userfolder are different. 2. 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. 3. Comment: A short comment, like “User Folder” 4. BackupPC Server IP Address: The Allowed host(s) to access the PC and run rsync remotely Strict Modes, Read Only, and List: Consult the samba website above for more information As you hover over the window, if a rsync.conf file is found, it will display: Conf File Exists. If not, it displays: No Conf File 5. Load Defaults will place default values in the fields and check boxes. 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. | |
Task Settings 1. Renew VSS Folder every ‘x’ hours Default = 6 hours. Set the time (in hours) that the script looks at the Time Stamp on the Shadow folder. When the time has exceeded, the Shadow Folder is removed and recreated. 2. Only Allow VSS Backup Tasks to Run on AC Power? Default = Yes. To allow the VSSBackupPC scheduled tasks to run if the laptop is running on batteries, uncheck the box. If checked, the Scheduled Tasks will only run while the computer is plugged in. (Thanks to agu for finding this setting) | |
Install Services 1. 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 2. Select the Subnet Mask of the Network. The default is 24 (255.255.255.0). 3. Install Services. This will open two command windows and install the services needed to run VSSBackupPC. 4. If needed, the Remove Services button will remove the services so the C:\rsyncd folder can be deleted. 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 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. 1. Add a DumpPreUserCmd script to the BackupPC server. Create a folder that is accessible by the backuppc user, for example, choose to create a ‘scripts’ subfolder where backuppc resides In the folder, create two files: preshare.sh pass 2. preshare.sh: Replace <Enter_Secrets_File_UserName> with the user name used above in the secrets file. 3. pass (used in preshare.sh): Enter the secrets password used in the secrets file. Nothing else, no brackets, etc. 4. 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. 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. As always, enjoy! | |
VSSBackupPC.exe and the resource.zip file can be downloaded here: VSSBackupPC.zip |