Bug 不大,创造神话

项目地址:https://github.com/sansan0/TrendRadar

一、项目构建

# 自行安装好docker docker-compose git
# 直接拉取项目
git clone https://github.com/sansan0/TrendRadar.git

# config/config.yaml - 应用主配置(报告模式、推送设置等)
# config/frequency_words.txt - 关键词配置(设置你关心的热点词汇)
# docker/.env - 环境变量配置(webhook URLs 和定时任务)
# 根据需要结合项目说明进行修改,通常需要配置通知
# 切到docker目录
cd docker

# 拉取最新镜像并启动
docker-compose pull
docker-compose up -d
# 启动完成
# 命令使用
# 查看日志
docker logs -f trend-radar

# 查看容器状态
docker ps | grep trend-radar

# 服务管理命令
# 查看运行状态
docker exec -it trend-radar python manage.py status

# 手动执行一次爬虫
docker exec -it trend-radar python manage.py run

# 查看实时日志
docker exec -it trend-radar python manage.py logs

# 显示当前配置
docker exec -it trend-radar python manage.py config

# 显示输出文件
docker exec -it trend-radar python manage.py files

# 查看帮助信息
docker exec -it trend-radar python manage.py help

# 重启容器
docker restart trend-radar

# 停止容器
docker stop trend-radar

# 删除容器(保留数据)
docker rm trend-radar

二、将docker部署的热点页面配置外部访问

    1. 修改docker/entrypoint.sh,增加

解决Linux下生成PDF中文乱码的问题

2025-11-07 09:05:43    20    0    0

原文链接

1.原因分析

这原因由于Linux是开源的,很多的字体没有被默认安装,在生成PDF的时候找不到对应字体找不到导致的。

1.查看系统预装字体

fc-list # 查看已有字体

如果找不到 fc-list的命令,就执行下面的安装命令

cat /etc/issue # 查看Linux发行版本
Centos
yum install -y fontconfig mkfontscale
Ubuntu
apt-get -y install fontconfig xfonts-utils
fc-list # 查看已有字体
fc-list :lang=zh # 查看中文字体

如果找到了中文字体,就需要查看PDF中的字体是否有被安装,没有被安装就需要安装相对应的字体。

2.安装字体

安装字体这玩意,可以只安装自己需要的字体,但是建议是将Win的所有字体全部安装好,这样一步到位,比较省心。

首先将Win的字体全部打包成Zip导入到需要被安装的Linux主机上。
Win字体存放路径 C:\Windows\Fonts

 
image.png

 

如果安装全部的字体就直接将这个文件夹Copy一份到其他的目录下然后直接将这个文件夹打包成压缩包。(这样比较靠谱)


 
image.png

然后将这个压缩包上传到服务器上的 /usr/share/fonts/目录下
我的是用Powershell上传的

scp  xxx/xxx/Fonts.zip root@192.168.1.122:/usr/share/fonts/

然后上到Linux机器上 执行如下命令

