Foto User
Manajemen Sistem Update

Farel enzal alkhafi

Sosial Media


0 orang menyukai ini
Suka

Summary

Manajemen Sistem Update ini dirancang untuk memudahkan pengguna Linux dalam menjaga sistem tetap mutakhir dan aman. Dibuat oleh saya sendiri FAREL ENZAL ALKHAFI  dengan NIM 2410514012, sistem ini berbasis Bash dan menggabungkan antarmuka menu interaktif dengan fungsi penjadwalan otomatis menggunakan crontab.

Pengguna dapat menjalankan update dan upgrade secara langsung, menjadwalkannya agar berjalan otomatis setiap hari pada jam tertentu, serta melihat jadwal yang telah ditentukan. Sistem ini menyimpan jadwal dalam file log dan memperbarui crontab secara dinamis tanpa mengganggu entri lain.

Dengan sistem ini, pemeliharaan sistem menjadi lebih efisien dan dapat dilakukan bahkan oleh pengguna yang belum mahir menggunakan terminal Linux.

Description

Sistem Manajemen Update & Upgrade Linux merupakan sebuah program berbasis Bash yang dirancang untuk membantu pengguna dalam melakukan pembaruan sistem operasi secara lebih mudah, terstruktur, dan otomatis. Sistem ini dibuat sebagai solusi praktis dalam pemeliharaan sistem berbasis Debian seperti Ubuntu.

Fungsi utama sistem ini adalah memberikan antarmuka menu yang memungkinkan pengguna untuk:

  • Menjalankan perintah sudo apt update && sudo apt upgrade secara langsung.
  • Menjadwalkan proses update dan upgrade agar berjalan otomatis setiap hari pada jam tertentu yang diinginkan.
  • Melihat jadwal yang telah disimpan sebelumnya untuk memastikan sistem akan diperbarui secara rutin.

Penjadwalan dilakukan menggunakan fitur crontab, di mana sistem akan menambahkan entri otomatis sesuai waktu yang ditentukan pengguna, tanpa menghapus atau mengganggu entri lain yang mungkin sudah ada. Selain itu, informasi jadwal disimpan dalam file log untuk referensi.

Sistem ini ditujukan untuk pengguna yang ingin memastikan sistemnya selalu diperbarui tanpa harus menjalankan perintah secara manual setiap hari. Dengan antarmuka yang sederhana dan fitur otomatisasi, sistem ini cocok untuk digunakan baik oleh pemula maupun administrator sistem.

 

LANGKAH PENGERJAAN

 

Variabel Penting

JADWAL_LOG="$HOME/jadwal_update.txt"

SCRIPT_PATH="$HOME/sistem.sh"

  • JADWAL_LOG: File log sederhana yang menyimpan informasi jadwal update (dalam format teks).
  • SCRIPT_PATH: Path ke file script ini sendiri. Dipakai agar crontab tahu script mana yang akan dijalankan secara otomatis.

 

Fungsi Utama

1. update_upgrade

function update_upgrade() {

    echo "Menjalankan update & upgrade..."

    sudo apt update && sudo apt upgrade -y

}

  • Menjalankan perintah sudo apt update && sudo apt upgrade -y untuk memperbarui indeks paket dan meng-upgrade semua paket yang tersedia.
  • Menampilkan pesan proses kepada pengguna.

 

2. jadwalkan_update

