Архивирование всего сервера:
%windir%\System32\wbadmin.exe start backup -backupTarget:\\сетевой путь\ -include:C:,\\?\Volume{ID раздела}\ -allCritical -systemState -noVerify -user:UserName -password:Pwd -noInheritAcl -vssCopy -quiet
Здесь UserName / Pwd - учетка пользователя для подключения к шаре.
Для Windows Server 2012 работает более короткая инструкция:
%windir%\System32\wbadmin.exe start backup -backupTarget:\\сетевой путь\ -include:C: -systemState -noVerify -user:UserName -password:Pwd -quiet
Архивирование базы данных MS SQL Server (засунуть в батник):
sqlcmd -S SERVER -U sa -P [pwd] -i C:\backup.sql
"C:\Program Files\7-Zip\7z.exe" a \\[сетевой путь]\%date%.zip C:\Backup\DB.bak -[пароль на архив]
"C:\Program Files\7-Zip\7z.exe" a \\[сетевой путь]\%date%.zip C:\Backup\DB.bak -[пароль на архив]
Содержимое backup.sql:
DECLARE @pathName NVARCHAR(512)
SET @pathName = 'C:\Backup\DB.bak'
BACKUP DATABASE DB TO DISK = @pathName WITH NOFORMAT, INIT, NAME = N'DB', SKIP, NOREWIND, NOUNLOAD, STATS = 10
SET @pathName = 'C:\Backup\DB.bak'
BACKUP DATABASE DB TO DISK = @pathName WITH NOFORMAT, INIT, NAME = N'DB', SKIP, NOREWIND, NOUNLOAD, STATS = 10
Удалять архивы старше 30 дней с сохранением ежемесячного архива (задание запускается раз в месяц), батник:
NET USE V: \\[сетевой путь]
copy V:\day\DB%date%.zip V:\month\DB%date%.zip
forfiles /p V:\day /m *.zip /s /d -30 /c "cmd /c del @path /q"
NET USE V: /delete /yes
copy V:\day\DB%date%.zip V:\month\DB%date%.zip
forfiles /p V:\day /m *.zip /s /d -30 /c "cmd /c del @path /q"
NET USE V: /delete /yes