Gibransyah Fakhri
unread,Aug 26, 2015, 6:15:31 AM8/26/15Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to glib...@googlegroups.com
Ceritanya dba lagi sibuk banget, sehingga warm backup di server
staging belom siap-siap juga.
Warm backup production digunakan untuk debugging di server staging
bila terjadi bugs/error di production.
Daripada nunggu lama, dan tiap ada kasus kudu bolak balik melakukan
hal sama, kita sikat dah pake bash.
Inti postingan ini adalah here strings "<<" Yang mana daripada dengan
karakter ajaib tersebut
kita bisa menjalankan command pada remote machine dari tempat
dieksekusinya bash script.
Skenario:
* ssh ke production, lakukan dump utk mendapatkan latest data
* setelah selesai tarik ke lokal
* buat database dan deploy latest data di staging
* ubah dsn pada database driver di dalam apps
Solusi:
#!/bin/bash
set -x
echo 'Begin'
# Dump latest db @Production
ssh brain@bojong -v <<'ENDSSH'
pg_dump -Fc -U knuth -N sym -T sym* -h 192.168.3.1 spacex -p 5433 >
$(date +"%Y%m%d")_spacex.backup --verbose
ENDSSH
# Pull latest db to local
scp brain@bojong:~/$(date +"%Y%m%d")_spacex.backup .
# Prepare latest db @staging
psql -U knuth -h dev spacex -p 5433 -c 'create database spacex_'$(date
+"%Y%m%d")
# Install tablefunc extension
psql -U knuth -h dev spacex_'$(date +"%Y%m%d") -p 5433 -c 'create
extension tablefunc;'
# Restore latest db to @staging
pg_restore -U knuth -h dev -p 5433 -d 'spacex_'$(date +"%Y%m%d") <
$(date +"%Y%m%d")_spacex.backup --verbose
# Ubah dsn string pada konfigurasi apps.
grep -r -l "richardbranson" lib/ | xargs sed -i 's/richardbranson/elonmusk/g'
# Done
echo 'Done'
*NB:
Data yg dirawat hanya belasan MB, pola ini hanya untuk dadakan aja
akan segera dideprecated setelah warm backup ready.
--
Thinking out of the box.