Skip to main content

OKHK 👀

Thinking ❤️
  1. “美国加了中国关税,怎么不找找中国自己问题?”

    你买不起房,你也找自己问题好不好?

    你结不起婚,你也找自己问题好不好?

    为什么别人就欺负你呢,全部找自己问题好不好?

    真的是避重就轻,不谈我为什么激进,只谈我激进的表现。就死命把人往死里逼,这逼到受不了,要激进了啊,他就开始说你了:“你怎么那么民族主义啊,你怎么不关心对外贸易产业人呢?”

    然后就完全闭口不提,是什么原因导致这样的啊,他也不去思考问题,就解决你。

    越南都能和美国去谈判,那越南能活吗?哎,能!能!越南就是能,你看越南十年就能超过中国。超你冚家啊,还越南超中国,那他什么时候超过美国,你试一下,你去问问苏林啊,你给他你给他转1000万块钱,你让他回答一下啊。 source
  2. 一觉醒来发生了什么 04月07日

    2025年4月7日
    🌍资讯快读
    1、英国完成一项高超音速推进试验
    https://www.jiemian.com/article/12570533.html
    2、山东临沂、威海推行清明期间轻微交通违法免罚措施
    https://www.jiemian.com/article/12570420.html
    3、朝鲜时隔六年再办国际马拉松
    https://www.jiemian.com/article/12570349.html
    4、疑似发现二战遗留未爆炸弹,德国北部城市疏散超1.5万人
    https://www.jiemian.com/article/12570078.html

    👬即刻镇小报
    1、四月的春天,是自然写给世界的长信
    https://m.okjike.com/originalPosts/67f27e18dc6b6d485381198a
    2、为什么我挺坚定总有一天会生孩子呢
    https://m.okjike.com/originalPosts/67f267b51ab958e77e0a1916
    3、腾格里沙漠三天徒步总结
    https://m.okjike.com/originalPosts/67f260ab5389ed7166f637d1
    4、微软这个论文太🐮
    https://m.okjike.com/originalPosts/66205ffb3b9c66cae4ea714f

    今日即刻镇小报内容来自 @拾月活在渴望危險的週末 @我的兄弟叫铁马 @你就叫我Alice吧 @不务正业小胡同学 ,感谢以上即友的创作与分享。
  3. #Bing_Wallpaper

    “一个宁静的秋日景象,呈现出一只北美海狸静静地蹲坐在通过精心交织的树枝、细枝与泥土构筑的窝棚顶端,以怀俄明州莫兰的宁静湖泊为背景,湖面映射着季节性树叶带来的金橙色光辉。这只海狸有着浓密且质感鲜明的毛皮,微微沾湿的毛发散发出一种顽强与自然工艺之美的气息。窝棚细节丰富,掺杂着深色的湿木、鲜艳的黄色树叶和泥土般的色调,构成了一种丰盈自然的纹理感。湖面上柔和的涟漪反射出周围环境的温暖色调,与阴云覆盖却柔和光照的氛围完美融合。这一场景以自然主义和细节著称的摄影风格捕捉,重点呈现精巧的纹理、温暖的土色色调以及静谧的荒野氛围。”
  4. Bash脚本 - Nginx 日志分析工具:统计网站的总数据流量、请求数、和各个IP的具体数据

    https://www.nodeseek.com/post-291808-1

    #!/bin/bash
    
    LOG_DIR="/opt/1panel/apps/openresty/openresty/www/sites"
    
    # 人类可读的流量格式化函数
    format_size() {
        local size=$(printf "%.0f" "$1")
        if (( size < 1024 )); then
            echo "${size} B"
        elif (( size < 1048576 )); then
            echo "$(( size / 1024 )) KB"
        elif (( size < 1073741824 )); then
            echo "$(( size / 1048576 )) MB"
        else
            echo "$(( size / 1073741824 )) GB"
        fi
    }
    
    # 列出所有网站并统计汇总数据
    list_sites() {
        local total_requests=0
        local total_traffic=0
        declare -A site_requests
        declare -A site_traffic
    
        echo "📌 站点列表:"
        for site in "$LOG_DIR"/*; do
            [[ -d "$site" ]] || continue
            site_name=$(basename "$site")
            log_path="$site/log/access.log"
    
            if [[ ! -f "$log_path" ]]; then
                echo "   $site_name (无日志)"
                continue
            fi
    
            # 统计该站点请求数 & 总流量
            requests=$(wc -l < "$log_path")
            traffic=$(awk '{size=$10} size ~ /^[0-9]+$/ {sum += size} END {printf "%.0f", sum}' "$log_path")
            traffic=${traffic:-0}
    
            site_requests["$site_name"]=$requests
            site_traffic["$site_name"]=$traffic
            total_requests=$((total_requests + requests))
            total_traffic=$((total_traffic + traffic))
    
            echo "   $site_name - 请求数: $requests, 流量: $(format_size "$traffic")"
        done
    
        # 汇总数据
        echo -e "\n📊 **站点总览**"
        echo "  🌐 站点总数: ${#site_requests[@]}"
        echo "  📥 总请求数: $total_requests"
        echo "  📊 总流量: $(format_size "$total_traffic")"
    
        # 按请求数 & 流量 排序站点
        echo -e "\n📈 **Top 5 站点 (按请求数)**"
        for site in "${!site_requests[@]}"; do
            echo "${site_requests[$site]} $site"
        done | sort -nr | head -n 5 | awk '{printf "  %-15s 请求数: %s\n", $2, $1}'
    
        echo -e "\n💾 **Top 5 站点 (按流量)**"
        for site in "${!site_traffic[@]}"; do
            echo "${site_traffic[$site]} $site"
        done | sort -nr | head -n 5 | while read -r size site; do
            echo "  $site 流量: $(format_size "$size")"
        done
    }
    
    # 筛选 IP 日志
    extract_ip_logs() {
        local ip="$1"
        local output_file="$2"
        local found=0
    
        echo "📂 正在搜索与 IP $ip 相关的日志..."
        > "$output_file"  # 清空输出文件
    
        for site in "$LOG_DIR"/*; do
            [[ -d "$site" ]] || continue
            log_path="$site/log/access.log"
    
            if [[ -f "$log_path" ]]; then
                # 检测日志文件类型
                if file "$log_path" | grep -q "gzip compressed data"; then
                    zgrep -a -F "$ip" "$log_path" >> "$output_file"
                else
                    grep -a -F "$ip" "$log_path" >> "$output_file"
                fi
                found=1
            fi
        done
    
        if [[ $found -eq 1 ]]; then
            echo " 日志已保存到: $output_file"
        else
            echo " 没有找到与 $ip 相关的日志!"
        fi
    }
    
    # 解析命令行参数
    if [[ $# -eq 2 && "$1" == "-n" ]]; then
        SITE="$2"
        LOG_PATH="$LOG_DIR/$SITE/log/access.log"
    
        if [[ ! -f "$LOG_PATH" ]]; then
            echo "错误: 访问日志 $LOG_PATH 不存在!"
            exit 1
        fi
    
        echo "日志文件: $LOG_PATH"
    
        # 统计请求最多的 10 个 IP
        echo -e "\n📊 请求数最多的 IP:"
        awk '{print $1}' "$LOG_PATH" | sort | uniq -c | sort -nr | head -n 10 | awk '{printf "  %-15s 请求数: %s\n", $2, $1}'
    
        # 统计流量最多的 10 个 IP
        echo -e "\n📊 消耗带宽最多的 IP:"
        awk '{ip=$1; size=$10} size ~ /^[0-9]+$/ {traffic[ip] += size} END {for (ip in traffic) printf "%.0f %s\n", traffic[ip], ip}' "$LOG_PATH" \
            | sort -nr | head -n 10 | while read -r size ip; do
            echo "  $ip 流量: $(format_size "$size")"
        done
    
    elif [[ $# -eq 1 && "$1" == "-v" ]]; then
        list_sites
    
    elif [[ $# -eq 3 && "$1" == "-i" ]]; then
        extract_ip_logs "$2" "$3"
    
    else
        echo "用法:"
        echo "  $0 -n          # 查看指定站点的流量信息"
        echo "  $0 -v                # 列出所有站点并显示汇总数据"
        echo "  $0 -i  <文件>    # 筛选出指定 IP 的日志并保存"
        exit 1
    fi

    参数 说明 示例
    -n  查看指定站点的流量 & 请求统计 ./statics.bash -n example.com
    -v 列出所有站点的流量 & 请求数汇总 ./statics.bash -v
    -i  <文件> 筛选指定 IP 访问日志并输出到文件 ./statics.bash -i 1.1.1.1 ./sus.log


    #Script #Shell #Tool
  5. Cyclops - Kubernetes 开发工具

    https://github.com/cyclops-ui/cyclops

    Cyclops 是一个开源的 Kubernetes 开发工具,它提供了一个易于使用的 UI,使 Kubernetes 变得不那么令人生畏。

    它允许 DevOps 团队快速创建定制的 UI,供开发人员、QA 团队、产品经理等使用,而无需编写 YAML 文件。

    Cyclops 使用 Helm Chart 来创建所需的 UI,因此您可以尝试使用任何现有的 Helm Chart 或公共 Helm Chart。

    提供易于使用的 UI,简化 Kubernetes 的配置和部署
    支持高度可定制的模板系统,可以快速创建所需的 UI
    支持使用任何现有的 Helm Chart 或公共 Helm Chart

    #K8s #GitHub #Tool #DevOps link
OKHK