Migrasi email menggunakan imapsync

Kepikiran ga siy kalau kita kalau suatu saat nanti kita harus pindah hosting dan kita menggunakan email dari provider tersebut? Ga perlu takut, karena sekarang kita bisa melakukan migrasi email menggunakan imapsync yang terbukti sangatlah mudah!

Dengan menggunakan imapsync, kita dapat memindahkan isi maibox kita seamlessly (tanpa user tahu ada perpindahan). Untuk mengetahui detail bagaimana cara migrasi email menggunakan imapsync, bisa dilihat dibawah ya.

Installasi imapsync

Imapsync merupakan tool yang dapat dijalankan di environment Linux, dalam hal ini saya menggunakan sistem operasi CentOS 7.x. Berikut langkah-langkah installasi :

 

yum install imapsync
migrasi email menggunakan imapsync
Paket pendukung yang diperlukan oleh imapsync akan turut terinstal ketika menjalankan perintah diatas
Running transaction
  Installing : perl-Test-Simple-0.98-243.el7.noarch                                                                                                                                                    1/14 
  Installing : perl-Test-MockObject-1.20120301-3.el7.noarch                                                                                                                                            2/14 
  Installing : perl-Test-Pod-1.48-3.el7.noarch                                                                                                                                                         3/14 
  Installing : perl-Data-Uniqid-0.12-2.el7.noarch                                                                                                                                                      4/14 
  Installing : perl-IO-Tee-0.64-1.el7.noarch                                                                                                                                                           5/14 
  Installing : perl-Unicode-String-2.09-29.el7.x86_64                                                                                                                                                  6/14 
  Installing : perl-NTLM-1.09-5.el7.noarch                                                                                                                                                             7/14 
  Installing : perl-JSON-2.59-2.el7.noarch                                                                                                                                                             8/14 
  Installing : perl-Parse-RecDescent-1.967009-5.el7.noarch                                                                                                                                             9/14 
  Installing : perl-Mail-IMAPClient-3.37-1.el7.noarch                                                                                                                                                 10/14 
  Installing : perl-File-Copy-Recursive-0.38-14.el7.noarch                                                                                                                                            11/14 
  Installing : perl-Module-Runtime-0.013-4.el7.noarch                                                                                                                                                 12/14 
  Installing : perl-JSON-WebToken-0.10-1.el7.noarch                                                                                                                                                   13/14 
  Installing : imapsync-1.727-1.el7.noarch                                                                                                                                                            14/14 
  Verifying  : perl-Test-Simple-0.98-243.el7.noarch                                                                                                                                                    1/14 
  Verifying  : perl-Test-MockObject-1.20120301-3.el7.noarch                                                                                                                                            2/14 
  Verifying  : perl-JSON-WebToken-0.10-1.el7.noarch                                                                                                                                                    3/14 
  Verifying  : perl-Module-Runtime-0.013-4.el7.noarch                                                                                                                                                  4/14 
  Verifying  : perl-File-Copy-Recursive-0.38-14.el7.noarch                                                                                                                                             5/14 
  Verifying  : imapsync-1.727-1.el7.noarch                                                                                                                                                             6/14 
  Verifying  : perl-Parse-RecDescent-1.967009-5.el7.noarch                                                                                                                                             7/14 
  Verifying  : perl-JSON-2.59-2.el7.noarch                                                                                                                                                             8/14 
  Verifying  : perl-NTLM-1.09-5.el7.noarch                                                                                                                                                             9/14 
  Verifying  : perl-Unicode-String-2.09-29.el7.x86_64                                                                                                                                                 10/14 
  Verifying  : perl-Mail-IMAPClient-3.37-1.el7.noarch                                                                                                                                                 11/14 
  Verifying  : perl-IO-Tee-0.64-1.el7.noarch                                                                                                                                                          12/14 
  Verifying  : perl-Data-Uniqid-0.12-2.el7.noarch                                                                                                                                                     13/14 
  Verifying  : perl-Test-Pod-1.48-3.el7.noarch                                                                                                                                                        14/14 

Installed:
  imapsync.noarch 0:1.727-1.el7                                                                                                                                                                             

Dependency Installed:
  perl-Data-Uniqid.noarch 0:0.12-2.el7                 perl-File-Copy-Recursive.noarch 0:0.38-14.el7         perl-IO-Tee.noarch 0:0.64-1.el7                 perl-JSON.noarch 0:2.59-2.el7                
  perl-JSON-WebToken.noarch 0:0.10-1.el7               perl-Mail-IMAPClient.noarch 0:3.37-1.el7              perl-Module-Runtime.noarch 0:0.013-4.el7        perl-NTLM.noarch 0:1.09-5.el7                
  perl-Parse-RecDescent.noarch 0:1.967009-5.el7        perl-Test-MockObject.noarch 0:1.20120301-3.el7        perl-Test-Pod.noarch 0:1.48-3.el7               perl-Test-Simple.noarch 0:0.98-243.el7       
  perl-Unicode-String.x86_64 0:2.09-29.el7            

