Archive

Posts Tagged ‘rsync’

Rsync Backup

January 5th, 2009

Saat anda mengembangkan project website yang lumayan banyak pengunjungnya, anda tidak mungkin langsung membuat code di halaman utamanya bukan, karena pasti langsung keliatan kalo ada error, dan itu sangat menganggu user. Anda mungkin mempunyai folder dengan nama anda sendiri. Saya mempergunakan nama *dev* untuk development dan *real* untuk yang bener2 diakses oleh user.

Biasa nya anda akan rutin mengcopy file dari dev ke real setiap kali anda yakin bahwa sudah tidak ada bug lagi di dev. Tetapi proses copy ini selalu berulang2 dan memakan waktu. Sehingga saya memutuskan untuk membuat suatu script untuk melakukan tugas itu. Saya hanya mencoba script ini di Linux, tapi saya rasa ada versi rsync untuk Windows.

#!/bin/sh
DAY=`date "+%Y%m%d"`
TIME=`date "+%H:%M:%S"`
echo Start backup $DAY $TIME
echo ---- Start backup $DAY $TIME >> backup.log
# First backup the old data
FOLDERTOBACKUP='real'
echo '-- Zip the old file --'
tar zcf $FOLDERTOBACKUP$DAY.tar.gz $FOLDERTOBACKUP
echo Done!
# Do the backup
SOURCE='dev/'
TARGET='real'
OPTS="-av
--delete
--exclude=application/config
--exclude=application/admin/config
--exclude=admin/controllers/login.php
--exclude=cron_*.php
"
echo "-- Copy file --"
echo Copy Options : $OPTS
rsync $OPTS $SOURCE $TARGET >> backup.log
echo Done!
# End Backup
TIME=`date "+%H:%M:%S"`
echo End backup $DAY $TIME
echo ---- End backup $DAY $TIME >> backup.log

Code di atas untuk pertama mengkompresi dulu semua file yang ada di *real* (jaga2 kalo ada masalah dengan pemindahan sistem, tinggal di extract ulang aja). Lalu lakukan sync (penyamaan data) dari dev ke real. Hebat nya rsync ini, anda engga perlu mengcopy semua file. Hanya file yang dibutuhkan aja yang dipindahin. Saya akan jelasin option2 simple nya.

  1. -a digunakan untuk *archive*, ini kumpulan dari banyak perintah, yang berarti “buatlah copy yang hampir sama persis dengan aslinya”
  2. -v adalah singkatan dari *verbose*. Yang artinya kasih keterangan lebih detail. Program akan memberikan informasi file mana aja yang di delete, dan yang di copy. Semua informasi tersebut akan dicopy ke log file
  3. -delete dipergunakan untuk menghapus file2 yang hilang dari dev.
  4. -exlcude dipergunakan untuk tidak memasukan file2 yang ada dengan pattern ini. Engga perlu tulis direktori lengkap nya. Hanya tulis pattern nya saja.

Satu lagi yang hebat dari rsync adalah dia Remote Sync. Jadi sebenernya diciptakan untuk bisa backup remote. Anda bisa akses computer laen dengan ganti source dan targetnya di bagian ini :

SOURCE='dev/'
TARGET='real'

contoh akses ke server laen:

TARGET='[email protected]:/path/to/directory'

dan itu juga bisa diterapkan kepada sourcenya.
Sekian tutorial dari saya, sampai ketemu di tutorial selanjutnya.

Referensi

Share

linux , ,

Switch to our mobile site