Membuat backup file dan database terjadwal otomatis pada Linux
Cadangan data merupakan hal yang paling penting setelah sukses menginstall web server dan menghosting website dalam VPS. Bayangkan saja, apabila server anda down dan situs tersebut sangatlah vital bagaimana anda memulihkannya? Misal cuma masalah sementara sih mungkin bisa ditoleransi. Tapi kalau sampai musibah besar seperti rusaknya HDD/SSD dari node VPS anda atau malah providernya yang kabur entah kemana jelas bikin frustasi. Karena itu wajib hukumnya kita membuat backup rutin sebagai jaga – jaga.
Jadi… tutorial saya kali ini adalah cara saya mempersiapkan diri disaat ada musibah dan sudah beberapa kali menyelamatkan saya. Jarang memang tapi kalau pas butuh rasanya sangat tertolong. Tinggal cari provider VPS baru dan restore semuanya, atau untuk sementara bisa ke Digital Ocean dulu.
Langsung saja ya, silahkan buat file script shell:
nano backup.sh
Kemudian isikan kode dibawah:
mysqldump -u nama_user -pkata_sandi nama_database > /home/backup/asli/nama_database-`tanggal '+%y%m%d_%H%M%S'`.sql
tar -czvf /home/backup/asli/servernesia.com-`tanggal '+%y%m%d_%H%M%S'`.tar.gz //usr/local/lsws/servernesia.com
tar -czvf /home/backup/siap/servernesia.com-`tanggal '+%y%m%d_%H%M%S'`.tar.gz /home/backup/asli
rm -rf /home/backups/asli/*
Ini akan membuat backup database MySQL dan file – file dalam direktori website anda, kemudian akan dikompresikan menjadi satu arsip Gunzip. Nanti pada nama filenya akan bisa dengan mudah diidentifikasikan kapan dibuatnya.
Jangan lupa:
nama_user
adalah username dari MySQL.kata_sandi
gantikan dengan password user yang anda gunakan.nama_database
isikan dengan apa nama database yang ingin dibackup. Atau anda bisa menggantikan parameternya dengan--all-databases
agar seluruh database yang ada akan dibackup tapi membutuhkanroot
.- Sedangkan
/usr/local/lsws/servernesia.com
merupakan direktori virtual host di OpenLiteSpeed, cuma untuk ilustrasi saja. Harap anda gantikan dengan lokasi yang sesuai pada VPS anda.
Tahap selanjutnya adalah menjadwalkan agar script diatas dieksekusi secara terjadwal memanfaatkan cron
:
nano /etc/cron.d/auto_backup
Isikan kode berikut didalamnya:
0 0 * * * bash /root/backup.sh
Saya buat agar backup dijalankan satu hari sekali pas bergantinya hari. Oh ya, lokasi scriptnya mungkin perlu anda sesuaikan. Selesai! 😀
Anda tinggal mengambil backup setiap harinya pada folder /home/backup/siap/
dan disimpan pada server lain atau ke komputer. Terserah anda, yang penting aman.
Langkah selanjutnya agar lebih otomatis mungkin bisa otomatis upload ke DropBox atau sinkronisasi otomatis menggunakan rsync
. Jadi kita lebih mudah lagi mencadangkan data – datanya.
Semoga bermanfaat. 🙂
mau nambahin dikit mas, mungkin sama saja 🙂
pertama saya ubah dulu zona waktunya :
kedua instal
crontab
:tambahin perintah backup, saya atur jam 2 tengah malam :
isi script
dbbackup.sh
:isi script
sitebackup.sh
:sesuaikan untuk baris find di kedua script diatas pada bagian +1 yang maksudnya otomatis menghapus backupan lama yang umurnya lebih dari 2 hari 🙂
oh iya jangan lupa buat folder backup sesuai script dan perintah pada crontab.
untuk permissionnya saya atur sebagai berikut :
file sitebackup.sh dan dbbackup.sh atur ke 775.
folder backup atur ke 775.
mohon koreksinya mas chandra terutama untuk bagian permission ini saya agak bingung pakai yang 775 atau 755 😀
semoga bermanfaat.
Wah… terimakasih banyak mbak. Malah lebih lengkap daripada yang saya tulis. Haha. 😀 Kalau bisa sih 755 mbak, supaya lebih membatasi hak akses dari proses selain backupnya sendiri.
luar biasa mbak shafira, saya run cronnya dan jalan, terima kasih
mas chandra,
mohon dibuatkan tutorial cara backup dari satu vps ke vps lain, contohnya dari digital ocean ke xvmlabs.
trims.
Haha 😀 Kebetulan banget mbak. Saya memang sedang siap – siap merancang sistem backup yang acak adut selama ini. Setiap VPS saya beda – beda tergantung cuaca pas settingnya. Dan kalau dipasangin Dropbox bisa habis RAMnya untuk yang kecil.
Semoga secepatnya bisa saya coba dan buat tutorialnya. 🙂
iya mas kalau pakai dropbox nggak kuat, ram kecil masih 512 😀
trims mas, ditunggu tutorialnya 🙂
Semoga dalam seminggu ini mbak sudah selesai dan sukses diujicoba ke beberapa VPS saya. Aslinya sistem backupnya nanti bukan hal yang rumit kok mbak. Wacana sudah ada tapi kendala waktu karena urusan real life jadi agak tertunda.
Garis besarnya nanti akan melanjutkan tutorial disini dan mengumpulkan semuanya jadi satu. Kemudian backup tersebut akan dibackup lagi, rencananya minimal juga sinkron dengan Dropbox dan ada calon satu lagi yang masih saya pertimbangkan. Sebisa mungkin saya menggunakan alat yang sudah ada atau dari repository, jadi tidak perlu install manual seperti Dropbox.
kalo backupnya langsung di kirim lewat ke email kita bisa gak? gimana caranya?
Mungkin bisa digabungkan ini mas: https://servernesia.com/1817/cara-kirim-email-linux/
Kalau databasenya kecil dan dikompres (tar.gz semacamnya) masih ok diattach lewat email, tapi kalau ukurannya cukup besar ada kemungkinan ditolak server email tujuan mas. Apalagi kalau mau file – file websitenya juga dikirimkan, hampir pasti jadi masalah nantinya, kecuali ini cuma web statis murni HTML dan tidak banyak gambar.
gan yang ini : /usr/local/lsws/servernesia.com
itu kaya /var/www/html ya?
maaf newbie
Betul sekali mas. Itu saya contohkan dari instalasi OpenLiteSpeed soalnya.
oke trims
halo..
kalau saya punya 10 data base, pada bagian ini
nah user dan pass word database di isi apa,
sedangkan database name nya dibuat –all-databases
thanks
Kalau ga mau ambil pusing pakai root saja mas.
Tapi kalau mau pakai user biasa, silahkan dibuat dan pastikan sudah diberikan privilege: SHOW DATABASES, SELECT, LOCK TABLES, RELOAD, dan SHOW VIEW.
mau tanya mas, kenapa harus bikin bash file terlebih dahulu kenapa tidak langsung diterapkan pada crontabnya untuk melakukannya
Mas Chandra kalo backupnya langsung di kirim ke laptop (Windows/Linux) 24jam aktif gmn Mas caranya? Mohon bantuanya. Terima kasih
Mas Chandra minta pencerahannya, saya sudah ikuti tutorial tapi belum berjalan? saya menggunakan os ubuntu 16.04