cd /usr/share/fonts/
unzip ./Fonts.zip
rm -rf ./Fonts.zip
rm -rf ./*.fon #这种字体是安装不上的
mkfontscale
mkfontdir
fc-cache

这个压缩包中的字体不会被全部安装的,有几个是安装不上的,但是不影响基本使用
应该是只能安装ttf和ttc的字体,我猜的


 
image.png
fc-list :lang=zh
 
image.png

到这里字体就安装完毕了,再试试生成PDF应该就没有问题了。

3.运行在Docker中的程序如何解决这个问题

首先将源镜像下载下来
然后直接启动源镜像

docker run -it -d xxxx/dotnet/aspnet:3.1-buster-slim

然后将文件拷贝进去

cd .\Desk

Linux日常高频使用的命令

2025-11-06 16:50:08    16    1    1

1. 查看系统信息

如何查看系统版本:

uname -alsb_release -acat /etc/os-release

如何查看系统内核信息:

uname -r

如何查看系统CPU信息:

lscpucat /proc/cpuinfo

如何查看内存使用情况:

free -hcat /proc/meminfo

如何监控监控系统资源(CPU、内存、IO):

vmstat

如何查看系统运行时间:

uptime

如何查看最近一次启动时间:

who -b

如何查看当前用户历史使用的命令:

historycat .bash_history

如何查看系统负载:

top    //实时监控系统负载,通过q建或者ctrl+c退出

2. 磁盘和文件管理

如何查看磁盘使用情况:

df -h

如何查看目录或者文件大小:

du -hs <文件或者文件夹>

如何查找大文件:

find <某文件夹> -type f -size +100M   //查找某文件夹大于100M的文件

如何挂载磁盘:比如usb

### 查看usb的磁盘盘符lsblk -o NAME,MODEL,TRAN ### 查看 /mnt 是空的ls /mnt/### 将USB的盘符挂载到/mnt文件夹中mount /dev/<usb的盘符> /mnt/

如何卸载磁盘:

umount /mnt

如何查看磁盘的UUID:

blkid

3. 网络和路由管理

如何查看IP地址:

ip a sifconfig

如何测试网路连通性:

ping <目的地址> -c 5curl <IP地址>:<端口号>  //如果有防火墙,ping可能不通,需要直接curl IP和端口号查看

如何查看路由表:

route -n ip route

需要注意的是Linux里可以有多路由表,ip route 默认打印的是主路由表里的路由条目。

如何查看Linux中有几张路由表:

cat /etc/iproute2/rt_tables

如何查看不同路由表里的路由:

ip route show table <route table id或者route table name>比如:ip route show table 255ip route show table main

如何查看各服务端口使用情况以及连接状态:

netstat -tulanpss -tulanp

如何抓取流量也就数如何抓包:

tcpdump -i <interface> <filte

mangodb 备份数据

2025-11-06 16:45:57    3    0    0
# 在文件中编写如下内容
## 指定到你安装的Mongodb bin目录下的mongodump
dump=/www/server/mongodb/bin/mongodump
## 填写你创建dump_bak文件的绝对路径
out_dir=/www/backup/mongodump/dump_bak
## 填写你创建tar_bak文件的绝对路径
tar_dir=/www/backup/mongodump/tar_bak
## 记录备份时间
sysdate=`date +%Y%m%d_%H%M%S`
## 设置删除期限,删除30天前的备份
days=30
## 设置最终压缩的文件名称,带有日期
tar_bak="mondodb_bak_$sysdate.tar.gz"
 
if [ -d $out_dir ];then
  cd $out_dir
else
  ## "文件夹不存在"
  sudo mkdir -p $out_dir
  cd $out_dir
fi
 
if [ ! -d $tar_dir ];then
  ## "文件夹不存在"
  sudo mkdir -p $tar_dir
fi

 
# 删除之前的dump文件
sudo rm -rf $out_dir/*
# 创建新的文件夹存放dump文件
sudo mkdir -p $out_dir/$sysdate
# 导出127.0.0.1机器上的leanote库的所有表到$out_dir/$sysdate文件夹
$dump -h 127.0.0.1 -d leanote -o $out_dir/$sysdate
# 压缩$out_dir/$sysdate到目标文件夹
sudo tar -zcvf $tar_dir/$tar_bak $out_dir/$sysdate
# 删除指定期限钱的备份文件
sudo find $tar_dir/ -mtime +$days -delete
 
echo "===数据库: leanote 备份完成==="
# 退出
exit


日志导致磁盘爆满引发的错误

2025-11-06 16:24:21    8    0    0
  1. 因sql日志频繁写入导致磁盘空间不足,后续资源无法写入,导致错误
  2. 线上环境要关掉debug,防止错误泄露
  3. 增加资源监控脚本
#!/bin/bash

##############################################
# 资源监控
##############################################

# 配置日志文件
LOG_FILE="/var/log/supervisory_control.log"
MAX_LOG_SIZE=10485760  # 10MB

# 安全配置:设置安全路径
export PATH="/usr/bin:/bin:/usr/sbin:/sbin"

# 日志函数
log_message() {
    local level=$1
    local message=$2
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    # 创建日志目录(如果不存在)
    local log_dir=$(dirname "$LOG_FILE")
    if [ ! -d "$log_dir" ]; then
        mkdir -p "$log_dir" 2>/dev/null || {
            echo "无法创建日志目录: $log_dir" >&2
            return 1
        }
    fi
    
    # 检查日志文件大小并轮转
    if [ -f "$LOG_FILE" ] && [ $(stat -c%s "$LOG_FILE" 2>/dev/null || echo 0) -gt $MAX_LOG_SIZE ]; then
        mv "$LOG_FILE" "${LOG_FILE}.old" 2>/dev/null
    fi
    
    # 写入日志
    echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE" 2>/dev/null
}

# 检查必需命令是否存在
check_commands() {
    local commands=("top" "df" "fr

使用Dify搭建智能助手

2025-11-06 14:33:59    28    0    0

使用Dify搭建智能助手

1. 什么是Dify?

Dify 是一个开源的大语言模型(LLM)应用开发平台,专注于帮助用户快速构建智能助手。它能:

  • 整合多种AI模型:支持 OpenAI、Claude、开源模型等。
  • 设计自动化流程:通过可视化工具编排任务,无需写代码。
  • 增强回答精准度:利用 RAG(检索、增强、生成)技术,结合知识库优化结果。

supervisorctl守护进程

2025-09-03 17:19:21    3    0    0

supervisorctl
> status           #查看程序状态
> stop name    #关闭name程序
> start name    #启动name程序
> restart name # 重启name程序
> reread          #读取有更新的配置文件,不会启动新添加的程序
> update          #重启配置文件修改过的程序

配置示例

[program:eolinker_os]
directory = /root/eolinker_os                           ;启动目录
command =  java -jar eolinker_os-4.0.jar       ;启动命令
autostart = true                                               ;在supervisord启动的时候也启动
startsecs = 5                                                   ;启动5秒后没有异常退出,就当作已经正常启动了
autorestart = true                                            ;程序异常退出后自动重启
startretries = 3                                                ;启动失败自动重试次数,默认是3
user = root                                                      ;哪个用户启动
redirect_stderr = true                                      ;把stderr重定向到stdout,默认false
stdout_logfile_maxbytes = 20MB                    ;stdout日志文件大小,默认50MB
stdout_logfile_backups = 20                           ;stdout日志文件备份数
stdout_logfile = /root/eolinker_os/logs/eolink

centos 安装docker

2025-09-03 17:14:27    2    0    0
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除缓存
yum clean all
# 生成缓存
yum makecache
yum install epel-release
yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce

systemctl start docker

sudo curl -L "https://gitee.com/zhulove/docker-compose/releases/download/v2.24.4/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

#开机自启
systemctl enable docker.service
systemctl list-unit-files | grep enabled

firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

sudo systemctl daemon-reload
sudo systemctl restart docker
#可用镜像 7.30  docker.888666222.xyz  docker.1ms.run

{
	"registry-mirrors": [
  		"https://docker.1ms.run"
	]
}

 

清理日志脚本

2025-09-03 17:13:00    2    0    0
LOG_DIR="/var/project/dnp/logs/nginx"    # 要清理的日志目录
CLEANUP_LOG="/var/project/dnp/logs/nginx/log_cleanup.log"  # 清理操作的记录文件
RETENTION_DAYS=60               # 保留60天(约两个月)

# 创建日志目录(如果不存在)
mkdir -p "$(dirname "$CLEANUP_LOG")"
touch "$CLEANUP_LOG"

# 记录开始时间
echo "==============================================" >> "$CLEANUP_LOG"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 开始清理日志" >> "$CLEANUP_LOG"
echo "目录: $LOG_DIR" >> "$CLEANUP_LOG"
echo "保留天数: $RETENTION_DAYS" >> "$CLEANUP_LOG"

# 执行清理并记录结果
{
    echo "以下文件将被删除:"
    find "$LOG_DIR" -name "*.log" -type f -mtime +$RETENTION_DAYS -print
    
    echo "开始删除..."
    find "$LOG_DIR" -name "*.log" -type f -mtime +$RETENTION_DAYS -delete
    
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 清理完成"
    echo "磁盘使用情况:"
    df -h "$LOG_DIR"
} >> "$CLEANUP_LOG" 2>&1

# 设置日志文件权限(可选)
chmod 640 "$CLEANUP_LOG"