Backup Remote VPS Ubuntu / Linux Cronjob

Cara backup remote lengkap di VPS , cloud file dan database + cronjob

Data penting khususnya file app, database (mysql) wajib dibackup menjadi jika terjadi server down, rusak atau sistem VPS terkena malware, serangan cyber lainya karena tidak ada sistem yang aman sehingga backup menjadi solusi no.1

Backup menggunakan server VPS cadangan menyimpan file backup, teknik menggunakan backup crontab otomatis dan system rsync memindahkan data secara cepat ke server cadangan.

 

Persiapan backup data VPS

Panduan ini menggunakan server jenis VPS OS Linux database Mysql , web server Apache2

  • Buat 1 VPS Backup : lokasi Indonesia.
  • VPS aktif (Vps Kerja) : Lokasi Singapore.

 

Seting Time Zone

Bertujuan jadwal cronjob tepat waktu dengan jam lokal khususnya Indonesia UTC +7 bisa seting pada bagian TZ dengan mengubah:

masuk ssh :

ssh root@IP_address

Tambahkan kode:

sudo timedatectl set-timezone Asia/Jakarta

 

Buat folder backup Transit

Masuk SSH buat folder backup baru:

mkdir /var/file_backup
mkdir /var/db_backup

 

Seting CronJob

install cron melalui apt.

sudo apt update
sudo apt install cron

info cron job : pengaturan dan konfigurasi cron job dengan aplikasi crontab

 

Backup Mysql Server Transit

Perintah di ssh server:

crontab -e

Tambahkan perintah berikut:

0 1 * * * mysqldump -u nam_user toko_db > /var/backup/toko_db_$(date +\%Y-\%m-\%d).sql.gz

Statement di atas akan menginstruksi cron untuk membackup database toko_db setiap 1 hari sekali pada jam 00 / 12 malam.

Penjelasan:

  • Ganti jam 2 pagi bisa ubah menjadi: 0 2 * * *
  • Arti lokasi folder : /var/backup (disesuikan dengan lokasi folder data vps masing2)
  • Ganti nama toko_db (database name)

Jika terjadi gagal backup mysqldum…

READ :  Mysqldump Tanpa Permintaan Password BackUp Crontab

 

Hapus file Backup Mysql lama

Supaya data file backup tidak menumpung banyak, Buat automatis hapus backup data mysql ::  Skip delete file 1 hari terakhir, untuk menghapus file secara rutin, tambahkan perintah di atas di dalam crontab.

0 3 * * * find /var/db_backup -name "*.gz" -type f -mtime +0 -exec rm -f {} \;

Note:

  • Jika ingin ganti jam bisa ubah : 0 3 * * *
  • Pastikan jam hapus file setelah semua proses backup selesai.
  • Optinal – Ubah extensi name * .qz
  • Seting tanggal terakhir di hapus +0 // artinya 1 hari terakhir

 

Backup File Transit

Backup semua file kompress file & hapus file backup lam terjadwal crontab:

crontab -e

Tambahkan kode:

0 1 * * * tar -zcvpf /var/file_backup/all_backup_$(date +\%Y-\%m-\%d).tar.gz /var/www/
0 3 * * * find /var/file_backup -name "*.gz" -type f -mtime +0 -exec rm -f {} \;

Pada tahap ini backup file, database dan hapus terjadwal selesai, selanjutnya .. tahap backup remote ke server VPS cadangan.

 

Remote Backup Full VPS

Install SSH-keygen, berfungsi koneksi 2 vps tanpa harus masukan password manual sehingga proses sinkron data bisa berjalan menggunakan cronjob.

Pelajari panduan dibawa..

READ :  RSA : ssh-keygen Linux, Akses VPS Tanpa Input Password

Buat Folder Backup VPS Cadangan:

  • mkdir /var/file_backup
  • mkdir /var/db_backup

Setelah VPS kerja vs VPS cadangan terkoneksi SSH keygen maka tinggal seting kode sinkron data terjadwal cronjob, masuk kembali pada VPS kerja SSH:

0 2 * * * rsync -azP --delete -e 'ssh -i ~/.ssh/id_rsa_rsync' /var/db_backup/ root@IP_AddressVpsBackup:/var/db_backup/
0 2 * * * rsync -azP --delete -e 'ssh -i ~/.ssh/id_rsa_rsync' /var/file_backup/ root@IP_AddressVpsBackup:/var/file_backup/

Catatan: seting cronjob pada jam 2 dini hari, artinya backup file terjadi pada VPS kerja adalah jam 01 pagi dan proses telah selesai.

 

Hapus File Lama backup VPS Cadangan

Setelah backup berhasil, guna menjaga data backup tidak overload perlu dihapus file lama, proses sama dengan langkah hapus di VPS kerja.

Masuk SSH pada SSH cadangan, masuk ke : crontab -e , tambahkan kode:

0 3 * * * find /var/file_backup -name "*.gz" -type f -mtime +0 -exec rm -f {} \;
0 3 * * * find /var/file_backup -name "*.gz" -type f -mtime +0 -exec rm -f {} \;

 

Restore VPS

Proses restore mengembalikan data backup kedalam sistem yang berjalan, ada 2 data : file app, database.

Jika file database besar (big data) lebih dari > 1Gb gunakan monitor progress, install pv pada server ubuntu:

apt install pv

gunzip < /var/db_backup/nama_db.sql.gz | pv | mysql -u username [dbname]

Restore File app:

tar -xvpzf all_backup_namafile.tar.gz /var/www/

SELESAI.

Updated: September 6, 2023