diff --git a/about/index.html b/about/index.html index d69f109..462e6fe 100644 --- a/about/index.html +++ b/about/index.html @@ -1,5 +1,5 @@ -about me - Gavin's Home

about me

姓名 Gong Wei
性别
工作经验 10years+
学历 本科
学校 北京航空航天大学 - 计算机科学与技术
邮箱 blackjackhoho@gmail.com
Telegram @blackjackhoho
Github https://github.com/konbluesky

+

about me

姓名 Gong Wei
性别
工作经验 10years+
学历 本科
学校 北京航空航天大学 - 计算机科学与技术
邮箱 blackjackhoho@gmail.com
Telegram @blackjackhoho
Github https://github.com/konbluesky


14年的老开发,在寻找一个激情、开放、和谐的团队,与志同道合的伙伴共同创造卓越的项目。


diff --git a/categories/index.html b/categories/index.html index 84cf1cc..cd60e46 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,5 +1,5 @@ -Categories - Gavin's Home

Carry-Coin 架构设计 SymbolLedger (4)

Carry-Coin 套利币本 SymbolLedger 设计,SymbolLedger负责存放套利过程中交易对信息,其中包括symbol在Cex中的各项配置、套利阈值等,Dex中的各种合约信息、阈值、交易参数等

Read more

Carry-Coin 一个自动化搬砖套利平台

Carry-Coin 是一个套利程序,程序从23年初开始开发至今,目前已经基本稳定,现在将程序的设计整理出来;
套利思路很简单:程序监控Cex和Dex平台,针对同一币种发现差价后自动化搬运;

-
Read more

Miniconda Config

Install

1
2
curl -o Miniconda3-latest-MacOSX-x86_64.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
bash Miniconda3-latest-MacOSX-x86_64.sh
Read more

关于2FA

什么是 2FA?

2FA(Two-Factor Authentication),即双因素认证,是一种通过两种不同类别的验证手段来提高账户安全性的身份验证方法。它通过结合两个验证因素,确保即使一个验证手段被泄露,攻击者也难以完成身份冒充。

+

两种验证因素的类型:

    +
  1. 知识(Something you know)
      +
    • 用户知道的内容,如密码、PIN 码等。
    • +
    +
  2. +
  3. 拥有(Something you have)
      +
    • 用户拥有的物品,如手机、硬件令牌(Token)或动态验证码(OTP)。
    • +
    +
  4. +
  5. 生物特征(Something you are)
      +
    • 用户自身的特征,如指纹、虹膜、面部识别。
    • +
    +
  6. +
+

2FA 需要至少包含其中的两种因素。例如,“密码+动态验证码”是一种常见的 2FA 实现。

Read more

Google 2FA 脚本

批量显示Google 2FA 工具,5秒刷新一次

+
Read more

BSC节点区块监控脚本

脚本主要监听私有BSC节点区块状态,如发生区块漏块过多,发送告警消息到DD群中,carry-coin调整rpc访问策略;

Read more

使用 Python 脚本清理 Carry-Coin 程序中的 Logback 日志

随着监控的币种越来越多,我的 Carry-Coin 程序中日志数据的日质量也不断增加,每天的日志文件大小达到约 40G。这不仅占用了大量的存储空间,还给日志分析带来了挑战。为了更有效地管理这些日志,我已经编写了一个程序来提取日志中与交易相关的信息,供后续分析使用。

+

然而,在配置 Logback 的 logback-spring.xml 文件时,我设置了 appender.rollingPolicy.maxHistory 字段,旨在只保留最近 2 天的日志。然而,这一配置并未如预期生效。因此,我决定暂时使用 Python 脚本来手动清理旧的日志文件。

+
+

问题背景

在 Carry-Coin 程序中,随着对越来越多币种的监控,日志文件的大小急剧增加,导致每天产生的日志文件约为 40G。虽然我已编写程序提取交易信息,但大量的日志数据依然占用了过多的磁盘空间。为此,我尝试通过调整 Logback 的配置来限制保留的日志数量。

+

Logback 日志管理

为了管理日志,我在 logback-spring.xml 文件中配置了以下内容:

+
1
2
3
4
5
6
7
8
9
10
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/carry-coin.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/carry-coin.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>2</maxHistory> <!-- 只保留最近2天的日志 -->
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
+ +

尽管如此,maxHistory 的配置并未生效,因此需要寻找替代解决方案。

+

Python 脚本实现

我编写了一个 Python 脚本来自动清理日志文件,保留最近 2 天的日志。以下是脚本的实现:

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
import time
from datetime import datetime, timedelta

# 获取两天前的时间
days_to_keep = 2
cutoff_time = datetime.now() - timedelta(days=days_to_keep)

# 定义日志目录
log_directory = "/path/to/logs"

# 遍历日志目录,删除修改时间在 cutoff_time 之前的 .log 文件
for filename in os.listdir(log_directory):
file_path = os.path.join(log_directory, filename)

if os.path.isfile(file_path) and filename.endswith(".log"):
file_mtime = os.path.getmtime(file_path)
file_mtime_dt = datetime.fromtimestamp(file_mtime)

if file_mtime_dt < cutoff_time:
os.remove(file_path)
print(f"Deleted: {file_path}")
+ +

说明

    +
  • 脚本获取当前时间的两天前,遍历指定日志目录,删除修改时间在该时间之前的 .log 文件。
  • +
  • 仅处理以 .log 结尾的文件,确保只删除日志文件。
  • +
+

设置 Cron 定时任务

为了定期执行这个清理脚本,我使用 cron 设置了一个定时任务,以下是设置步骤:

+
    +
  1. 打开 crontab 编辑器:

    +
    1
    crontab -e
    +
  2. +
  3. 添加如下定时任务,每天凌晨 1 点执行:

    +
    1
    0 1 * * * /usr/bin/python3 /path/to/your_script.py >> /path/to/cron_log.log 2>&1
    +
  4. +
  5. 保存并退出 crontab

    +
  6. +
+

总结

通过使用 Python 脚本,我能够有效地管理 Carry-Coin 程序中生成的日志文件,避免了因日志文件过大导致的磁盘空间不足的问题。虽然 Logback 的配置未能如预期生效,但临时解决方案为我带来了便利。在未来的项目中,我将继续探索更好的日志管理策略,以确保程序高效运行。

+
+

参考文档

+