Forum
Selamlar, benim isteğim bir klasör içindeki .bak uzantılı son yedeklenen dosyayı (aynı uzantılı son 5 güne ait kayitlar var klasör içinde) başka bir klasöre başka bir isimle kopyalacak bir bat dosyası gerekli. Teşekkürler saygılar..
Kırmızı işaretli olan alanlara dikkat edelim,
özellikle %dd% -2 demek son iki güne ait dosyalar demek.
Kolay gelsin.
----------------------------------------------------------------
@echo off
for /f "tokens=1" %%i in ('date /t') do set thedate=%%i
set mm=%thedate:~3,2%
set dd=%thedate:~0,2%
set yyyy=%thedate:~6,4%
echo.
echo Yedekleme Tarihi : %dd%-%mm%-%yyyy% %time%
echo.
if %dd%==08 (set dd=8 ) else (if %dd%==09 (set dd=9 ) )
if %mm%==08 (set mm=8 ) else (if %mm%==09 (set mm=9 ) )
set /A dd=%dd% - 2
set /A mm=%mm% + 0
if /I %dd% GTR 0 goto DONE
set /A mm=%mm% - 1
if /I %mm% GTR 0 goto ADJUSTDAY
set /A mm=12
set /A yyyy=%yyyy% - 1
:ADJUSTDAY
if %mm%==1 goto SET31
if %mm%==2 goto LEAPCHK
if %mm%==3 goto SET31
if %mm%==4 goto SET30
if %mm%==5 goto SET31
if %mm%==6 goto SET30
if %mm%==7 goto SET31
if %mm%==8 goto SET31
if %mm%==9 goto SET30
if %mm%==10 goto SET31
if %mm%==11 goto SET30
if %mm%==12 goto SET31
goto ERROR
:SET31
set /A dd=31 + %dd%
goto DONE
:SET30
set /A dd=30 + %dd%
goto DONE
:LEAPCHK
set /A tt=%yyyy% %% 4
if not %tt%==0 goto SET28
set /A tt=%yyyy% %% 100
if not %tt%==0 goto SET29
set /A tt=%yyyy% %% 400
if %tt%==0 goto SET29
:SET28
set /A dd=28 + %dd%
goto DONE
:SET29
set /A dd=29 + %dd%
:DONE
if /i %dd% LSS 10 set dd=0%dd%
if /I %mm% LSS 10 set mm=0%mm%
set YedekTarih=%mm%-%dd%-%yyyy%
set error=E:\yedekler\NasYedek\GUNLUK\xcopy.error.log
set kaynak1=E:\yedekler
set hedef=\\192.168.62.1\yedek
set backupcmd= /Y /E /I /s /f /d:%YedekTarih%
echo %date% %time% >> %error%
echo Yedek islemi Basladi %YedekTarih% %time% > Yedekbasladi.log
xcopy %kaynak1%\SysState\*.* %hedef%\d\SysState %backupcmd% >> 1SysStateYedekDurum.log 2>> %error%
"Dalgasız denizde, herkes kaptandır."
Kodu kullana bildiniz mi?
"Dalgasız denizde, herkes kaptandır."
Selamlar, bulduğum bir komut var ama son dosyayı cekemiyor komutta yardım edebilecek var mı acaba Teşekkürler,
del /Q d:\backup\*.*
@ECHO OFF
FOR /F "tokens=2 delims= " %%V IN ("%DATE%") DO SET TDY=%%V
xcopy /y "\\asdasds1\b$\Backup\ElsystemNet\*.*" "D:\BACKUP\*.*" /d:%TDY%
xcopy /y "\\asdasds1\b$\Backup\ElsystemNetDataProcess\*.*" "D:\BACKUP\*.*" /d:%TDY%
xcopy /y "\\asdasds1\b$\Backup\ElsystemNetDocuments\*.*" "D:\BACKUP\*.*" /d:%TDY%
xcopy /y "\\asdasds1\b$\Backup\ElsystemNetDWH\*.*" "D:\BACKUP\*.*" /d:%TDY%
xcopy /y "\\asdasds1\b$\Backup\ElsystemNetTrack\*.*" "D:\BACKUP\*.*" /d:%TDY%
SET TDY=
rename d:\Backup\ElsystemNet_Full*.* ElsystemNet_Full.bak
rename d:\Backup\ElsystemNetDataProcess_Full*.* ElsystemNetDataProcess_Full.bak
rename d:\Backup\ElsystemNetDocuments_Full*.* ElsystemNetDocuments_Full.bak
rename d:\Backup\ElsystemNetDWH_Full*.* ElsystemNetDWH_Full.bak
rename d:\Backup\ElsystemNetTrack_Full*.* ElsystemNetTrack_Full.bak
kodu denedim ama istediğim son gün datası yukarda yazdığım komutu eskiden aynı benim istediğim şekilde biri kullanmış onu editlersek tam çözümü olabilir
Hiç kastırmaya gerek yok. Robocopy kullanın. /MIR parametresi ile klasör içindeki değişiklikleri hedefe uygular. Böylece sadece değişiklik olanları hedefe kopyalayacağından yedeğiniz daha kısa sürecektir. Yine aynı şekilde silinen bir dosyayı karşıdan da silecektir.
Hiç kastırmaya gerek yok. Robocopy kullanın. /MIR parametresi ile klasör içindeki değişiklikleri hedefe uygular. Böylece sadece değişiklik olanları hedefe kopyalayacağından yedeğiniz daha kısa sürecektir. Yine aynı şekilde silinen bir dosyayı karşıdan da silecektir.
Dediğiniz gibi hız önemli 1,5 Tb 'lık veriden bahsediyorum, günlük olarak db restore edilecek dosyalar farklı bir sunucudan db restore edilecek sunucuya aktarılacak ama çekilen sunucudaki datalar duracak sadece kopyalama yapılması gerekli her hangi bir sorun durumunda sunucudan kontrolu gerekli malum..
Kaynak dizindeki dosyalara ellemez. Test ortamında deneyin.
Kaynak dizindeki dosyalara ellemez. Test ortamında deneyin.
Hocam teşekkürler şöyle bir şey işimi görüyor.. Denedim işe yaradı..
ROBOCOPY C:\Users\ibrahimu\Desktop\1 C:\Users\ibrahimu\Desktop\2 /maxage:1
Fakat...
Çektiğim dosyanın ismini değiştirmek için komut biliyormusunuz restore'yide oto yapmak için sabit hep aynı isim gerekli çektiğim dosya isimlerinin sonunda şöyle ibareler var.
Örnek Son 5 Gün..
ElsystemNetTrack_Full_20160121010002.bak
ElsystemNetTrack_Full_20160122010003.bak
ElsystemNetTrack_Full_20160123010004.bak
ElsystemNetTrack_Full_20160124010002.bak
ElsystemNetTrack_Full_20160125010002.bak
yardımlarınızı bekliyorum..