Bash yang ajaib

11 views
Skip to first unread message

Gibransyah Fakhri

unread,
Aug 26, 2015, 6:15:31 AM8/26/15
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.

john doe

unread,
Sep 2, 2015, 2:21:46 AM9/2/15
to glib...@googlegroups.com
sadiss


--
Anda menerima pesan ini karena Anda berlangganan grup "GNU/Linux Bogor" dari Google Grup.
Untuk berhenti berlangganan dan berhenti menerima email dari grup ini, kirim email ke glibogor+u...@googlegroups.com.
Untuk opsi lainnya, kunjungi https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages