Membuat Backup Blog dengan rsync

Saya spill ya bro, bahwa mainan Server Linux, walaupun kita tempatkan di server kacang STB HG680P, tapi memberikan pengalaman yang sangat kaya.

Setelah membuat blog, mengonlinekannya di dunia maya, maka yang perlu anda lakukan adalah backup.

Bagaimana jika suatu saat disk systemmu corupt? Atau systemmu crash? maka apa yang kamu buat menjadi sia-sia. Data sekian lama akan hilang.

Ya, saya akan membuat backup untuk blog ini. Blog ini berada pada Disk A (yg sebenarnya hanya berupa sdcard) dan akan saya copy di Disk B ( yg berupa HDD 2.5)

Saya menggunakan rsync untuk membackup file karena rsync bisa menyelaraskan 2 folder. Sedangkan databasenya dibackup menggunakan mysqldump

#!/bin/bash

# mensinkronkan folder-folder
rsync -avz /var/www/domain.com/ /backup/domain.com/www --delete

#membackup database mysql
mysqldump -uwordpress -prahasia wordpress | gzip > /backup/domain.com/database/wordpress-$(date +%d%m%Y).sql.gz

dengan penjelasan sbb:

  1. rsync -avz /var/www/domain.com/ /backup/domain.com/www --delete:
    • Perintah rsync digunakan untuk menyalin dan mensinkronkan file dan direktori antara dua lokasi.
    • Dalam kasus ini, perintah ini menyalin isi dari direktori /var/www/domain.com/ ke direktori tujuan /backup/domain.com/www.
    • Opsi -avz menentukan:
      • -a: Mode arsip, mempertahankan atribut file seperti izin dan tanda waktu.
      • -v: Menampilkan output secara terperinci.
      • -z: Mengaktifkan kompresi selama transfer.
    • Opsi --delete menginstruksikan rsync untuk menghapus file di direktori tujuan yang tidak ada di direktori sumber, sehingga menjaga agar direktori tujuan selalu sama dengan direktori sumber.
  2. mysqldump -uwordpress -prahasia wordpress | gzip > /backup/domain.com/database/wordpress-$(date +%d%m%Y).sql.gz:
    • Perintah mysqldump digunakan untuk membuat salinan dari database MySQL.
    • Dalam kasus ini, perintah ini menciptakan salinan database WordPress.
    • -uwordpress -prahasia adalah opsi untuk menentukan pengguna dan kata sandi yang digunakan untuk mengakses database MySQL. Di sini, pengguna adalah ‘wordpress’ dan kata sandinya adalah ‘rahasia’.
    • wordpress adalah nama database yang akan disalin.
    • Output dari mysqldump kemudian diteruskan ke perintah gzip untuk mengompresinya.
    • Hasil dari kompresi tersebut disimpan di /backup/domain.com/database/ dengan nama file wordpress-$(date +%d%m%Y).sql.gz, di mana bagian $(date +%d%m%Y) digunakan untuk menambahkan tanggal saat ini ke nama file dalam format “DDMMYYYY”.

Apabila backup kamu tempatkan di server berbada maka kamu bisa menggunakan perintah sbb:

#!/bin/bash

# Menjalankan rsync untuk menyalin file dari /var/www/domain.com/ ke server tujuan
rsync -avz /var/www/domain.com/ user@serverB:/backup/domain.com/www --delete

# Menjalankan mysqldump untuk membuat salinan database dan menyimpannya dalam file lokal
mysqldump -uwordpress -prahasia wordpress | gzip > /backup/domain.com/database/wordpress-$(date +%d%m%Y).sql.gz

# Mentransfer file database ke server tujuan menggunakan scp
scp /backup/domain.com/database/wordpress-$(date +%Y%m%d).sql.gz user@serverB:/backup/domain.com/database/

Kalau sudah selesai kita tinggal melakukan crontab setiap jam 12 malam. lakukan perintah sudo crontab -e.

Lalu masukkan skrip dibawah

0 0 * * * /bin/bash /backup/backup.sh

Ok Enjoy backup 🙂

NAS Sederhana di STB HG680P

