Om jag förstår rätt att om man får igång en sshd och rsync fungerande i windows och genererar och placerar openSSH-nycklar rätt plats i windows-klientdatorn så kan denna backup vara server-initierad och klient-delen (som har en ssh-server/demon snurrande) har ingen väg att komma åt serverdatorn som hanterar backupper hur mycket det än försöker. openSSH-nycklarna säkrar att båda datorerna identifierar varandra och kan inte spoofas av en middle-man server mellan burkarna som emulerar endera parten. SSH tål publik Internet, speciellt om man stänger av passwords-inlogging och endast godkänner ssh-nycklar och all data tunnlas i en krypterad kanal precis som en VPN-länk.
Det som är kvar att luska ut är hur man kommer åt shadowcopy-delen av filerna i windows efter en VSS-snapshot då dessa är inte enkelt åtkommliga eller listbara - varför just VSS-snapshot är att det inte är lika många spärrade/låsta filer som kan ge trubbel när rsync skall gå igenom filerna då en VSS-snapshot är en fryst bild av filsystemet och inget kommer att ändras under tiden medans tex. rsync gör backupper av filerna.
Den andra delen som kommer att stöka är rättighets-delen - att rsync har tillräckligt hög behörighet att läsa filer och hur man ordnar detta få någon annan gärna guida om.
...
Eftersom jag _inte_ vill sitta i händerna på färdiga - ofta GUI-program med propertiär kod, luskade jag lite vidare:
Windows VSS (aka shadowcopy) är normalt dold och kan inte kommas åt via fil-explorern
momenten nedan måste man göra i powershell i admin-läge, som vanlig 'luser' kan man inget göra
$s1 = (Get-WmiObject -List Win32_ShadowCopy).Create("C:\\", "ClientAccessible")
$s2 = Get-WmiObject Win32_ShadowCopy | Where-Object { $_.ID -eq $s1.ShadowID }
$d = $s2.DeviceObject + "\\"
med nedanstående kan man koppla den långa sökvägen i '$d' till en mapp med symbolisk länk
cmd /c mklink /d C:\shadowcopy "$d"
vilket innebär att allt som fans i filsystemet när första raden ovan kördes, nu har en fryst avbild under c:\shadowcopy
med "echo $d" får man ut sökvägen till shadow-copyn av filsystemet och ser typiskt ut som:
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\\
i vanlig powershell kan man också koppla denna sökväg till en mapp med
cmd /c mklink /d C:\shadowcopy "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\\"
[gör nu backupprocessen (vet inte hur man skall få denna att köra i admin-rättigheter) ]
För att ta bort den skapade shadow-copyn igen efter backupprocessen (i samma powershell som skapade denna)
Gör man inte det och shadowcopy inte är satt med begränsning av diskutrymme så kan det käka upp all ledig utrymme allt efter som diffen på shadowcopy och ordinarie filsystemet blir större, brukar förvisso sitta en automatisk limit på 15-20% av disktstorleken som klipper och tar bort de olika aktiva shadowcopy - men verkar diskutrymmet försvinna så är det att titta på inställningarna av shadowcopy då det är mycket annat i windows som också använder sig av dessa till och ifrån som OS-uppdateringar för att kunna göra rollback vid mer än 3 misslyckade boot/start, restore-points. mm.
sedan måste man ta bort den symboliska länken c:\shadowcopy igen om man tänker använda ovan som ett script, annars gnäller den på upptagen fil...
I powershell verka en så enkel sak att ta bort en fil vara oöverkomligt hinder med icke intuitiva kommandon och gnäller om att filen är upptagen hela tiden även med '-force' och i adminläge och det slutade med att köra med:
cmd /c "rmdir c:\shadowcopy"
dvs. man använder en DOS-kommando...
Detta är jätte-crude med info plockad från stack owerflow och det finns klar förbättringspotential.
Är man inte familjär med powershell sedan tidigare så är den jättehopplös och arbetar i fullständig mothårs för den som är mer van vid Unix/linux-shell och unix-kommandon då inget fungerar och ärligt sagt höjde jag ögonbrynet en smula att 'echo' i alla fall fungerade...