Sebelum kita memulai langkah-langkah pembuatan panel menu Refresh VPS No Reboot,anda harus berada pada akses root,dan sistem operasi yang saya gunakan saat membuat tutorial ini adalah ubuntu server 20.04 lts.Cara ini juga bisa di gunakan sampai pada versi ubuntu 24.04 lts ,untuk versi ubuntu server di atasnya saya belum pernah mencoba nya.
Berikut Panduan Lengkap Membuat Menu fresh dengan Auto-Refresh dan Status Checker
Langkah 1: Membuat File Script fresh :
Kita akan membuat file script baru yang sudah diperbarui dengan opsi penjadwalan yang lebih banyak.
1.Buka editor teks nano:
2.Salin seluruh kode di bawah ini, lalu tempel ke dalam editor nano.
#!/bin/bash
# --- Script Menu Refresh Sistem dengan Auto-Scheduler & Status Checker (Versi Perpanjangan) ---
# Nama: fresh
# Fungsi: Menu interaktif untuk merefresh CPU, RAM, Swap, penjadwalan, dan status
# Author: AI Assistant
# -------------------------------------------------------------------------
# Fungsi untuk menjalankan refresh otomatis (tanpa interaksi)
run_auto_refresh() {
echo "$(date): Memulai auto-refresh..." >> /var/log/fresh-auto.log
sync
echo 3 > /proc/sys/vm/drop_caches
swapoff -a
swapon -a
echo "$(date): Auto-refresh selesai." >> /var/log/fresh-auto.log
}
# Cek argumen --auto untuk mode otomatis
if [ "$1" == "--auto" ]; then
run_auto_refresh
exit 0
fi
# Cek apakah script dijalankan dengan sudo (untuk mode interaktif)
if [ "$(id -u)" -ne 0 ]; then
echo -e "\e[31mError: Script ini harus dijalankan dengan hak akses root (sudo).\e[0m" >&2
exit 1
fi
# Fungsi untuk menampilkan menu utama
tampilkan_menu() {
clear
echo -e "\e[36m========================================\e[0m"
echo -e "\e[1;32m MENU REFRESH SISTEM VPS \e[0m"
echo -e "\e[36m========================================\e[0m"
echo "Pilih tindakan yang ingin dilakukan:"
echo "1. Kelola Proses CPU (buka htop)"
echo "2. Refresh RAM (Hapus Cache)"
echo "3. Refresh Swap"
echo "4. Refresh Semua (RAM + Swap)"
echo "5. Lihat Status Memori Saat Ini"
echo "6. Jadwalkan Auto Refresh"
echo "7. Cek Status Auto Refresh"
echo "0. Keluar"
echo -e "\e[36m----------------------------------------\e[0m"
}
# Fungsi untuk menu penjadwalan
menu_scheduler() {
while true; do
clear
echo -e "\e[36m========================================\e[0m"
echo -e "\e[1;34m MENU JADWAL AUTO REFRESH \e[0m"
echo -e "\e[36m========================================\e[0m"
echo "Pilih interval waktu:"
echo "1. Setiap 1 Jam"
echo "2. Setiap 3 Jam"
echo "3. Setiap 6 Jam"
echo "4. Setiap 12 Jam"
echo "5. Setiap 24 Jam (1 Hari)"
echo "6. Setiap 1 Minggu"
echo "7. Setiap 2 Minggu"
echo "8. Setiap 1 Bulan"
echo "9. Hapus Semua Jadwal"
echo "0. Kembali ke Menu Utama"
echo -e "\e[36m----------------------------------------\e[0m"
read -p "Masukkan pilihan Anda: " pilihan_sched
case $pilihan_sched in
1) cron_interval="0 * * * *"; break ;; # Setiap jam penuh
2) cron_interval="0 */3 * * *"; break ;; # Setiap 3 jam
3) cron_interval="0 */6 * * *"; break ;; # Setiap 6 jam
4) cron_interval="0 */12 * * *"; break ;; # Setiap 12 jam
5) cron_interval="0 0 * * *"; break ;; # Setiap hari pukul 00:00
6) cron_interval="0 0 * * 0"; break ;; # Setiap Minggu pukul 00:00
7) cron_interval="0 0 */14 * *"; break ;; # Setiap 14 hari (2 minggu)
8) cron_interval="0 0 1 * *"; break ;; # Setiap bulan pukul 00:00 tanggal 1
9)
echo "Menghapus semua jadwal 'fresh --auto'..."
(crontab -l 2>/dev/null | grep -v "fresh --auto") | crontab -
echo -e "\e[32mSemua jadwal berhasil dihapus.\e[0m"
pause
return
;;
0) return ;;
*)
echo -e "\e[31mPilihan tidak valid.\e[0m"
pause
;;
esac
done
# Tambahkan ke crontab
cron_job="$cron_interval sudo /usr/local/bin/fresh --auto >> /var/log/fresh-auto.log 2>&1"
echo "Menambahkan jadwal baru ke crontab..."
(crontab -l 2>/dev/null; echo "$cron_job") | crontab -
echo -e "\e[32mJadwal berhasil dibuat!\e[0m"
echo "Log akan disimpan di /var/log/fresh-auto.log"
pause
}
# Fungsi untuk mengecek status auto-refresh
cek_status_auto_refresh() {
clear
echo -e "\e[36m========================================\e[0m"
echo -e "\e[1;35m STATUS AUTO REFRESH \e[0m"
echo -e "\e[36m========================================\e[0m"
if crontab -l 2>/dev/null | grep -q "fresh --auto"; then
echo -e "\e[32mStatus: AKTIF\e[0m"
echo ""
echo "Jadwal yang sedang berjalan:"
crontab -l 2>/dev/null | grep --color=auto "fresh --auto"
else
echo -e "\e[31mStatus: TIDAK AKTIF\e[0m"
echo ""
echo "Tidak ada jadwal auto-refresh yang ditemukan."
fi
echo ""
echo -e "\e[33mLog dapat dilihat di: /var/log/fresh-auto.log\e[0m"
echo -e "\e[36m----------------------------------------\e[0m"
pause
}
# Fungsi untuk pause
pause() {
read -p "Tekan [Enter] untuk melanjutkan..."
}
# Loop utama program
while true; do
tampilkan_menu
read -p "Masukkan pilihan Anda [1-7] atau 0 untuk keluar: " pilihan
case $pilihan in
1)
echo -e "\e[33mMembuka htop untuk mengelola proses CPU...\e[0m"
pause
htop
;;
2)
echo -e "\e[33mMembersihkan cache RAM...\e[0m"
sync && echo 3 > /proc/sys/vm/drop_caches
echo -e "\e[32mCache RAM berhasil dibersihkan.\e[0m"
pause
;;
3)
echo -e "\e[31mPERINGATAN: Pastikan RAM Anda mencukupi!\e[0m"
free -h
read -p "Apakah Anda yakin ingin melanjutkan? (y/n) " konfirmasi
if [[ $konfirmasi =~ ^[Yy]$ ]]; then
swapoff -a && swapon -a
echo -e "\e[32mSwap berhasil direfresh.\e[0m"
else
echo "Operasi dibatalkan."
fi
pause
;;
4)
echo -e "\e[31mPERINGATAN: Ini akan membersihkan cache RAM dan merefresh Swap.\e[0m"
free -h
read -p "Apakah Anda yakin ingin melanjutkan? (y/n) " konfirmasi
if [[ $konfirmasi =~ ^[Yy]$ ]]; then
run_auto_refresh
echo -e "\e[32mSemua proses refresh selesai!\e[0m"
else
echo "Operasi dibatalkan."
fi
pause
;;
5)
echo -e "\e[33mStatus Memori Saat Ini:\e[0m"
free -h
echo ""
echo -e "\e[33mPenggunaan Swap:\e[0m"
swapon --show
pause
;;
6)
menu_scheduler
;;
7)
cek_status_auto_refresh
;;
0)
echo -e "\e[32mTerima kasih! Sampai jumpa.\e[0m"
exit 0
;;
*)
echo -e "\e[31mPilihan tidak valid, silakan coba lagi.\e[0m"
pause
;;
esac
done
Tekan Ctrl + X.
Tekan Y untuk konfirmasi.
Tekan Enter.
Langkah 2: Memberikan Izin Eksekusi
sudo chmod +x /usr/local/bin/fresh
Langkah 3: Konfigurasi sudo Tanpa Password (untuk User root)
Meskipun Anda adalah user root, menambahkan aturan eksplisit ke sudoers adalah praktik yang baik untuk memastikan script berjalan sesuai harapan.
1.Edit File sudoers:
sudo visudo
2.Tambahkan Aturan Baru. Gulir ke bagian bawah dan tambahkan baris ini:
# Mengizinkan root menjalankan script fresh tanpa password
root ALL=(ALL) NOPASSWD: /usr/local/bin/fresh
3.Simpan dan Keluar:
Tekan Ctrl + X, lalu Y, dan Enter.
Langkah 4: Cara Menggunakan Menu fresh yang Baru
1.Jalankan Menu:
nano /usr/bin/panel
2.Eksplorasi Menu:
Opsi 1-5: Fitur manual seperti sebelumnya.
Opsi 6: Untuk membuat atau menghapus jadwal auto-refresh.
Opsi 7 (Baru): Untuk mengecek status.
Jika aktif, akan menampilkan Status: AKTIF beserta jadwal cron-nya.
Jika tidak aktif, akan menampilkan Status: TIDAK AKTIF.
Sekarang, semua fitur sudah siap digunakan.




