Radim jednu skriptu koja bi trebala prekopirati trenutno stanje neke mape udaljenog računala u lokalnu mapu i spremiti changelog, a nakon toga na dnevnoj bazi pakirati u
.zip sa dodanim datumom.
To sam uspio napraviti jednostavno sa kombinacijom robocopyja i 7za, ali moram još nekako uvrstiti kontrolu u 2 stupnja da li je računalo online:
- Prva provjera prije samog pokretanja robocopyja; ako je računalo offline/ugašeno nema smisla da 2 sata vrti skriptu i puni log bezveze wait requestima.
- Druga provjera prije trpanja u arhivu, ako se u međuvremenu računalo ugasilo postoji dobra šansa da robocopy nije svoje odradio do kraja
U oba slučaja bi skripta trebala u predefined lokaciju baciti prazan fajl sa _failed afixom kako bi lako kasnije vidio što je gdje puklo.
Na serveru sam dodao preko
File screening policyja da mi automatski mailom dojavi ako se pojavi koji
_failed.txt fajl i stvar šljaka da bi skripta šljakala kako spada.
Uspio sam skemijati si skriptu koja radi, ali izbacuje fail log
Code:
IF EXIST "\\192.168.121.2\c$" (
robocopy "\\192.168.121.2\c$\share" "D:\Store\ProgressULJ" *.* /mir /copyall /zb /np /xf lbia*.* rcda*.* srta*.* dbi*.* *.lk /r:2 /log+:"C:\Logs\Sync-progressULJ_%DATE:~7,2%_%DATE:~4,2%_%DATE:~12,2%.txt") else (type NUL > C:\Logs\Sync-progressULJ_%DATE:~7,2%_%DATE:~4,2%_%DATE:~12,2%_failed.txt
)
IF EXIST "\\192.168.121.2\c$" (
7za a -tzip "D:\Daily\ProgressULJ_%DATE:~7,2%_%DATE:~4,2%_%DATE:~12,2%.zip" "D:\Store\ProgressULJ\*" -mx=5) else (type NUL > C:\Logs\Sync-progressULJ_%DATE:~7,2%_%DATE:~4,2%_%DATE:~12,2%_failed.txt
)
Zajeb je da mi skripta baca fail log fajl i neovisno o tome ako se primarni uvjet izvršio (sinkronizacija uspjela i skripta odradi svoje) pa mi dolaze mailovi za ispravno odrađene taskove.
Zasad sam izbacio
if exist loop da mi ne dolaze na mail upozorenja, ali bi rado to osposobio, otvoren sam za razne prijedloge