function jadwalkan_update() {

    read -p "Masukkan jam (format 24 jam): " jam

    if [[ ! "$jam" =~ ^[0-2][0-9]$ ]]; then

        echo "Format jam tidak valid."

        return

    fi

  • Meminta pengguna untuk memasukkan jam (00–23) sebagai waktu update otomatis harian.
  • Validasi format input agar hanya menerima angka dua digit dari 00 hingga 29 (meskipun logisnya hanya sampai 23).

 

    echo "$jam:00 setiap hari" > "$JADWAL_LOG"

  • Menyimpan jadwal dalam bentuk teks ke jadwal_update.txt agar dapat ditampilkan kembali oleh menu 3.

 

    crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH auto" > temp_cron

  • Mengambil daftar crontab user saat ini, lalu menghapus entri lama terkait update otomatis dari script ini (yang ditandai dengan # auto).
  • Disimpan sementara di file temp_cron.

 

    echo "0 $jam * * * bash $SCRIPT_PATH auto # auto" >> temp_cron

    crontab temp_cron && rm temp_cron

  • Menambahkan baris baru ke crontab yang akan menjalankan script ini pada jam yang dimasukkan, setiap hari.
  • Parameter auto akan dibaca oleh script untuk langsung melakukan update (tanpa menu).
  • # auto digunakan sebagai penanda agar mudah difilter saat penggantian jadwal berikutnya.

 

3. lihat_jadwal

function lihat_jadwal() {

    if [[ -f "$JADWAL_LOG" ]]; then

        echo "Jadwal saat ini:"

        cat "$JADWAL_LOG"

    else

        echo "Belum ada jadwal disimpan."

    fi

}

 

  • Menampilkan isi file jadwal_update.txt jika ada.
  • Jika belum ada jadwal, maka tampilkan pesan bahwa belum ada jadwal yang disimpan.

 

Eksekusi Otomatis oleh crontab

if [[ "$1" == "auto" ]]; then

    sudo apt update && sudo apt upgrade -y

    exit 0

fi

 

  • Bagian ini memungkinkan script dieksekusi secara otomatis oleh cron tanpa menampilkan menu.
  • Jika script dijalankan dengan argumen auto, maka langsung melakukan update & upgrade dan keluar (exit 0).

 

Menu Utama

while true; do

    echo "===== Sistem Manajemen Update & Upgrade ====="

    ...

    read -p "Pilih menu [1-4]: " pilih

 

    case $pilih in

        1) update_upgrade ;;

        2) jadwalkan_update ;;

        3) lihat_jadwal ;;

        4) echo "Keluar..."; break ;;

        *) echo "Pilihan tidak valid!" ;;

    esac

 

  • Menampilkan menu interaktif.
  • Pengguna bisa memilih untuk:
    1. Jalankan update sekarang.
    2. Jadwalkan update otomatis.
    3. Lihat jadwal yang tersimpan.
    4. Keluar dari script.
  • Menu akan terus muncul hingga pengguna memilih keluar.

HASIL OUTPUT

Menu 1: Jalankan Update & Upgrade Sekarang

Fungsi ini memungkinkan pengguna untuk langsung melakukan pembaruan sistem secara manual. Ketika dipilih, sistem akan menjalankan perintah:

sudo apt update && sudo apt upgrade -y

Perintah tersebut akan memperbarui daftar informasi paket (update) dan menginstal versi terbaru dari paket-paket yang sudah terpasang (upgrade). Proses ini dilakukan seketika dan cocok digunakan jika pengguna ingin memastikan sistemnya diperbarui tanpa menunggu jadwal otomatis.

 

Menu 2: Jadwalkan Update & Upgrade

Fungsi ini digunakan untuk menjadwalkan proses pembaruan secara otomatis setiap hari pada jam tertentu. Pengguna akan diminta memasukkan jam dalam format 24 jam (contoh: 05, 14, 23).

Setelah itu, sistem akan:

  • Menyimpan informasi jadwal ke dalam file jadwal_update.txt
  • Menambahkan perintah ke dalam crontab agar script dijalankan otomatis pada jam yang telah ditentukan
  • Menghapus jadwal lama dari crontab jika sebelumnya sudah pernah disimpan, untuk mencegah duplikasi

Dengan fitur ini, pengguna tidak perlu lagi menjalankan pembaruan secara manual setiap hari.

 

Menu 3: Lihat Jadwal Update

Fungsi ini menampilkan jadwal update & upgrade yang telah disimpan sebelumnya. Jadwal tersebut diambil dari file jadwal_update.txt yang otomatis dibuat saat pengguna menggunakan menu 2.

Jika belum ada jadwal disimpan, sistem akan memberi tahu bahwa belum ada data jadwal yang tersedia. Fungsi ini berguna untuk memastikan bahwa penjadwalan otomatis telah berhasil disetel dan jamnya sesuai dengan keinginan pengguna.

Informasi Course Terkait
  Kategori: Cloud Computing
  Course: Cloud Computing