Linux gir02.nhanhoa.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC 2023 x86_64
LiteSpeed
Server IP : 103.124.95.33 & Your IP : 216.73.217.104
Domains :
Cant Read [ /etc/named.conf ]
User : nhsacmvr
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
nhanhoa /
Delete
Unzip
Name
Size
Permission
Date
Action
checkdisk2
[ DIR ]
drwxr-xr-x
2026-07-26 09:09
check_all_mysql_db_sizes.sh
1.77
KB
-rwxr-xr-x
2025-07-24 18:31
check_avail_backup.sh
2.34
KB
-rwx------
2026-03-19 00:44
check_disk.sh
3.45
KB
-rwxr-xr-x
2025-10-27 01:19
check_disk.sh.1108902.2025-08-23@08:17:25~
8.85
KB
-rwxr-xr-x
2025-08-11 17:34
check_disk.sh.3561032.2025-08-12@00:34:45~
8.94
KB
-rwxr-xr-x
2025-07-25 01:10
check_disk.sh.531086.2025-10-27@08:19:41~
8.85
KB
-rwxr-xr-x
2025-08-23 01:17
check_disk_health.sh
2.87
KB
-rwx------
2026-03-13 03:59
checkbk.sh
1.84
KB
-rwx------
2025-12-29 06:46
collect_cpanel_full_info.sh
5.38
KB
-rwx------
2026-01-29 03:47
get_the_domains.sh
398
B
-rwx------
2026-06-25 10:02
hosting_full.json
179.97
KB
-rw-------
2026-09-25 18:00
report-backup.sh
1.9
KB
-rwxr-xr-x
2025-05-24 03:57
sync_backup.sh
2.18
KB
-rwxr-xr-x
2026-04-09 01:39
Save
Rename
#!/bin/bash # === CẤU HÌNH === THRESHOLD=100 NOW=$(date +%Y%m%d_%H%M%S) HOSTNAME=$(hostname) SERVER_IP=$(curl -s ifconfig.me || curl -s ipinfo.io/ip) REPORT="/tmp/disk_quota_$NOW.csv" WARN_LOG_DIR="/root/quota_warnings" mkdir -p "$WARN_LOG_DIR" # === TELEGRAM CONFIG === BOT_TOKEN="5971131875:AAF1Z11CyKhbpmkXzrMxePMVL0dqT1vusXo" CHAT_ID="-803396545" # === EMAIL SMTP CONFIG === SMTP_SERVER="smtp.gmail.com" SMTP_PORT="587" USERNAME="manhdh@nhanhoa.com.vn" PASSWORD="vwrc iorm efbn ymjz" FROM_NAME="Đặng Hồng Mạnh" FROM_EMAIL="manhdh@nhanhoa.com.vn" #FROM="${FROM_NAME} <${FROM_EMAIL}>" FROM="manhdh@nhanhoa.com.vn" CC1="report@nhanhoa.com.vn" CC2="hn.cskh@nhanhoa.com.vn" CC3="salesgroup@nhanhoa.com.vn" CC4="daily@nhanhoa.com.vn" HTML_TEMPLATE="/opt/nhanhoa/warning_template.html" TEMPLATE_PATH="/opt/nhanhoa/warning_template.html" USER_WARN_FILE="/tmp/mail_${USER}.html" # === BẮT ĐẦU KIỂM TRA === echo "User;Domain;Used (MB);Quota (MB);Percent Used;IP Server;Email" > "$REPORT" for USER in $(ls /var/cpanel/users); do # Bỏ qua nếu tài khoản đã bị suspend suspended=$(whmapi1 accountsummary user=$USER | grep -i suspended | awk '{print $2}') if [[ "$suspended" == "1" ]]; then echo "🔕 Bỏ qua $USER vì đã bị suspend." continue fi DOMAIN=$(grep "^DNS=" /var/cpanel/users/$USER | cut -d= -f2) EMAIL_TO=$(grep "^CONTACTEMAIL=" /var/cpanel/users/$USER | cut -d= -f2) #Email test #EMAIL_TO="info@thichnoitro.com" PLAN=$(grep "^PLAN=" /var/cpanel/users/$USER | cut -d= -f2) # Tính dung lượng HOME_MB=$(du -sm /home/$USER 2>/dev/null | awk '{print $1}') MYSQL_MB=0 # Lấy danh sách tất cả database ALL_DBS=$(mysql -N -B -e "SHOW DATABASES;" | grep -Ev "^(information_schema|performance_schema|mysql|sys)$") for DB in $ALL_DBS; do # Nếu DB thuộc user (kiểu prefix giống user) if [[ "$DB" == ${USER}_* ]]; then size_bytes=$(mysql -N -B -e "SELECT SUM(data_length + index_length) FROM information_schema.tables WHERE table_schema='$DB';") # Nếu có dữ liệu if [[ "$size_bytes" =~ ^[0-9]+$ && "$size_bytes" -gt 0 ]]; then size_mb=$(awk "BEGIN {printf \"%.0f\", $size_bytes / 1024 / 1024}") MYSQL_MB=$((MYSQL_MB + size_mb)) fi fi done TOTAL_MB=$((HOME_MB + MYSQL_MB)) # Lấy quota QUOTA_LINE=$(quota -u "$USER" 2>/dev/null | grep "/dev/sdb1") LIMIT_BLOCKS=$(echo "$QUOTA_LINE" | awk '{print $4}') if [[ "$LIMIT_BLOCKS" =~ ^[0-9]+$ && "$LIMIT_BLOCKS" -gt 0 ]]; then QUOTA_MB=$((LIMIT_BLOCKS / 1024)) PERCENT=$(awk "BEGIN {printf \"%.2f\", ($TOTAL_MB/$QUOTA_MB)*100}") #echo "$USER;$DOMAIN;$TOTAL_MB;$QUOTA_MB;$PERCENT%;$SERVER_IP;$EMAIL_CUS" if (( $(echo "$PERCENT > $THRESHOLD" | bc -l) )); then echo "$USER;$DOMAIN;$TOTAL_MB;$QUOTA_MB;$PERCENT%;$SERVER_IP;$EMAIL_CUS" >> "$REPORT" SUBJECT="⚠️ [Nhân Hòa] Thông báo tình trạng sử dụng vượt quá tài nguyên tại hosting {{DOMAIN}}" USER_WARN_FILE="/tmp/mail_${USER}.html" # ========== THAY THẾ BIẾN ========== sed \ -e "s/{{USER}}/${USER}/g" \ -e "s/{{DOMAIN}}/${DOMAIN}/g" \ -e "s/{{USED_MB}}/${TOTAL_MB}/g" \ -e "s/{{QUOTA_MB}}/${QUOTA_MB}/g" \ -e "s/{{PLAN}}/$PLAN/g" \ -e "s/{{PERCENT}}/${PERCENT}/g" \ "$TEMPLATE_PATH" > "$USER_WARN_FILE" # ========== NỘI DUNG EMAIL ========== EMAIL_BODY=$(cat <<EOF <!DOCTYPE html> <html> <head><meta charset="UTF-8"></head> <body> <p style="font-size:16px;"><em>Kính gửi Quý khách hàng,</em></p> <p style="font-size:16px;">Thông qua kiểm tra bộ phận Kỹ thuật thấy Quý khách đã sử dụng vượt quá giới hạn tài nguyên được cấp cho dịch vụ hosting. Điều này có thể ảnh hưởng đến hiệu suất hoạt động của website, email hoặc các chức năng khác.</p> <p style="font-size:16px;"><strong>Thông tin sử dụng tài khoản hosting của Quý khách như sau:</strong></p> <ul style="font-size:16px;"> <li>🔹 <strong>User:</strong> ${USER}</li> <li>🔹 <strong>Tên miền:</strong> ${DOMAIN}</li> <li>🔹 <strong>Dung lượng sử dụng:</strong> ${TOTAL_MB} MB</li> <li>🔹 <strong>Hạn mức cho phép:</strong> ${QUOTA_MB} MB (Plan: ${PLAN})</li> <li>🔹 <strong>Mức sử dụng:</strong> ${PERCENT} %</li> </ul> <p style="font-size:16px;">Việc trên gây ảnh hưởng đến hoạt động của server Nhân Hòa và vượt quá Quy định về sử dụng tài nguyên trên shared hosting tại Nhân Hòa.</p> <p style="font-size:16px;"><strong>🎯 Vì vậy bộ phận Kỹ thuật đề nghị Quý khách thực hiện kiểm tra lại dữ liệu của website như sau:</strong></p> <ul style="font-size:16px;"> <li>Dọn dẹp file không cần thiết.</li> <li>Tối ưu dữ liệu website và email.</li> <li>Nâng cấp gói dịch vụ nếu cần.</li> </ul> <p style="font-size:16px;">Mọi thắc mắc, xin vui lòng liên hệ với bộ phận hỗ trợ kỹ thuật qua tổng đài 19006680 hoặc gửi email tới support@nhanhoa.com để được tư vấn cụ thể.</p> <p style="font-size:16px;">Trân trọng,</p> -------------------------------- <table border="0" width="578" cellpadding="0"> <tbody> <tr> <td valign="top" width="200"><img src="https://wiki.nhanhoa.com/wp-content/uploads/2025/07/CKEM-05.png" /></td> <td nowrap="nowrap" width="533"> <div><span style="color: #1b9cdf; font-size:large;"><b>Đặng Hồng Mạnh</b> </span></div> <div><span style="font-size: large;">Technical Support</span><b><span style="color: #ff9300;"> - </span></b><span style="font-size: large;">Ext: 228</span></div> <b>CÔNG TY TNHH PHẦN MỀM NHÂN HÒA </b><br> <b>VPHN</b>: Tầng 4, Tòa 97–99 Láng Hạ, Phường Đống Đa, Thành phố Hà Nội.<br> Tel: (024) 7308 6680<br> <b>VPHCM</b>: 927/1 Đường Cách Mạng Tháng 8, phường Tân Sơn Nhất, TP.HCM.<br> Tel: (028) 7308 6680<br> <b>VP Vinh</b>: Tầng 2 chung cư Saigonsky, ngõ 26 Nguyễn Thái Học, Phường Thành Vinh, Nghệ An.<br> Tel: (024) 7308 6680 - nhánh 6<br> <b>Website</b>: <a href="https://nhanhoa.com" target="_blank" rel="noopener">nhanhoa.com</a> <b>- </b><a href="https://nhanhoa.com.vn" target="_blank" rel="noopener">nhanhoa.com.vn</a></td> </tr> </tbody> </table> </body> </html> EOF ) EMAIL_CONTENT=$(cat <<EOF From: ${FROM} To: ${EMAIL_TO} Cc: ${CC1} Subject: ${SUBJECT//\{\{DOMAIN\}\}/$DOMAIN} MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" ${EMAIL_BODY} EOF ) WARNING_COUNT=0 WARN_LOG_FILE="$WARN_LOG_DIR/${USER}.warn" echo "$(date '+%Y-%m-%d %H:%M:%S')" >> "$WARN_LOG_FILE" WARNING_COUNT=$(wc -l < "$WARN_LOG_FILE") # ========== GỬI EMAIL ========== curl --url "smtp://${SMTP_SERVER}:${SMTP_PORT}" \ --ssl-reqd \ --mail-from "${FROM}" \ $( [[ -n "$EMAIL_TO" ]] && echo "--mail-rcpt \"$EMAIL_TO\"" ) \ --mail-rcpt "${CC1}" \ $( [[ -n "$CC2" ]] && echo "--mail-rcpt \"$CC2\"" ) \ $( [[ -n "$CC3" ]] && echo "--mail-rcpt \"$CC3\"" ) \ $( [[ -n "$CC4" ]] && echo "--mail-rcpt \"$CC4\"" ) \ --user "${USERNAME}:${PASSWORD}" \ -T <(echo -e "${EMAIL_CONTENT}") if [[ "$EMAIL_TO" != "" ]]; then echo "✅ Gửi email đến $EMAIL_TO." fi # === KHÓA HOSTING NẾU GỬI >3 LẦN === if [ "$WARNING_COUNT" -gt 3 ]; then #whmapi1 suspendacct user=$USER reason="Vượt dung lượng nhiều lần không xử lý" echo "⛔ User $USER đã bị SUSPEND! Số lần cảnh báo: $WARNING_COUNT" >> "$REPORT" curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \ -d chat_id="$CHAT_ID" \ -d parse_mode="Markdown" \ --data-urlencode "text=⛔ *User $USER bị khóa tự động!* Domain: $DOMAIN do vượt quá dung lượng nhiều lần mà không xử lý." fi fi fi done # === GỬI BÁO CÁO QUA TELEGRAM === if [ $(wc -l < "$REPORT") -gt 1 ]; then MSG="🚨 *Cảnh báo vượt ${THRESHOLD}% DUNG LƯỢNG!* 🖥️ Server: \`$HOSTNAME\` 🌐 IP: \`$SERVER_IP\`" curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \ -d chat_id="$CHAT_ID" \ -d parse_mode="Markdown" \ --data-urlencode "text=$MSG" curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendDocument" \ -F chat_id="$CHAT_ID" \ -F document=@"$REPORT" \ -F caption="📄 Danh sách user vượt dung lượng ngày: $NOW" else echo "✅ Không có user nào vượt quota." fi