分类 学习笔记 下的文章

该设置能让一些流量计费模式的服务器被恶意攻击时提供流量流出过量保护
安装 vnstat和jq

sudo apt install vnstat -y
sudo apt install jq -y 

初始化(假设网卡名为 eth0)

sudo vnstat -i eth0 #名字自己用ip a命令查询

启用服务

sudo systemctl enable vnstat
sudo systemctl start vnstat

验证 vnstat 是否正常工作
vnstat -i 网卡名 -m # 查看统计
创建脚本
/usr/local/bin/check_tx_limit.sh
写入以下代码

#!/bin/bash

if [ ! -f /run/tx_monitor_enabled ]; then
    exit 0
fi

INTERFACE="eth0"          # 网卡名
THRESHOLD_MB=20000          # 阈值 单位:MB
LOGFILE="/var/log/tx_monitor.log"

TX_BYTES=$(vnstat -i "$INTERFACE" --json | jq -r '.interfaces[0].traffic.month[0].tx' 2>/dev/null)

if [ -z "$TX_BYTES" ] || ! [[ "$TX_BYTES" =~ ^[0-9]+$ ]]; then
    echo "$(date): [WARN] Failed to get valid TX data for $INTERFACE (got: '$TX_BYTES')" >> "$LOGFILE"
    exit 0
fi

TX_MB=$(( TX_BYTES / 1000000 ))

echo "$(date): Current TX this month = ${TX_MB} MB (threshold: ${THRESHOLD_MB} MB)" >> "$LOGFILE"

if [ "$TX_MB" -ge "$THRESHOLD_MB" ]; then
    echo "$(date): TX limit exceeded! Shutting down..." >> "$LOGFILE"
    /sbin/shutdown -h now "Monthly upload limit reached on $INTERFACE."
fi

(只统计流出流量)
授权

sudo chmod +x /usr/local/bin/check_tx_limit.sh

设置每10分钟执行(root cron)

sudo crontab -e

写入以下规则

*/10 * * * * /usr/local/bin/check_tx_limit.sh >/dev/null 2>&1
顺序为 分 时 日 月 星期

nano指令:ctrl+o保存(回车确认) ctrl+x退出
手动运行脚本测试

sudo /usr/local/bin/check_tx_limit.sh

查看日志

tail -f /var/log/tx_monitor.log

在脚本中加了一个启用标志文件,只有该文件存在时才检查流量并关机,防止开机就关机
启用监控时,手动创建标志文件(需 root)

sudo touch /run/tx_monitor_enabled

系统重启后/run/tx_monitor_enabled 会自动消失
自动消失 → 脚本不再生效 → 不会因流量关机
如需再次启用,必须手动重新创建标志文件

来源:文章转载来源:ECVE

最近使用1Panel部署Next-Whois遇到不少坑,特意记录部署过程。以下是详细过程,供大家参考!

1.准备工作

在开始部署前,请确保已完成以下准备工作:

  1. 环境准备

    • 已安装并配置 1Panel 面板
    • 已完成 Redis 服务的安装
  2. 源码获取

    • 已下载最新版 next-whois 项目源码
  3. 应用部署

    • 已完成 next-whois 的基础部署
    • 已配置域名反向代理

- 阅读剩余部分 -

之前推荐过这款软件,Synergy是一款优秀的跨平台的屏幕控制软件,现在官方推出Black Friday折扣促销活动!现在Synergy 3 Ultimate只要9.8美元!原价要49美元,所以还等什么?抓住这个难得的机会,抓紧入手Synergy吧!

Synergy软件是一款强大的屏幕协同工具,将多设备控制协作提升到了一个全新的层次。无论你是一家小型企业,还是一个大型团队,Synergy都能满足你的协作需求。有了Synergy以后不需要买什么USB Hub控制器了,只要在网络下只需要一个鼠标和键盘就能控制至少15台的设备,通过Synergy的跨平台功能,你可以与团队成员自由连接和共享鼠标,无论他们使用的是Windows、Mac还是Linux操作系统。
Black Friday sale: Save 80%
Black Friday discount code: BLACKFRIDAY80
Synergy活动地址:官方活动2折地址
iShot_2024-11-23_12.02.03.png

- 阅读剩余部分 -

PbootCMS轻量化,中小型网站开发起来比较快,但Pb不适合大型应用场景,if等循环语句还不支持多数原生php,应用范围有限。
在pboot:list里面if判断仅限特定的函数,如time、strtotime、date无法使用,所以需要自定义if标签才可以,具体修改文件在apps\home\controller下,修改ParserController.php文件即可。

- 阅读剩余部分 -

利用php的foreach函数合并文件夹下的js文件

<?php
/**
    *JavaScript 合并压缩
    *https://blog.07905.com/daybook/js-css-compress-scripts.html
*/
header( 'Content-type: application/javascript' );
foreach( glob( '*.js' ) as $file ){
include( $file );
echo "\n";
}
?>

只需要将上述内容保存为js.php,直接在前端引用即可。如优先需要读取jquery.min.js,在文件前面加个1即可,如1jquery.min.js。foreach优先数字,然后英文字母。

- 阅读剩余部分 -