Cara Backup Otomatis Database Blog Atau Website

Discussion in 'CMS & Blogging Platform' started by Samehadaku, Apr 13, 2016.

  1. Samehadaku

    Samehadaku Guest

    Kali ini saya akan bagikan sebuah tutorial untuk membackup MYSQL Database dari website atau pun Blog secara otomatis ke FTP server. Sebenarnya ini adalah cara yang dibuat oleh owner Bersosial senpai @Dan , saya mengetahui ini setelah membacanya di salah satu blog personal dia.

    database-backup.jpg

    Backup blog adalah satu hal yang sangat penting dilakukan oleh pemilik situs. Namun hal ini terkadang sangat disepelekan oleh mereka, padahal apabila terjadi sesuatu misalnya error atau pindah hosting maka sangat membutuhkan database.

    Biasakan untuk membackup situs sekali seminggu atau setiap setelah update postingan. Tapi apabila anda ingin tidak ribet bolak balik backup manual maka inilah cara yang paling tepat untuk membackup blog dengan otomatis.

    Nah, silakan di pelajari dan di praktekkan cara auto backup MYSQL database & file menuju FTP server di bawah ini.

    Membackup MySQL database
    Langsung saja ke bagian membackup MySQL database lalu menguploadnya ke FTP.

    Pertama buatlah file bash misal db-backup.sh:
    Code:
    vi db-backup.sh
    
    Lalu isikan seperti berikut:
    Code:
    #!/bin/sh
    
    # Database yang ingin kita backup
    # Pisahkan dengan spasi untuk tiap database
    databases="mydb1 mydb2"
    
    # Waktu saat ini
    date=$(date +"%Y-%m-%d")
    
    # User dan password dari database
    # Gunakan root supaya lebih enak
    user=username
    pass=password
    
    # User, password, dan alamat dari FTP servernya
    # Untuk folder sesuai selera saja
    ftpUser=username
    ftpPass=password
    ftpHost=ftp.example.com
    ftpFolder="backup/"
    
    # Tempat menyimpan database
    # Ini di webserver dan bukan di FTP server
    bPath="/var/backups/databases"
    
    # Buat folder bPath diatas jika belum ada
    if [ ! -d $bPath ]; then
        mkdir -p $bPath
    fi
    
    # Hapus file backup di bPath jika umurnya melebihi 3 hari
    find $bPath/*.sql.gz -mtime +3 -exec rm {} \;
    
    # Mulai membackup database
    for db in $databases; do
        # Nama dari file backupnya
        file=$db-$date.sql.gz
    
        # Membackup database dengan mysqldump
        echo "Starting to dump the $db database as $file"
        mysqldump --user=$user --password=$pass $db | gzip -9 > $bPath/$file
    
        # Upload file tadi ke FTP menggunakan CURL
        echo "Starting to upload the $file to FTP server"
        curl --ftp-create-dirs -T $bPath/$file -u $ftpUser:$ftpPass ftp://$ftpHost/$ftpFolder
    done
    
    # Clear cache. Hanya untuk KVM, Xen
    # ataupun dedicated server
    free && sync && echo 3 > /proc/sys/vm/drop_caches && echo "" && free
    Simpan dan pastikan script tadi bisa kita eksekusi:
    Code:
    chmod +x db-backup.sh
    Catatan: ganti username dan password database dengan data kalian. Juga sesuaikan data untuk FTP servernya.

    Mambackup file dan folder
    Nah sekarang giliran membuat file bash untuk membackup file dan folder dari website kita.

    Buat file bash misal fd-backup.sh
    Code:
    vi fd-backup.sh
    Tambahkan script berikut:
    Code:
    #!/bin/sh
    
    # Folder yang ingin kita backup
    fName=("example1_com example2_com")
    
    # Parent folder dari folder yang ingin kita backup
    # Biasanya public_html
    pFolder="/var/www/html"
    
    # Local backup. Tempat dimana kita menaruh backup
    # di webserver kita
    bPath="/var/backups/files"
    
    # Waktu sekarang
    date=$(date +"%Y-%m-%d")
    
    # User, password, dan alamat dari FTP servernya
    # Untuk folder sesuai selera saja
    ftpUser=userfName
    ftpPass=password
    ftpHost=ftp.example.com
    ftpFolder="backup/"
    
    # Buat folder bPath diatas jika belum ada
    if [ ! -d $bPath ]; then
        mkdir -p $bPath
    fi
    
    # Hapus file backup di bPath jika umurnya melebihi 3 hari
    find $bPath/*.zip -mtime +3 -exec rm {} \;
    
    # Mulai mambackup foldernya
    for fd in $fName; do
        # Nama dari file backupnya
        file=$fd-$date.zip
    
        # Kita zip foldernya
        echo "Starting to zip the folder and files"
        cd $pFolder
        zip -r $bPath/$file $fd
    
        # Upload file tadi ke FTP menggunakan CURL
        echo "Starting to upload the $file to FTP server"
        curl --ftp-create-dirs -T $bPath/$file -u $ftpUser:$ftpPass ftp://$ftpHost/$ftpFolder
    done
    
    # Clear cache. Hanya untuk KVM, Xen
    # ataupun dedicated server
    free && sync && echo 3 > /proc/sys/vm/drop_caches && echo "" && free
    Simpan dan lakukan chmod supaya bisa dieksekusi:
    Code:
    chmod +x fd-backup.sh
    Catatan: seperti sebelumnya, ganti semua data dengan data kalian.

    Membuat cron jobs
    Setelah backup script sudah dibuat maka kita perlu mengeksekusinya menggunakan cron supaya berjalan otomatis pada waktu tertentu. Baca membuat cron jobs di Linux untuk lebih jelasnya.

    Buka crontab:
    Code:
    crontab -e
    Isikan perintah berikut:
    Code:
    0 2 * * * /root/db-backup.sh
    0 3 * * * /root/fd-backup.sh
    Setelah kita simpan maka restart cron:
    Code:
    service crond restart
    Untuk waktu saya memilih jam 2 dini hari untuk membackup MySQL databasenya dan jam 3 dini hari untuk file dan foldernya.

    Kita juga bisa mencoba dahulu apakah script backup tadi bekerja sesuai dengan yang kita harapkan. Eksekusi saja:
    Code:
    /root/db-backup.sh
    
    /root/fd-backup.sh
    Setelah selesai kalian cek di FTP servernya ada tidak file-file backup kita.

    Nah, itulah caranya untuk backup otomatis yang dibuat oleh senpai Dan.

    Sumber: https://www.danlogs.com/2016/04/auto-backup-mysql-database-dan-file-ke-ftp-server
     
  2. DwiKhasbullah

    DwiKhasbullah Well-Known Member

    Joined:
    Aug 7, 2014
    Messages:
    1,955
    Likes Received:
    138
    Trophy Points:
    63
    Kalau yang makek code2 kayak gini masih mumet bener Den, soalnya gak ngerti coding hehehe ya kalau di gignode ane serahin semua pada Presiden bersosial @Dan dari mulai awal sampek finising hehehe gak sempat belajar kayak gitu banyak ngurusi serpis hp Bodol soale heheh ya semoga ini bisa menambah wawsan saya biar gk Sungguh Terlalu gak tauknya.... lanjutkan.
     
  3. Dan

    Dan Forum Bot

    Joined:
    Dec 4, 2012
    Messages:
    1,316
    Likes Received:
    257
    Trophy Points:
    83
    Google+:
    Backup itu bukan tanggung jawab provider lo ya kecuali memang ada pernyataan gitu, dimana-mana kalau VPS provider mayoritas keamanan data tanggung jawab si penggunanya :)
     
  4. DwiKhasbullah

    DwiKhasbullah Well-Known Member

    Joined:
    Aug 7, 2014
    Messages:
    1,955
    Likes Received:
    138
    Trophy Points:
    63
    Hehehe iya kang... mungkin memang ya kudu di pelajari lagi pelan2 agar tidak ketinggalan, untuk memulai awalnya masih radak belum mudeng sama sekali apa lagi kalau bukak server database yang ada code2nya hehehe ya yang penting di pelajari dulu semoga bisa menyusul yang lainnya...
     
  5. Kevin.F

    Kevin.F Member

    Joined:
    Jul 6, 2015
    Messages:
    43
    Likes Received:
    2
    Trophy Points:
    8
    hahaha, baru ngeliat kode"nya mumet ni kepala, bakupnya secara manual aja seminggu sekali cukup :D pas lagi ke wifi id
     
  6. rajautan

    rajautan Active Member

    Joined:
    Mar 21, 2015
    Messages:
    1,354
    Likes Received:
    57
    Trophy Points:
    48
    wah ane sama sekali gak ngerti MYSQL, kodenya aja bikin puyeng,, ane kirain backup blogcepot.com,,,
     
  7. ecallica

    ecallica Member

    Joined:
    Dec 15, 2015
    Messages:
    81
    Likes Received:
    3
    Trophy Points:
    8
    Wah ane puyeng gan, hehe ane pake fasilitas backup dari cpanel aja dah walaupun manual. btw thanks infonya
     
  8. Hape

    Hape Member

    Joined:
    Jan 20, 2016
    Messages:
    67
    Likes Received:
    5
    Trophy Points:
    8
    Itu kodenya kalau pakai cpanel+wordpress disimpan di bagian mana den?
    Mohon pencerahannya, soalnya pernah kejadian website saya dihack orang.
     
  9. ridwan03

    ridwan03 New Member

    Joined:
    Oct 6, 2016
    Messages:
    13
    Likes Received:
    0
    Trophy Points:
    1
    Ane kalo soal beginian masih suka bingung hahaha. Ada gak thread yang ngebahasnya dari 0 tentang database gitu ?
     
Loading...

Share This Page