Following are some references to create windows based batch file which performs backups and sends email using windows cmd functions. The task can be achieved by builtin or 3rd party backup applications, but most of the time , there is an Worm which always crawled in my mind and it forces me to do things oddly and above all strangely it somehow works amazingly good with the exact results I want!
Get File Size!
@echo off rem *** This batch file will list file size *** setlocal enableextensions disabledelayedexpansion rem Change the file name/location in below line set "file=d:\zaib\setup.exe" for %%z in ("%file%") do for /f "tokens=1,2" %%a in (' robocopy "%%~dpz." "%%~dpz." "%%~nxz" /l /nocopy /is /njh /njs /ndl /nc ') do if "%%~dz"=="%%~db" ( echo "%%~z" : [%%a] ) else ( echo "%%~z" : [%%a%%b] )
Result:
Get Folder Size!
@echo off rem *** This batch file will list FOLDER size *** setlocal enableextensions disabledelayedexpansion set "folder=%~f1" & if not defined folder set "folder=%cd%" set "size=" & for %%z in ("%folder%") do for /f "skip=2 tokens=2,3 delims=: " %%a in (' robocopy "%%~fz\." "%%~fz\." /l /nocopy /s /is /njh /nfl /ndl /r:0 /w:0 /xjd /xjf /np ^| find ":" ') do if not defined size ( (for /f "delims=0123456789." %%c in ("%%b") do (break)) && ( set "size=%%a%%b" ) || ( set "size=%%a" ) ) echo "%folder%" : [%size%]
Result:
Backup File Example:
I made following batch file long time ago which does the following
- Check for MAP drive , if not attache then reconnect it,
- If MAP drive is still not available , then break the script and send email to admin
- execute oracle
exp
 command to export the DB into the map drive - Delete files older then 15 days to prevent disk fill up
- email the result to the admin.
These are just for example only, just to give you an idea only
@echo off rem # Syed Jahanzaib # rem # ORACLE-DB SAS BACKUP SCRIPT BY zaib rem ####################################################### rem Setting various Descriptions via environment variables rem ####################################################### set dt=%date:~-4,4%%date:~-10,2%%date:~-7,2% for /F "usebackq tokens=1,2 delims==" %%i in (`wmic os get LocalDateTime /VALUE 2^>NUL`) do if '.%%i.'=='.LocalDateTime.' set ldt=%%j set ldt=%ldt:~0,4%-%ldt:~4,2%-%ldt:~6,2%__%ldt:~8,2%-%ldt:~10,2% set mail-to="ADMINMAIL@GMAIL.COM" set attachment=C:\backup\last-%ldt%.log set srvname=ORACLE-DB-SAS.AGP1 set mail-subject=ORACLE-DB-SAS DB %ldt% Dump/Export Report by_Syed_Jahanzaib break > %attachment% if exist b:\ ( echo Map Drive is present. Hurraaahhhh zaib you got it Alhamdulillah ) ELSE ( net use B: \\agpinf03\datapark ) if not exist b:\ ( cho Sorry unable to MAP Drive. c:\backup\blat\blat.exe %attachment% -to %mail-to% -i %srvname% -s "ERROR UNABLE TO MAP DRIVE - PLEASE CHECK IT. NO BACKUP" exit /b ) set logpath="B:\ORACLE-DB-sas" set fname="%logpath%\ORACLE-DB-sas-daily-backup-%ldt%" echo Executing Backup to DUMP ORACLE-DB-sas Database export Now ... echo . exp userid=SAS/ARORACLE-DBS file=%fname% direct=y COMPRESS=y echo . echo This script is made by AGP IS Dept. to export daily dump from ORACLE-DB system > %attachment% echo Please ntoe that Files older then 15 days will be deleted from Fileserver DATAPARK folder %logpath% >> %attachment% echo Database Export Done. now deleting files older then 15 days echo . echo Deleting B:\ORACLE-DB-sas\*.DMP files older then 15 Days from File Server. echo ****** >> %attachment% echo Last file name exported is >> %attachment% forfiles -p "b:\ORACLE-DB-sas" -s -m *.dmp -d 0 -c "cmd /c dir @path" >> %attachment% echo ****** >> %attachment% echo File Size is >> %attachment% ls -lh %fname%.dmp | awk " {print $4;} " >> %attachment% echo ****** >> %attachment% echo ****** >> %attachment% echo Following Files DELETED as per policy if applied >> %attachment% forfiles -p "b:\ORACLE-DB-sas" -s -m *.dmp -d -15 -c "cmd /c del @path" >> %attachment% echo ****** >> %attachment% echo SCRIPT ENDS HERE >> %attachment% echo powered by Syed Jahanzaib >> %attachment% echo Done. c:\backup\blat\blat.exe %attachment% -to %mail-to% -i %srvname% -s "%mail-subject%"
Sample Result:
sir help us with new squid 3.5
LikeLike
Comment by Sri Balaji — December 9, 2016 @ 11:46 AM