Problem

I want to run SyncBackSE (version 4.5.15.0) on my Windows 7 system and have it backup via FTP over a tincVPN connection to another system (In this case Ubuntu 10.10 Linux, but that doesn’t matter). I want it to run every time I log on / turn on the Windows 7 system. I have Windows 7 configured to automatically log on my user. SyncBackSE has the ability to initiate a backup upon logon. It attempts 5 times to make the FTP connection to the backup host waiting a small number of seconds (25?) between each attempt. tincVPN takes a variable amount of time to establish a connection with the other tincVPN system, sometimes up to 10 minutes. If that connection time takes more than a minute and a half, SyncBackSE gives up and reports a “Scan Failure”.

I attempted to modify the SyncBackSE profile using the “Programs - Before” section to run a check before the profile to force SyncBackSE to wait for the VPN connection to be established. I wasn’t able to get this to work.

Though SyncBackSE has that ability to tweak timeout limits and reconnection attempts for FTP, these don’t apply with the initial connection, only reconnecting.

Solution

I solved this in the following way :

  • Deleted all logon based or time based scheduled runs of SyncBackSE from within SyncBackSE.
  • Created a batch file which loops and tests the connection, only launching SyncBackSE after it confirms the connection is established. Here is example code of my batch file, launch-syncbackse.bat :
    @echo off
    set TARGET=10.0.0.100
    echo "Waiting for %TARGET% to become reachable before starting backup."
    
    :start
    REM Sleep 5
    choice /T 5 /D y >nul
    ping -n 1 %TARGET% | find "bytes=32"
    if NOT "%ERRORLEVEL%"=="0" goto :start
    start "SyncbackSE" "C:\Program Files (x86)\2BrightSparks\SyncBackSE\SyncBackSE.exe" -m "MyProfileName"
    exit
    
  • Downloaded the tool, Hidden Start. We’ll use this to hide the batch file window while it waits for the VPN to connect
  • Unzipped/installed hstart to some location
  • Created a Folder within the Windows 7 Task Scheduler under “Task Scheduler Library” for my custom tasks (to make them easier to find)
  • Created a new task in this Task Scheduler folder to run this batch file
    • General : Checked “Run with highest privelages {note}This is absolutely vital. Because of the fact that SyncBackSE is a backup application and needs to be able to backup system files and other sensitive data, it must have administrative rights to run.{note}
    • Triggers : “At log on”
    • Actions :
      • Created a new action of “Start a Program”
      • Program/script : “C:\path\to\hstart.exe”
      • Add arguments (optional) : “/NOCONSOLE C:\path\to\launch-syncbackse.bat”

In my solution I assume the following :

  • The system on the other end of the VPN, the FTP server, is 10.0.0.100
  • The path to hstart is C:\path\to\hstart.exe
  • The path to the batch file is C:\path\to\launch-syncbackse.bat

Result

After setting this up, here’s what happens.

  • I boot into Windows 7 (in my case it auto logs me in)
  • Upon login hstart.exe launches the batchfile in the background. There is no command window shown. You can see the batch file looping by viewing the process with a tool like Process Explorer
  • Once the tincVPN establishes a connection and the target FTP server is pingable, the batch file launches SyncBackSE telling it to start the profile
  • SyncBackSE runs the profile and does the backup