File: D:/bin/webbackup/webbackup - FreeArc Tests.cmd
rem SS, 24/3/06 version for 1and1 server
rem SS, 10/10/08 version for new 1and1 server
rem SS, 25/09/09 improved log to add date/time and dir of FTP folder, also send today's log as email
rem SS, 20/11/09 added backup to office web server (now new BE unlimited connection)
rem SS, 01/12/09 adjusted backup to office web server from 21 to 14 days due to limited space on c drive
rem SS, 04/03/10 added backup of c:\bin, moved ftp 1and1 from first to third position, start time adjusted from 2am to 3am
:: SS, 05/05/12 changed mysql backup to backup each database to a separate .sql file, easier to restore
:: SS, 06/05/12 changed to use 7-Zip instead of WinZip, improved look for log, with '---' and date time on one line,
:: also file dates are nowin ISO format with hyphen separator (e.g. 06052012.zip becomes 2012-05-06.7z)
:: each database folder is listed and start time shown
:: SS, 07/05/12 minor improvements, separate webbak.zip and mysqldump.zip non longer created, last 7 days kept on server
:: SS, 08/05/12 moved the secure data, DNS, etc to the start after noticing it was taking 5 mins to add to zip, even though quite small in size
:: SS, 10/05/12 replaced two of the cmddate's with d:\bin\cmddate\cmddate-old to delete using old style dates
:: SS, 24/05/12 changed backups to delete from ontheworldweb.com from 31 to 65 days ago
:: SS, 26/06/12 now on new FastHosts server, removed 1and1 FTP, changed d:\backups to e:\backups, e: partition used just to hold backups, added data to path D:\MySQL Datafiles\
:: SS, 05/07/12 Windows FTP command not working, i.e. doesn't support passive transfers, changed to use WinSCP
:: SS, 12/07/12 Changed to use secure (FTPS) connection
:: SS, 15/07/12 Speed improvements, max compression done using one command to prevent creation of temp file, now using LZMA2 for all 4 threads of new Core i5. Now keeping 30 days instead of 7, zipping to t: drive (different physical drive to mysql dumps for speed and less stress)
:: SS, 16/03/13 Added a newline after the FTP because it was adding the '---..' to the same line in the log
:: SS, 03/09/13 Added FTPing the back to new backup server
:: SS, 20/04/14 Changed from 65 to 92 days for home server (i.e. keep 3 months, quarter)
:: SS, 22/04/14 Added set tmpbakpath=e:\backups, set to t:\backups to swap e: and t: to check and optimise performance
:: might perform better if OS reads mainly from drive 0 of mirror, writing to drive 1 (where t: drive is, should be faster)
:: SS, 22/04/14 Was no quicker, in fact, it was a little slower if anything, reverted back
:: SS, 22/04/14 Installed latest WinSCP 5.5.3 (was 4.3.8) seemed to improve the speed. FileZilla Client has commandline only to make the connection, not tp transfer the account file (what's the point of that?)
:: SS, 27/04/14 Changed from 7-Zip to FreeArc
d:
cd d:\bin\webbackup
:: now using WinSCP, ftpexe is the path to the app
set ftpexe=d:\bin\winscp\winscp.com
:: (SS,27/4/14) set part to arc.exe (because it wasn't working in Task Scheduler)
set arcexe="C:\Program Files (x86)\FreeArc\bin\arc.exe"
:: (SS,15/7/12) added following for one place to change the backup destination, change to e: for time being due to issue with t: drive
:: (SS,22/07/12) changed back to t:, issue with t: drive now resolved (new motherboard, i.e. chassis as Fasthosts referred to)
:: (SS,22/04/14) changed from t:\backups to e:\backups, later back to t:\..
set bakpath=t:\backups
:: (SS,22/04/14) added following to allow swapping of e & t drives to check performance, was e:\backups, set to t:\backups, later back to e:\..
set tmpbakpath=e:\backups
echo ============================================================>logtoday.txt
echo %date% %time% Start>>logtoday.txt
rem --- delete backup of 30 days ago (only keep past 30 days)
cmddate -s -30 del %bakpath%\#.7z>op.bat
:: (SS,27/4/14) added FreeArc
cmddate -s -30 del %bakpath%\#.arc>op.bat
:: (SS,7/5/12) set name f backup file YYYY-MM-DD.7z
:: (SS,15/7/12) changed from e: to t: drive, different physical drive to mysql dumps for speed and less stress
:: (SS,27/4/14) changed from .7z to .arc
cmddate -s 0 set bakfile=%bakpath%\#.arc>>op.bat
call op.bat
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% Start secure data to zip>>logtoday.txt
rem --- secure data backup, added 26/4/06, SS
::del d:\backups\securedata.7z
:: wzzip d:\backups\securedata.zip d:\data\*.* -rp -whs -ex -smaxis5oscaris10blahblah#~#~$*![(])blah456
:: (SS,6/5/12) winzip replaced with 7z
:: (SS,17/7/12) switched to LZMA2
::7z a -t7z -mx=9 -m0=LZMA2 -r -pmaxis5oscaris10blahblah#~#~$*![(])blah456 %tmpbakpath%\securedata.7z d:\data\*.*
:: (SS,27/4/14) switched to FreeArc default settings, also added output to logtoday.txt, -i0 disables the progress indicator
%arcexe% a -i0 -r -pmaxis5oscaris10blahblah#~#~$*![(])blah456 %tmpbakpath%\securedata.arc d:\data\*.* >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% Start mysqldump>>logtoday.txt
echo.>>logtoday.txt
rem --- mysql backup
rem --- use mysql dump command to do dump all the databases
rem (SS,21/3/12) added --routines to make sure functions and procedures are also backed up
rem NB. the --opt options does the following --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset.
rem all tables in a database are locked before the database is added to the dump
rem mysqldump --opt --user=root --password=oscaris10 --all-databases --routines >d:\backups\mysql_backup.sql
:: (SS,5/5/12) Replaced above with following to individually dump each db
:: go through each folder in mysql datafolder, running the mysqldump command for each database to the d:\backups\mysql folder
pushd "D:\MySQL Datafiles\data"
for /d %%f in (*) do mysqldump.exe --user=root --password=oscaris10 --routines --databases %%f > "%tmpbakpath%\mysql\%%f.sql"
popd
:: list sql files in name order
dir %tmpbakpath%\mysql /a-d >>logtoday.txt
:: list sql files in size order
::dir d:\backups\mysql /a-d /o-s >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% Start adding mysql, web, bin, DNS, securedata to zip>>logtoday.txt
rem delete previous zip
rem del d:\backups\mysql_backup.7z
rem --- zip it up
rem wzzip d:\backups\mysql_backup.zip d:\backups\mysql_backup.sql -whs -ex -smaxis5
rem (SS,3/5/12) replaced above with following, now held in folder
:: wzzip d:\backups\mysql_backup.zip d:\backups\mysql\*.sql -whs -ex -smaxis5
:: (SS,6/5/12) winzip replaced with 7z
:: 7z a -t7z -mx=9 -ms=256m -r -pmaxis5 %bakfile% e:\backups\mysql
:: (SS,15/7/12) replaced above with following to do all with one command (prevents creation of temp file), also switched to LZMA2 to use all 4 threads on new Core i5 (quicker)
:: 7z a -t7z -mx=9 -m0=LZMA2 -r -pmaxis5 %bakfile% %tmpbakpath%\mysql d:\web -x!*.avi -x!*.mov -x!*.mpg d:\bin\*.* C:\WINDOWS\system32\dns\*.dns %tmpbakpath%\securedata.7z
:: (SS,27/4/14) switched to FreeArc default settings, also added output to logtoday.txt, -i0 disables the progress indicator
del %bakpath%\2014-04-27.arc
%arcexe% a -m1 -i0 -r -pmaxis5 %bakfile% %tmpbakpath%\mysql d:\web -x!*.avi -x!*.mov -x!*.mpg d:\bin\*.* C:\WINDOWS\system32\dns\*.dns %tmpbakpath%\securedata.arc >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% -m2 Start adding mysql, web, bin, DNS, securedata to zip>>logtoday.txt
del %bakpath%\2014-04-27.arc
%arcexe% a -m2 -i0 -r -pmaxis5 %bakfile% %tmpbakpath%\mysql d:\web -x!*.avi -x!*.mov -x!*.mpg d:\bin\*.* C:\WINDOWS\system32\dns\*.dns %tmpbakpath%\securedata.arc >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% -m3 Start adding mysql, web, bin, DNS, securedata to zip>>logtoday.txt
del %bakpath%\2014-04-27.arc
%arcexe% a -m3 -i0 -r -pmaxis5 %bakfile% %tmpbakpath%\mysql d:\web -x!*.avi -x!*.mov -x!*.mpg d:\bin\*.* C:\WINDOWS\system32\dns\*.dns %tmpbakpath%\securedata.arc >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% -m4 Start adding mysql, web, bin, DNS, securedata to zip>>logtoday.txt
del %bakpath%\2014-04-27.arc
%arcexe% a -m4 -i0 -r -pmaxis5 %bakfile% %tmpbakpath%\mysql d:\web -x!*.avi -x!*.mov -x!*.mpg d:\bin\*.* C:\WINDOWS\system32\dns\*.dns %tmpbakpath%\securedata.arc >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% -mex8 -lc- -ld- Start adding mysql, web, bin, DNS, securedata to zip>>logtoday.txt
del %bakpath%\2014-04-27.arc
%arcexe% a -mex8 -lc- -ld- -i0 -r -pmaxis5 %bakfile% %tmpbakpath%\mysql d:\web -x!*.avi -x!*.mov -x!*.mpg d:\bin\*.* C:\WINDOWS\system32\dns\*.dns %tmpbakpath%\securedata.arc >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% default Start adding mysql, web, bin, DNS, securedata to zip>>logtoday.txt
del %bakpath%\2014-04-27.arc
%arcexe% a -i0 -r -pmaxis5 %bakfile% %tmpbakpath%\mysql d:\web -x!*.avi -x!*.mov -x!*.mpg d:\bin\*.* C:\WINDOWS\system32\dns\*.dns %tmpbakpath%\securedata.arc >>logtoday.txt
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% Finished zip>>logtoday.txt
goto end
rem --- delete files which are now in zip
rem del d:\backups\mysql_backup.sql
rem (SS,3/5/12) replaced above with following, now more than one file held in new mysql folder
del %tmpbakpath%\mysql\*.sql
:: delete the added zips
:: (SS,27/4/14) changed from .7z to .arc for FreeArc
del %tmpbakpath%\securedata.arc
rem === START OF FTP ====
rem ==== FTP to backup server ====
rem (SS,3/9/13)
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% Start FTP to backup server >>logtoday.txt
echo.>>logtoday.txt
rem --- build the FTP operations file
:: (SS,3/9/12) for winscp, the open command specifies username and password, and we have to prefix with ftp for normal ftp (see http://winscp.net/eng/docs/scripting)
echo open sftp://backup:oscaris10@backup.itpartnership.com:22 -hostkey="8b:b8:6c:0a:c2:bf:a1:55:99:46:b9:9c:bd:43:47:7c">ftpop2.txt
::echo echo on>>ftpop2.txt
echo option batch continue>>ftpop2.txt
echo option confirm off>>ftpop2.txt
echo binary>>ftpop2.txt
rem following deletes backup file from 7 days ago, included the previous type DDMMYYYY.zip
cmddate -s -7 rm #.7z>>ftpop2.txt
:: (SS<27/4/14) added FreeArc
cmddate -s -7 rm #.arc>>ftpop2.txt
rem following uploads todays backup file
cmddate -s 0 put %bakfile%>>ftpop2.txt
echo exit>>ftpop2.txt
rem --- FTP the file to backup server
%ftpexe% /script=ftpop2.txt>>logtoday.txt
echo. >>logtoday.txt
rem ==== End of FTP to home ====
rem ==== FTP to home ====
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% Start FTP to SS home server >>logtoday.txt
echo.>>logtoday.txt
rem --- build the FTP operations file
:: (SS,5/7/12) for winscp, the open command specifies username and password, and we have to prefix with ftp for normal ftp (see http://winscp.net/eng/docs/scripting)
::echo open ftp://backup:oscaris10@ftp.ontheworldweb.com:5821>ftpop2.txt
:: (SS,12/7/12) replaced above with following for secure connection, certificate fingerprint is also passed
echo open ftps://backup:oscaris10@secure.ontheworldweb.com:5821 -explicittls -certificate="59:80:cb:c7:53:c1:89:7e:ab:75:b9:3d:20:7f:10:8a:e6:61:7d:22">ftpop2.txt
::echo echo on>>ftpop2.txt
echo option batch continue>>ftpop2.txt
echo option confirm off>>ftpop2.txt
echo binary>>ftpop2.txt
rem following deletes backup file from 65 days ago, included the previous type DDMMYYYY.zip
:: (SS,5/7/12) delete replaced with rm for winscp
:: (SS,20/4/14) changed from 65 to 92 days (i.e. 3 months, quarter)
cmddate -s -92 rm #.7z>>ftpop2.txt
:: (SS<27/4/14) added FreeArc
cmddate -s -92 rm #.arc>>ftpop2.txt
rem following uploads todays backup file
cmddate -s 0 put %bakfile%>>ftpop2.txt
echo exit>>ftpop2.txt
rem --- FTP the file to ontheworldweb server
%ftpexe% /script=ftpop2.txt>>logtoday.txt
:: (SS,16/3/13) added following because it was added the "---.." to the same line
echo. >>logtoday.txt
rem ==== End of FTP to home ====
rem === END OF FTP ====
:end
echo ------------------------------------------------------------>>logtoday.txt
echo %date% %time% Finish>>logtoday.txt
echo ============================================================>>logtoday.txt
:: append to main log file
echo. >>log.txt
type logtoday.txt >>log.txt
echo ------------------------------------------------------------------------------->>log.txt
:: send results in email
call sendemail.cmd