Skrip Bash ringan yang didesain untuk memantau status ketersediaan (Live/Down) dari daftar website dan mengirimkan notifikasi instan ke Telegram ketika status situs berubah.
- Pengecekan Status HTTP: Mengecek kode status HTTP (200, 404, 500, dll.) dari URL yang ditargetkan menggunakan
curl. - Notifikasi Telegram: Mengirim peringatan (alert) otomatis ke Telegram saat status website berubah (Live -> Down, atau Down -> Live).
- Pencatatan Status: Menyimpan riwayat status terakhir (termasuk waktu Last Live dan Last Down) dalam file JSON (
webmonitoring/status.json). - Penanganan Redirect: Otomatis mengikuti pengalihan permanen (kode 301) dan mengecek status di URL tujuan.
- Input Fleksibel: Mendukung pemantauan URL tunggal, multiple URL, atau daftar URL dari file teks.
Pastikan Anda memiliki utilitas berikut terinstal di sistem Anda:
bashcurljq(Untuk memanipulasi file JSON)
# Untuk Debian/Ubuntu
sudo apt update
sudo apt install curl jq
# Untuk sistem berbasis RHEL/Fedora
sudo dnf install curl jqIkuti langkah-langkah berikut untuk menyiapkan dan menjalankan monitor.
Asumsikan nama skrip Anda adalah monweb.sh.
Clone repositori Anda ke server atau mesin lokal:
git clone https://github.com/ForensicID/web-monitoring-bot.git
cd Telegram-Web-Monitor- Buat Bot via @BotFather untuk mendapatkan
bot_token. - Dapatkan
chat_idgrup atau chat pribadi yang dituju.
Buka file monweb.sh dan ganti YOUR_BOT_TOKEN dan YOUR_CHAT_ID dengan kredensial Anda:
# Dalam monweb.sh
bot_token="TOKEN_ANDA_DI_SINI"
chat_id="CHAT_ID_ANDA_DI_SINI"Berikan izin eksekusi pada skrip:
chmod +x monitor.shSkrip membutuhkan direktori webmonitoring untuk menyimpan file status JSON.
mkdir webmonitoringBuat file teks (misalnya, urls.txt) yang berisi daftar website yang ingin Anda pantau, satu URL per baris.
urls.txt
Jalankan skrip secara manual untuk memastikan konfigurasi berjalan dengan baik dan notifikasi Telegram terkirim:
./monweb.sh -l urls.txtUntuk menjaga pemantauan berjalan terus-menerus, atur cron job untuk menjalankan skrip setiap beberapa menit (misalnya, setiap 5 menit).
crontab -ePastikan untuk menggunakan absolute path ke skrip monitor.sh dan file urls.txt Anda:
# Format: Menit Jam Hari Bulan Hari_Minggu Perintah
# Jalankan monitor setiap 5 menit
*/5 * * * * /path/to/Telegram-Web-Monitor/monitor.sh -l /path/to/Telegram-Web-Monitor/urls.txt >/dev/null 2>&1Status terakhir dari semua website yang dipantau disimpan dalam file webmonitoring/status.json.
{
"sites": {
"website-utama-anda.com": {
"Status": "Live",
"Last Live": "11/12/2025-18:00:00"
},
"website-kedua.net": {
"Status": "Down",
"Last Down": "11/12/2025-17:55:00"
}
}
}