Batch script Windows untuk backup & upload

Memang, ada solusi backup otomatis menggunakan software semacam Acronis Echo Server/Backup-exec yang juga bisa otomatis. tetapi karena software berbayar itu harganya cukup fantastis, ada solusi lain memanfaatkan program murah WinRAR (command-line) ditambah beberapa baris script batch file.

Misalnya, untuk membackup hasil device Microsoft SQL, lalu mengirimnya ke NAS (ftp) yang satu subnet network. File backup yang dihasilkan oleh WinRAR saya modifikasi agar berdasarkan tanggal. Jadi backup akan menumpuk terus di ftp. Kenapa? karena backup database adalah fital; jika suatu saat dibutuhkan backup pada 11 Bulan yang lalu, sebagai contohnya.

Karena keterbatasan ftp.exe bawaan Windows (dari NT 4~ 2008r2) tetap tidak support PASV mode, jangan tanya kenapa kalau tidak bisa upload ke FTP server yang berada dibelakang firewall, walaupun menggunakan ftp-client gui seperti FileZilla/WS_ftp berhasil 😀

Langsung saja, ini potongan scriptnya:

@echo off
:: sesuaikan dengan lokasi!
:: d: adalah drive yang mau saya backup
:: data ada nama foldernya
:: rar akan membackup semua file dan seluruh sub-folder di d:data

D:
cd data

SET DATETIME=%date%%time%
SET YYYY=%DATETIME:~10,4%
SET MT=%DATETIME:~4,2%
SET DD=%DATETIME:~7,2%
SET HH=%DATETIME:~14,2%
SET MM=%DATETIME:~17,2%
SET SS=%DATETIME:~20,2%
IF %HH% LSS 10 SET HH=0%HH:~1,1%
rar a -dh -r “db-back-%YYYY%-%MT%-%DD%-%HH%.%MM%.%SS%.rar” *.*
if not exist db-back-%YYYY%-%MT%-%DD%-%HH%.%MM%.%SS%.rar goto errbak

:: open [IP/Domain]<spasi>[port] ftp server
:: nama user ganti sesuai dengan kebutuhan
:: pw adalah password ftp nya
:: lcd sesuaikan dengan lokasi tempat backup
:: /backup/loc adalah directori di ftp server, sesuaikan.
:: put adalah perintah untuk mulai upload file ybs
:: bye adalah perintah untuk keluar ftp.
:: pastikan ftp server tidak dibelakang firewall
:: karena ftp.exe bawaan windows tidak mendukung PASV mode
:: dirancang untuk backup dalam Satu subnet / vpn.

echo open 192.168.3.3 21>ftp.txt
echo nama user >>ftp.txt
echo pw >>ftp.txt
echo lcd d:data >>ftp.txt
echo cd ./backup/loc >>ftp.txt
echo put db-back-%YYYY%-%MT%-%DD%-%HH%.%MM%.%SS%.rar >>ftp.txt
echo bye>>ftp.txt
echo Uploading to server

:: seluruh ke ftp.txt adalah perintah ftp. sesuaikan juga!
:: file ftp.txt akan dihapus jika berhasil upload dan perintah bye berhasil.

ftp -s:ftp.txt
del ftp.txt>nul
echo.
echo Backup complete
echo %date% %time% >>d:\backup.log
echo ………… >>d:\backup.log
goto quit

:errbak
echo backup error!
echo Backup Error %date% %time%>>d:\backup.log
echo ———— >>d:\backup.log

:quit
echo done.

Syaratnya cukup salin seluruh isi pada folder program files 32Winrar ke folder Windows. atau tambahkan set path ke folder WinRAR agar rar.exe bisa di panggil dari mana saja. Simpan cuplikan kode diatas dengan ekstensi .bat

Bisa juga di taruh di Schedule task atau eksekusi langsung. Hasil log backup gagal atau sukses bisa dilihat di backup.log pada lokasi D:backup.log

Alternatif WinRAR bisa menggunakan 7-Zip yang gratisan. Caranya sama, hanya beda sintaks sedikit:

7z.exe a -r -y <nama.arsip.7z> *.*

Sintaks diatas akan membackup semua file dan subfolder didalamnya. Path adalah relatif pada saat 7z.exe dipanggil. Jadi pastikan juga pindahkan drive dan folder terlebih dahulu.

 

 

 

 

 

 

 

Post By Tommy Wiranto (79 Posts)

Rasa ingin tahunya, terkadang 101% -- petualang yang tertahan. Terkadang sombong, tetapi pada tempatnya.

Website: →

Connect