Complete!

 

Sinkronisasi mailbox

Setelah installasi selesai dilakukan, kita intip sedikit “help” file dari imapsync ini supaya lebih yakin lagi ya perintah yang harus di eksekusi :

 Example: to synchronize imap account "test1" on "test1.lamiral.info"
                     to  imap account "test2" on "test2.lamiral.info"
                     with test1 password "secret1"
                     and  test2 password "secret2"

 /usr/bin/imapsync \
    --host1 test1.lamiral.info --user1 test1 --password1 secret1 \
    --host2 test2.lamiral.info --user2 test2 --password2 secret2

Nah, sudah jelas ya caranya diatas. Sekarang kita ikuti menjalankan perintahnya, sebagai contoh email saya menggunakan email@domain.com dari host IP 192.168.1.1 ke 192.168.1.2. Maka perintahnya akan sebagai berikut :

  

imapsync --host1 192.168.1.1 --user1 email@domain.com --password1 password --host2 192.168.1.2 --user2 email@domain.com --password2 password
hasil perintah imapsync
contoh hasil perintah imapsync

Contoh diatas user pada host asal dan tujuan sama karena kita ingin memindahkan email akun yang sama ya. Jika kita mau melakukan “cloning” email maka bisa jadi user1 dan user2 diisikan dengan value yang berbeda.

Nah gimana? Mudah kan?

Jika ingin menonton langkah-langkahnya lebih jelas bisa juga kunjungi YouTube Channel saya dibawah ya! Terima kasih dan semoga bermanfaat. Stay safe, stay healthy, keep on sharing!

Klik disini untuk artikel menarik lainnya ya!

YUM : DB_RUNRECOVERY: Fatal error, run database recovery

Pernah mengalami kejadian lagi yum update di server trus tiba-tiba layar laptop tertutup secara tidak sengaja? Yep, koneksi ke server akan terputus dan akan menyebabkan kita kehilangan akses ke proses yum update yang sedang berlangsung. Dan karena putus asa proses yum yang tidak kunjung selesai jadi terpaksa melakukan kill -9, akibatnya kita akan mendapati masalah DB_RUNRECOVERY fatal error seperti dibawah ini :

[root@indra ~]# yum repolist
rpmdb: Thread/process 7710/140315268437760 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

Hal yang sama juga bisa terjadi jika mengalami masalah disk I/O pada saat mengeksekusi perintah yum atau manipulasi RPM, sehingga menyebabkan database RPM corrupted.

Jika terjadi masalah seperti diatas, ada beberapa langkah mudah berikut dapat dilakukan untuk memperbaiki database RPM di server :


$ mv /var/lib/rpm/__db* /tmp/
$ rpm --rebuilddb
$ yum clean all

Selanjutnya, dapat menjalankan perintah YUM (misalnya yum repolist) untuk memastikan error tersebut sudah tidak lagi muncul. Berikut contoh hasilnya :

[root@indra ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.newmediaexpress.com
* epel: download.nus.edu.sg
* extras: mirror.newmediaexpress.com
* updates: mirror.newmediaexpress.com
repo id repo name status
base CentOS-6 - Base 6713
epel Extra Packages for Enterprise Linux 6 - x86_64 12541
extras CentOS-6 - Extras 46
updates CentOS-6 - Updates 465
repolist: 19765

Jika karena alasan tertentu, langkah rebuild database diatas tidak dapat menyelesaikan masalah. Anda masih bisa mengembalikan file database RPM yang lama di folder /tmp.

Tutorial : Menjalankan docker di VPS (KVM)

Apa itu Docker? Kapan kita memerlukan Docker?

Docker merupakan platform yang memungkinkan bagi developer untuk menyatukan semua software pendukung yang diperlukan oleh aplikasi tertentu. Konsepnya mirip dengan teknologi yang digunakan oleh Virtual Private Server, dimana setiap aplikasi akan dijalankan pada sebuah “container” tersendiri supaya tidak terpengaruh oleh aplikasi yang digunakan oleh user lain walaupun sama-sama berada di server fisik yang sama. Namun dalam hal ini, Docker dibuat untuk memudahkan developer untuk mempersiapkan environment untuk aplikasinya.

Persiapan

  • VPS berbasis KVM. Kali ini saya menggunakan OS CentOS 7.2
  • Login menggunakan non-root user

Langkah installasi Docker

User yang saya gunakan “indra”, supaya user dapat menjalankan perintah yang hanya dapat dijalankan oleh root dengan perintah sudo. Maka user ini harus ditambahkan ke group “wheel”

usermod -a -G wheel indra

Continue reading “Tutorial : Menjalankan docker di VPS (KVM)”