Hướng dẫn xử lý check disk, down, xóa log … trên Oracle linux
- Hướng dẫn tạo file archive xóa log
Bước 1: Tạo file với nội dung sau
su – oracle
vi /home/oracle/scripts/archive.rman
===========================
RUN {
CROSSCHECK ARCHIVELOG ALL;
DELETE force noprompt archivelog until time ‘SYSDATE-7’;
}
===========================
Tạo file archive.sh với nội dung sau
vi /home/oracle/scripts/archive.sh
===========
rman target / cmdfile /home/oracle/scripts/archive.rman
===========
Bước 2: vào crontab -e —> đặt lịch chạy 22h mõi ngày
0 22 * * * sh /home/oracle/scripts/archive.sh
2. Check disk Server DB —> Chạy với quyền root
Tạo thư mục và file script
mkdir -p /u01/script
touch /u01/script/checkdisk.sh
chmod 777 /u01/script/checkdisk.sh
vi /u01/script/checkdisk.sh
Paste noi dung sau vao: ====> Chổ dòng số 4 từ dưới đếm lên thay IP và tên Server DB chính or DB standby vào
======================================
#!/bin/bash
# Cấu hình ngưỡng và thông tin Telegram
THRESHOLD=80
BOT_TOKEN=”1209083142:AAGy8C4WUvtmP501lWrA9wBlmP0PW831jhs”
CHAT_ID=”-4561457361″
# Hàm gửi thông báo qua Telegram
send_telegram() {
local message=$1
curl -s -X POST “<https://api.telegram.org/bot$BOT_TOKEN/sendMessage>” -d chat_id=”$CHAT_ID” -d text=”$message”
}
# Kiểm tra dung lượng ổ đĩa
disk_usage=$(df / | grep / | awk ‘{print $5}’ | sed ‘s/%//g’)
if [ “$disk_usage” -gt $THRESHOLD ]; then
message=”[Thanh Ba DB] [192.168.0.2] CẢNH BÁO: Dung lượng ổ đĩa vượt ngưỡng $THRESHOLD%: $disk_usage%”
echo “$message”
send_telegram “$message”
fi
=====================================
Lập lịch chạy lúc 3 giờ sáng
crontab -e
Thêm dòng sau vào
0 3 * * * sh /u01/script/checkdisk.sh
Restart lại crond để apply
systemctl restart crond
3. Check máy chủ DB down
– Tạo file
touch /u01/script/checkdown.sh
chmod 777 /u01/script/checkdown.sh
vi /u01/script/checkdown.sh
Thêm nội dung sau vào —> Chổ dòng List off IPs thêm các IP tương ứng của máy chủ App, DB chính, DB phụ
===============================
#!/bin/bash
# Telegram Bot Information
bot_token=”1209083142:AAGy8C4WUvtmP501lWrA9wBlmP0PW831jhs”
chat_id=”-4561457361″
# List of IPs to check
standby_ip=”192.168.0.50″ # IP of Oracle Standby
app_main_ip=”192.168.0.100″ # IP of the main application
app_secondary_ip=”192.168.0.101″ # IP of the secondary application
# Function to send alerts via Telegram
send_alert() {
local message=$1
curl -s -X POST “https://api.telegram.org/bot$bot_token/sendMessage” -d chat_id=”$chat_id” -d text=”$message”
}
# Function to check the status of an IP
check_ping() {
local ip=$1
ping -c 1 -W 2 $ip > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
echo “$ip DOWN”
return 1
else
echo “$ip UP”
return 0
fi
}
# Check each IP and send an alert if it’s DOWN
if ! check_ping $standby_ip; then
send_alert “ALERT: Connection lost to Standby Server (IP: $standby_ip)!”
fi
if ! check_ping $app_main_ip; then
send_alert “ALERT: Connection lost to Main Application (IP: $app_main_ip)!”
fi
if ! check_ping $app_secondary_ip; then
send_alert “ALERT: Connection lost to Secondary Application (IP: $app_secondary_ip)!”
fi
===========================
Lập lịch chạy lúc 10 phút 1 lần
crontab -e
Thêm dòng sau vào
*/15 * * * * sh /u01/script/checkdown.sh
Restart lại crond để apply
systemctl restart crond