Backup Semua Web dan Database Menggunakan Script Bash: Perbedaan antara revisi

Dari Dokumentasi Robie
Loncat ke navigasi Loncat ke pencarian
Tidak ada ringkasan suntingan
Tidak ada ringkasan suntingan
Baris 1: Baris 1:
Buat file berikut ini di path mana saja dalam server misalkan diberi nama backup_website_database.zip
Buat file berikut ini di path mana saja dalam server misalkan diberi nama backup_website_database.zip
Isi file bash adalah sebagai berikut
Isi file bash adalah sebagai berikut




Baris 57: Baris 59:
   
   
  log "Backup selesai."
  log "Backup selesai."
Simpan dan ubah hak akses menggunakan perintah
<code>chmod +x backup_website_database.zip.sh</code>
Jalankan dengan perintah
<code>./backup_website_database_zip.sh</code>
Jika berjalan akan muncul tampilan proses backup website dan database seperti tampilan berikut
[2025-06-02 03:41:43] Backup dimulai...
[2025-06-02 03:41:43] Memproses website: dinda.elektronik
[2025-06-02 03:41:43] Backup file berhasil: /root/backup_cyberpanel/dinda.elektronik.files.202506020341.zip
[2025-06-02 03:41:43] Memproses website: elektronik.dinda
[2025-06-02 03:41:44] Backup file berhasil: /root/backup_cyberpanel/elektronik.dinda.files.202506020341.zip
[2025-06-02 03:41:44] Memproses website: jualelektronik.smekta
[2025-06-02 03:41:44] Backup file berhasil: /root/backup_cyberpanel/jualelektronik.smekta.files.202506020341.zip
[2025-06-02 03:41:44] Memproses website: toko.elektronik
[2025-06-02 03:41:44] Backup file berhasil: /root/backup_cyberpanel/toko.elektronik.files.202506020341.zip
[2025-06-02 03:41:44] Memulai backup semua database...
[2025-06-02 03:42:24] Backup semua database berhasil: /root/backup_cyberpanel/all_databases.202506020341.sql.gz
[2025-06-02 03:42:24] Backup selesai.

Revisi per 2 Juni 2025 03.50

Buat file berikut ini di path mana saja dalam server misalkan diberi nama backup_website_database.zip

Isi file bash adalah sebagai berikut


#!/bin/bash

# Direktori tempat website berada
WEB_DIR="/home"

# Direktori tujuan backup
BACKUP_DIR="/root/backup_cyberpanel"
DATE=$(date +"%Y%m%d%H%M")
LOG_FILE="$BACKUP_DIR/backup_$DATE.log"

# Folder yang harus diabaikan (tidak perlu dibackup)
EXCLUDE=("cyberpanel" "docker" "vmail")

# Buat direktori backup jika belum ada
mkdir -p "$BACKUP_DIR"

# Daftar folder website (abaikan folder sistem & EXCLUDE)
SITES=($(ls -l $WEB_DIR | awk '{print $9}' | grep -v '^$' | grep -v '^\.' | grep -vE "$(IFS=\|; echo "${EXCLUDE[*]}")"))

# Fungsi logging
log() {
    echo "[$(date +"%Y-%m-%d %T")] $1" | tee -a "$LOG_FILE"
}

log "Backup dimulai..."

for SITE in "${SITES[@]}"; do
    SITE_PATH="$WEB_DIR/$SITE"
    
    if [ -d "$SITE_PATH" ]; then
        log "Memproses website: $SITE"

        # Backup file website dalam format .zip
        FILE_BACKUP="$BACKUP_DIR/$SITE.files.$DATE.zip"
        zip -r "$FILE_BACKUP" "$SITE_PATH" >> "$LOG_FILE" 2>&1
        if [ $? -eq 0 ]; then
            log "Backup file berhasil: $FILE_BACKUP"
        else
            log "Gagal membuat backup file untuk $SITE"
        fi
    fi
done

# Backup semua database MySQL/MariaDB
log "Memulai backup semua database..."
DB_BACKUP="$BACKUP_DIR/all_databases.$DATE.sql.gz"
mysqldump --all-databases | gzip > "$DB_BACKUP" 2>> "$LOG_FILE"
if [ $? -eq 0 ]; then
    log "Backup semua database berhasil: $DB_BACKUP"
else
    log "Gagal membuat backup semua database"
fi

log "Backup selesai."

Simpan dan ubah hak akses menggunakan perintah

chmod +x backup_website_database.zip.sh


Jalankan dengan perintah

./backup_website_database_zip.sh


Jika berjalan akan muncul tampilan proses backup website dan database seperti tampilan berikut


[2025-06-02 03:41:43] Backup dimulai...

[2025-06-02 03:41:43] Memproses website: dinda.elektronik

[2025-06-02 03:41:43] Backup file berhasil: /root/backup_cyberpanel/dinda.elektronik.files.202506020341.zip

[2025-06-02 03:41:43] Memproses website: elektronik.dinda

[2025-06-02 03:41:44] Backup file berhasil: /root/backup_cyberpanel/elektronik.dinda.files.202506020341.zip

[2025-06-02 03:41:44] Memproses website: jualelektronik.smekta

[2025-06-02 03:41:44] Backup file berhasil: /root/backup_cyberpanel/jualelektronik.smekta.files.202506020341.zip

[2025-06-02 03:41:44] Memproses website: toko.elektronik

[2025-06-02 03:41:44] Backup file berhasil: /root/backup_cyberpanel/toko.elektronik.files.202506020341.zip

[2025-06-02 03:41:44] Memulai backup semua database...

[2025-06-02 03:42:24] Backup semua database berhasil: /root/backup_cyberpanel/all_databases.202506020341.sql.gz

[2025-06-02 03:42:24] Backup selesai.