Semua modul / Operasional harian

Penjadwalan Tugas dan Pencadangan Data

Mengotomatisasi tugas berkala menggunakan cron, membuat arsip backup, dan memverifikasi integritas pemulihan data.

  • 6 langkah
  • Penjadwalan cron
  • Backup dengan tar dan rsync
  • Validasi pemulihan
Praktikkan di Bash Ubuntu
  1. 1

    Siapkan data uji

    Buat direktori sumber dan tujuan backup, kemudian tambahkan berkas contoh sebagai data yang akan dicadangkan.

    bash
    mkdir -p ~/data-uji ~/backup
    echo "dokumen penting" > ~/data-uji/catatan.txt
    
  2. 2

    Buat arsip backup dengan tar

    Cantumkan tanggal pada nama arsip untuk memudahkan identifikasi. Gunakan opsi `-tzf` untuk memverifikasi daftar isi arsip.

    bash
    tar -czf ~/backup/data-$(date +%F).tar.gz -C ~ data-uji
    tar -tzf ~/backup/data-$(date +%F).tar.gz
    
  3. 3

    Sinkronkan data menggunakan rsync

    Garis miring di akhir path sumber menandakan bahwa isi direktori yang disinkronkan, bukan direktori induknya.

    Perhatian. Opsi `--delete` menghapus berkas tujuan yang tidak ditemukan pada sumber. Verifikasi path sumber dan tujuan sebelum menjalankan perintah.

    bash
    rsync -av --delete ~/data-uji/ ~/backup/mirror/
    
  4. 4

    Jadwalkan pencadangan dengan cron

    Tambahkan entri pada crontab untuk menjalankan pencadangan setiap hari pukul 02.00. Dalam crontab, karakter `%` pada perintah perlu di-escape sebagai `\%`.

    bash
    crontab -e
    crontab -l
    
    template
    0 2 * * * tar -czf $HOME/backup/data-$(date +\%F).tar.gz -C $HOME data-uji
  5. 5

    Validasi pemulihan backup

    Backup belum dapat dianggap valid sebelum proses pemulihan berhasil dan hasilnya dibandingkan dengan data sumber.

    bash
    mkdir ~/restore
    tar -xzf ~/backup/data-$(date +%F).tar.gz -C ~/restore
    diff -r ~/data-uji ~/restore/data-uji && echo "Restore OK"
    

    Restore OK

  6. 6

    Verifikasi eksekusi terjadwal

    Tinjau log layanan cron dan daftar timer systemd untuk memastikan tugas terjadwal berjalan sesuai konfigurasi.

    bash
    journalctl -u cron --since today
    systemctl list-timers