Trong thời đại công nghệ số, an toàn dữ liệu và tính bình để của hệ thống là điều cần thiết đối với mời website. Đặc biệt, trong những trường hợp website của bạn bị xâm nhập hoặc thay đổi bất thường, việc phát hiện kịp thời rất quan trọng.
Script quetfilela.sh được Giza Data phát triển theo nhu cầu cá nhân nhằm giúp bạn giải quyết vấn đề này. Trong bài viết này, chúng tôi sẽ giới thiệu chi tiết về script và các chức năng quan trọng của nó.
#!/bin/bash
# Đường dẫn thư mục cần quét
DIRECTORY="/var/www/abc.com/htdocs"
# File lưu danh sách các file đã quét
LAST_SCAN_FILE="/root/last_scan_files.txt"
# Token và Chat ID của Telegram Bot
TOKEN="nhap-token-chat-telegram-vao-day"
CHAT_ID="nhap-idchat-chat-telegram-vao-day"
# File lưu các file hiện tại
CURRENT_SCAN_FILE="/root/current_scan_files.txt"
# Lấy thời gian hiện tại theo định dạng giờ, phút, ngày, tháng, năm
TIMESTAMP=$(date "+%H-%M-%d-%m-%Y")
# Đặt tên file diff với timestamp
DIFF_FILE="/root/diff_$TIMESTAMP.txt"
# Hàm gửi thông báo qua Telegram
send_telegram_message() {
local MESSAGE=$1
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$MESSAGE"
}
# Kiểm tra nếu file danh sách quét trước không tồn tại
if [ ! -f "$LAST_SCAN_FILE" ]; then
# Nếu không tồn tại, tạo file với danh sách hiện tại
find "$DIRECTORY" -type f > "$LAST_SCAN_FILE"
exit 0
fi
# Quét thư mục hiện tại và lưu danh sách các file
find "$DIRECTORY" -type f > "$CURRENT_SCAN_FILE"
# So sánh danh sách hiện tại với danh sách trước đó và lưu vào file diff có tên mới
diff "$LAST_SCAN_FILE" "$CURRENT_SCAN_FILE" > "$DIFF_FILE"
# Nếu có sự khác biệt, thông báo về Telegram
if [ -s "$DIFF_FILE" ]; then
send_telegram_message "Phát hiện file lạ trong thư mục $DIRECTORY. Kiểm tra chi tiết: $DIFF_FILE"
# Đọc nội dung file diff và gửi nó qua Telegram
DIFF_CONTENT=$(cat "$DIFF_FILE")
send_telegram_message "Nội dung thay đổi:\n$DIFF_CONTENT"
fi
# Cập nhật danh sách các file đã quét
mv "$CURRENT_SCAN_FILE" "$LAST_SCAN_FILE"
# gắn file ở crontab
# * * * * * /root/quetma.sh
Trong Script có nhiều thông tin bạn có thể để mặc định và chỉ cần thay thế 3 thông tin sau:
Bạn tạo file này ở thư mục /root của VPS, nhớ chown để nó có quyền chạy.
Đây là hình ảnh thực tế khi nó quét ra file lạ. Sẽ có 1 tin nhắn thông tin phát hiện file lạ và 1 tin nhắn thông tin các file lạ đó được gửi tới telegram được cài đặt. Bạn dựa vào đó để kiểm tra cho tiện nhé.
Script quetfilela.sh được viết bằng Bash Shell, để chạy trên môi trường Linux VPS.
Chức năng chính của script này bao gồm:
/var/www/abc.com/htdocs
) và lưu danh sách các file trong thư mục này.DIRECTORY
.* * * * * /root/quetfilela.sh
Script quetfilela.sh là một giải pháp đơn giản, hiệu quả và linh hoạt giúp giám sát tình trạng file trong thư mục của VPS.
Với tính năng gửi thông báo qua Telegram và khả năng tích hợp với crontab, script này là một công cụ hữu ích cho các quản trị viên muốn đảm bảo an ninh hệ thống một cách tự động và kịp thời.
Hãy áp dụng script này ngay hôm nay để tăng cường bảo vệ cho hệ thống của bạn!