Setelah saya amati, sebagai pengguna Linux Server, cara membuat NAS bisa lebih sederhana dari posting saya sebelumnya . Kalau kita memahami prinsip dasarnya, maka kita bisa membuatnya lebih sederhana sbb:

  1. Hardware yang dibutuhkan adalah
    • 2 buah HDD
    • Satu buah STB. Sebenarnya komputer apapun bisa.
  2. Dua buah HDD dikonfigurasi dengan RAID 1 agar data dalam HDD 1 secara otomatis ada di HDD 2, sehingga apabila HDD yang satu terjadi crash, masih ada data backupnya.
  3. Di STB HG680P harus diinstall software sbb, dibawah Linux Armbian
    • Nginx
    • PHP 8
    • mySQL atau bisa menggunakan SQLite
    • OwnCloud
  4.  OwnCloud disambungkan dengan Cloudflare Zero Trust biar bisa diakses secara online.

Demikian biar bisa dijadikan catatan jika sewaktu-waktu kita membuat NAS sendiri.

NAS di STB HG680P

Mungkin kamu punya keinginan untuk membuat NAS di STB dengan kriteria seperti Google Drive, menggunakan fasilitas 2 hardisk dimana keduanya saling syncronisasi.

Teknologi yang digunakan adalah

  1. Linux armbian sebagai basis OSnya
  2. RAID 1 untuk mirroring 2 HDD
  3. CasaOS sebagai yang – menurut saya – docker manager untuk instalasi NextCloud
  4. NextCloud

Bagi kamu yang tertarik silahkan mengikuti tutorial berikut:

Pilih Mana?

Perkembangan Teknologi yang sangat pesat 5 – 10 tahun terakhir menyebabkan belajar teknologi menjadi tidak mudah seperti dulu. Salah satu yang membuatnya tak mudah adalah banyaknya pilihan.

Dulu pilihan populer untuk belajar web hanya PHP – MySQL – HTML, CSS, JQuery.  Orang belajar itu aja sudah bisa menjadi web developer mumpuni.

Namun sekarang lain. ada banyak teknologi yang popularitasnya mirip-mirip.

Di Backend selain PHP ada NodeJS, Python, Golang, Rust.

Bahkan di Javascript saja,  kalau dulu hanya ada jQuery sekarang ada banyak framework turunan JS seperti Reach, Vue, Next, Nest dan banyak lagi …

Intinya saya juga lama macet gara-gara pemilihan bahasa dan framework. Jangan sampai kita capek-capek belajar akhirnya tidak banyak dipakai.

Seperti misalnya, ketika saya belajar Python – Flsk dengan harapan bisa memanfaatkan fitur datascience yg ada di Python untuk diumpankan di PHP/JS. Tapi saya fikir kalau tidak ada projectnya buat apa,  toh kalau tiga sampai lima bulan tidak kita pakai toh lupa juga …

BTW, mungkin saya ingin menguasai 2 aja dulu.

  • PHP dengan Laeavel 11
  • Node dengan ExpressJS

Kayaknya dua itu cukup untuk sekadar mengerjakan project kecil. Kalau nanti pengin project frontend mungkin nanti Vue atau Nextjs.

Demikian omon-omon gak jelas kita hari ini. Mudah-mudahan kita diberi Allah banyak rezeki. Amiin.

Web Programming, Dulu dan Kini

Saya sudah berkecimpung dalam web programming sejak 2002.  Dan bagi saya, web programming sekarang tidak lebih mudah daripada dahulu. Dahulu very-very simple.

Di PHP, jika kita ingin sebuah library tinggal copas dan include librarynya.

Jika ingin install aplikasi PHP tinggal copas satu folder, edit konfigurasi databasenya, langsung jalan.

Sekarang, jika kamu dapat skrip laravel, nodejs, golang, python, rust, tidak semudah itu. Ngatur PATH, kesesuaian versi-versi, berbagai dependensi. Ribet.

Sekarang jika saya dapat skrip dan sy jalankan, bisa dipastikan  langsung error. Harus install ini install itu, paket ini paket itu, ngatur ini ngatur itu, versi ini, dependensi dll. Agak heran juga sih, mengapa semakin maju segala sesuatunya tidak semakin dibuat simpel 🙂