Rabu, 09 Oktober 2013

Bonjour! Saya punya pengalaman baru beberapa hari kebelakang ini, sepertinya pengalaman saya akan berguna bagi anda. Meskipun mungkin dengan kasus yang berbeda namun metode ini sepertinya akan dapat diterapkan ketika anda menghadapi kasus lain dan membutuhkan penyelesaian ini. Saya akan sedikit bercerita tentang kasus saya, dan bagaimana menyelesaikannya. Selamat membaca :)

Kantor saya adalah sebuah perguruan tinggi di Bandung, dinaungi oleh sebuah yayasan pendidikan yang juga memiliki lembaga-lembaga pendidikan lain. Nah, kemaren itu yayasan ini menyatukan semua lembaga menjadi kesatuan universitas. Dampaknya pada IT cukup banyak, karena setiap lembaga berubah nama. Dengan perubahan nama seperti itu otomatis domain internet pun berubah. Singkat cerita, sayapun mulai menyingkilkan lengan baju dan melakukan migrasi domain, semuanya berjalan lancar sampai dengan selesai!

Tapi ada salah satu website blogging yang merupakan multisite blogging. Didalamnya ada ribuan user dan ribuan artikel. Migrasi domain DNS saja tidak cukup, karena URL SETIAP BLOGURL SETIAP ARTIKEL, URL SETIAP GAMBAR semuanya tertanam didalam database. Cukup menantang, dimana saya harus segera merubah semua url sialan tersebut ke url dengan domain baru. Saya yakin andapun tidak akan mau jika harus merubah semua itu secara manual, satu per satu, kapan selesainya? :|

Bagaimana cara mengganti text di dalam file tersebut via terminal linux? Setelah mencari cara dan melakukan beberapa percobaan akhirnya semua itu dapat diatasi bahkan jika saya melakukannya dari awal secara benar, itu hanya memakan hitungan menit.

Multisite ini adalah wordpress social blogging yang dibuat untuk menampung semua tulisan seluruh civitas, untuk site setting dan konfigurasi script tidak terlalu sulit. Anda bisa mencarinya dengan mudah di mbah google. Saya hanya akan fokus menyampaikan bagaimana mengganti semua url tadi menjadi url dengan domain baru. Berikut ini langkah-langkahnya :
  • DUMP database anda. Ya, backup terlebih dahulu database anda. File backup yang saya miliki cukup besar untuk sebuah database, ratusan MB lah.
  • Selanjutnya, anda tidak perlu membuka file dump tersebut karena sangat menjengkelkan dan bikin mumet. Cukup ketikkan perintah dibawah ini pada server linux anda :
    root@apocalypsix: sed -e 's/[text_yang_mau_diganti]/[text_yang_baru]/g' [nama_file] > [output_file]
  • Langkah terakhir adalah meng-import kembali file output.
  • Selesai!

PENJELASAN :

Perintah diatas akan mencari sebuah text dan menggantinya dengan yang baru, pengerjaannya sangat cepat. Berbeda dengan jika saya melakukannya dengan nano editor, memakai notepad++ pun tidak membantu banyak, masih terdapat missing line yang tidak di eksekusi. Saya berikan contoh lain, misalnya kita memiliki sebuah file bernama daftar_gaji yang didalamnya ada banyak text. Misalnya isinya seperti ini :
Daftar gaji berdasarkan pendidikan :
SD  = 500.000
SMP = 700.000
SMA = 1.300.000
D3  = 1.500.000
S1  = 2.000.000
Misalnya kita harus merubah gaji bagi yang berlulusan SD, dari 500.000 menjadi 600.000. Untuk mengganti text di dalam file via terminal linux, lakukan perintah seperti tadi :
root@apocalypsix : sed -e 's/500.000/600.000/g' daftar_gaji > daftar_gaji_baru
Kira-kira seperti itulah, kasus saya pun terselesaikan hanya dengan sepenggal sajak berbahasa linux :D
Jika anda juga mengalami kasus serupa dan bingung bagaimana cara mengganti text di dalam file via terminal linux, mungkin cara ini bisa anda pakai, sepertinya format linux dan unix pun tidak akan terlalu jauh berbeda.


Semoga bermanfaat,
Salam Penguin! :)