Backup WSL2 Folder Projects to Windows Drive & Window Task Scheduler Backup

Simple Method 2025: 

 Tạo folder ở một ổ đĩa để backup: ví dụ: E:/backup_wsl 

 tạo 2 file bat và vbs: 

 auto-backup.bat 

 @echo off

setlocal enabledelayedexpansion

:: Get the current date

for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value"') do set datetime=%%i

:: Extract year and month

set year=!datetime:~0,4!

set month=!datetime:~4,2!

:: Set the backup file name

set backupFile=E:\backup_wsl\ubuntu-%year%-%month%.vhdx

:: Run the WSL export command

wsl --export Ubuntu-22.04 !backupFile! --vhd

echo Backup completed: !backupFile! 

 auto-backup.vbs 

 Dim WinScriptHost

Set WinScriptHost = CreateObject("WScript.Shell")

WinScriptHost.Run Chr(34) & "E:\backup_wsl\auto-backup.bat" & Chr(34), 0

Set WinScriptHost = Nothing 

 Nhấn Start trên keyboard và search Task Scheduler 

 Tạo một task để theo thời gian và option mong muốn trỏ tới action mở file auto-backup.vbs như hình 

 

 

 

 sau khi ok hết thì thử run task xem có chạy backup ko? Done. 

 

 Simple Method 2024: 

 

 robocopy /mir \\wsl.localhost\Ubuntu-22.04\home\son\ F:\backups\son\ 

 

 Window Task Scheduler Method: 

 backup_kyluat.bat 

 net use o: \\wsl.localhost\Ubuntu-22.04

robocopy /mir o:\home\son\kyluat F:\backups\son\kyluat /R:1 /W:5 /NP /V /XD node_modules /XD "mongo" /XD "redis" /XD "postgres" /XD dist

net use o: /delete 

 File này để chạy robocopy và copy vào ổ đĩa physical từ network drive 

 backup_kyluat.vbs 

 Dim WinScriptHost

Set WinScriptHost = CreateObject("WScript.Shell")

WinScriptHost.Run Chr(34) & "F:\backups\backup_kyluat.bat" & Chr(34), 0

Set WinScriptHost = Nothing 

 File này để cho Window Task chạy ngầm,... đỡ phải hiện ra popup window 

 Tạo trigger action trên window task để mở file backup_kyluat.vbs theo thời gian muốn chạy backup.