构建 Folia

准备构建 https://github.com/PaperMC/Folia 这个项目的 1.21.1 版本

clone 项目下来知道 gradle 换到 jdk21 即可同步项目

然后根据文档给出的构建方式

1
./gradlew applyPatches
1
./gradlew createMojmapPaperclipJar

直接报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> Task :paper:patchCraftBukkit FAILED
Execution failed for task ':paper:patchCraftBukkit'.
> io.papermc.paperweight.PaperweightException: Command finished with 128 exit code: git -c commit.gpgsign=false -c core.safecrlf=false clone --no-hardlinks C:\XXX\Folia\.gradle\caches\paperweight\upstreams\paper\work\CraftBukkit C:\XXX\Folia\.gradle\caches\paperweight\upstreams\paper\.gradle\caches\paperweight\taskCache\patchCraftBukkit.repo

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. 为什么
BUILD FAILED in 14s
2 actionable tasks: 2 executed

尝试了开全魔法环境, 重装 Git 等操作都没有用

于是我就把命令复制出来手动运行一遍 结果

git 最大只可以创建 4096 长度的文件名 然而在 Windows 只有 260 得改配置

1
git config --global core.longpaths true

直接再次运行 补丁成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
19:03:33: Executing 'applyPatches'…


> Configure project :
paperweight-patcher v1.7.1 (running on 'Windows 11')

> Task :clonePaperRepo

> Configure project :paper
paperweight-core v1.7.1 (running on 'Windows 11')

> Task :paper:initSubmodules
> Task :paper:patchSpigotApiPatches UP-TO-DATE
> Task :paper:patchSpigotApi UP-TO-DATE
> Task :paper:applyApiPatches UP-TO-DATE
> Task :paper:downloadMcManifest
> Task :paper:downloadMcVersionManifest UP-TO-DATE
> Task :paper:downloadServerJar UP-TO-DATE
> Task :paper:extractFromBundler UP-TO-DATE
> Task :paper:addAdditionalSpigotMappings UP-TO-DATE
> Task :paper:downloadMappings UP-TO-DATE
> Task :paper:filterVanillaJar UP-TO-DATE
> Task :paper:generateMappings UP-TO-DATE
> Task :paper:generateSpigotMappings UP-TO-DATE
> Task :paper:spigotRemapJar UP-TO-DATE
> Task :paper:cleanupMappings UP-TO-DATE
> Task :paper:patchMappings UP-TO-DATE
> Task :paper:cleanupSourceMappings UP-TO-DATE
> Task :paper:remapJar UP-TO-DATE
> Task :paper:fixJar UP-TO-DATE
> Task :paper:patchCraftBukkitPatches UP-TO-DATE
> Task :paper:filterSpigotExcludes UP-TO-DATE
> Task :paper:spigotDecompileJar UP-TO-DATE
> Task :paper:patchCraftBukkit UP-TO-DATE
> Task :paper:patchSpigotServerPatches UP-TO-DATE
> Task :paper:patchSpigotServer UP-TO-DATE
> Task :paper:patchSpigot UP-TO-DATE
> Task :paper:downloadSpigotDependencies UP-TO-DATE
> Task :paper:collectAtsFromPatches UP-TO-DATE
> Task :paper:mergePaperAts UP-TO-DATE
> Task :paper:remapSpigotSources UP-TO-DATE
> Task :paper:remapGeneratedAt UP-TO-DATE
> Task :paper:remapSpigotAt UP-TO-DATE
> Task :paper:mergeGeneratedAts UP-TO-DATE
> Task :paper:mergeAdditionalAts UP-TO-DATE
> Task :paper:applyMergedAt UP-TO-DATE
> Task :paper:copyResources UP-TO-DATE
> Task :paper:decompileJar UP-TO-DATE
> Task :paper:downloadMcLibrariesSources UP-TO-DATE
> Task :paper:applyServerPatches UP-TO-DATE
> Task :paper:applyPatches UP-TO-DATE
> Task :paper:lineMapJar UP-TO-DATE
> Task :paper:prepareForDownstream
> Task :getPaperUpstreamData

> Task :applyApiPatches
Creating Folia-API from patch source...
Applying patches to Folia-API...
5 patches applied cleanly to Folia-API

> Task :applyGeneratedApiPatches
Creating generated from patch source...
Applying patches to generated...
No patches found

> Task :applyServerPatches
Creating Folia-Server from patch source...
Importing 23 classes from vanilla...
Importing 0 data files from vanilla...
Importing 0 classes from library sources...
Applying patches to Folia-Server...
18 patches applied cleanly to Folia-Server

> Task :applyPatches

BUILD SUCCESSFUL in 1m 10s
5 actionable tasks: 5 executed
19:04:44: Execution finished 'applyPatches'.

直接运行 createMojmapPaperclipJar 开始构建 Jar 包

Gitlab 迁移后的文件权限问题

起因

我的 RockyLinux 9 100G 硬盘分区不够用了我给他进行了扩容操作 然后经过一系列脑瘫操作之后成功的把 lvm 卷搞丢了 我就准备迁移数据重装一个 Linux 系统 于是选择了 Debian 12

经过我的不懈努力安装完成了 Debian12 装上了 1panel 面板之后 把数据通过 sync 迁移过去之后 发现 gitlab 仓库无法进行 pull push 等操作 都会提示

1
2
17:23:52.302: [ProjectName] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/master:master --tags
fatal: unable to access 'https://git.example.top/wcpeplugin/ProjectName.git/': Error while processing content unencoding: invalid stored block lengths

最后在 gitlab issue 中找到了解决方案

https://gitlab.com/gitlab-org/charts/gitlab/-/issues/5546

codissimo1 @codissimo1

I had the same problem Error while processing content unencoding: invalid stored block lengths when upgrading gitlab-ee (ubuntu repository package) from 16.11.2 to 17.2.1

It turned out: some files in /var/opt/gitlab/git-data/repositories had owner = root.

Solution:

find /var/opt/gitlab/git-data/repositories -exec chown git:git {} ;

Thanks to @pks-gitlab

没错 只需要进入 gitlab-ce docker 容器中 输入 find /var/opt/gitlab/git-data/repositories -exec chown git:git {} \; 将权限修正即可

配置 ja-netfilter 激活 IDEA

配置 ja-netfilter

打开 ja-netfilter 中的 config 文件夹中的 url.conf 在尾端添加

1
2
[URL]
PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action

打开 ja-netfilter 中的 config 文件夹中的 dns.conf 在尾端添加

1
2
3
[DNS]
EQUAL,jetbrains.com;
EQUAL,dbeaver.com

如果激活的版本低于2022.2,下一步可以不做:

打开ja-netfilter中的config文件夹中的power.conf,在尾端添加:

1
2
3
4
[Args]
[Result]
EQUAL,120506319308405029943033101198259523557651500267734599270782782071425072541184605728867830395125412768750966448411447392137801711908001958831204692561738046570955709184538088569271703484602917023462976408329100293802371486063140115775311907530943821345005598057265747678100463689973450156515895355214983079672467769169324175533323801179755544364921063654340185317077965735659865485150734884110709760680757502730007505995422237875348017761382234951127263548660889969621730944377739766734765769747684457663965611896398862841334032542726392699785677440644859509166466497325071885386505404431787167239320957696896447925472784312642576835792921100239616617639216190447230487878404191838684279341834945197861631446454083984351911070798505031973496634229907567362853550735007045265430703581336189733180744888091740381912913980707537008943084904260746266383019688346709856215660232636334604552145129775009725685598798774376749830567219982166661918408832945395290223853748014160473876195098438959881711585152480525870219408398012002829112863175041709512032251930709608035158747101960447898838942705485214217426612863919268749874079707310181890737049603255938886865558759802593500502795018952114650332765839003032013708006750600413455628536259,65537,860106576952879101192782278876319243486072481962999610484027161162448933268423045647258145695082284265933019120714643752088997312766689988016808929265129401027490891810902278465065056686129972085119605237470899952751915070244375173428976413406363879128531449407795115913715863867259163957682164040613505040314747660800424242248055421184038777878268502955477482203711835548014501087778959157112423823275878824729132393281517778742463067583320091009916141454657614089600126948087954465055321987012989937065785013284988096504657892738536613208311013047138019418152103262155848541574327484510025594166239784429845180875774012229784878903603491426732347994359380330103328705981064044872334790365894924494923595382470094461546336020961505275530597716457288511366082299255537762891238136381924520749228412559219346777184174219999640906007205260040707839706131662149325151230558316068068139406816080119906833578907759960298749494098180107991752250725928647349597506532778539709852254478061194098069801549845163358315116260915270480057699929968468068015735162890213859113563672040630687357054902747438421559817252127187138838514773245413540030800888215961904267348727206110582505606182944023582459006406137831940959195566364811905585377246353->31872219281407242025505148642475109331663948030010491344733687844358944945421064967310388547820970408352359213697487269225694990179009814674781374751323403257628081559561462351695605167675284372388551941279783515209238245831229026662363729380633136520288327292047232179909791526492877475417113579821717193807584807644097527647305469671333646868883650312280989663788656507661713409911267085806708237966730821529702498972114194166091819277582149433578383639532136271637219758962252614390071122773223025154710411681628917523557526099053858210363406122853294409830276270946292893988830514538950951686480580886602618927728470029090747400687617046511462665469446846624685614084264191213318074804549715573780408305977947238915527798680393538207482620648181504876534152430149355791756374642327623133843473947861771150672096834149014464956451480803326284417202116346454345929350148770746553056995922154382822307758515805142704373984019252210715650875853634697920708113806880196144197384637328982263167395073688501517286678083973976140696077590122053014085412828620051470085033364773099146103525313018873319293728800442101520384088109603555959893639842091339193857485407672132882577840295039058621747654642202620767068924079813640067442975
EQUAL,8028659553836119901593655311677865290672387540027895708985570867455842278776015838142490556122515317003830575671206217290165955723210315889275621408086645995280770696135307020454887097794294273869941097888549275028604248332746117479367032100139091095818169444690976206636597409322539276252570779516636180497560345090851316373570301807158645002654208816162902430571101092599540795501152368695431168224953320283502815852695423193526255836776240019085157444254721864134058745605280085897450952937893645487302683006269553010996013513395044612932182772364336368242146044741660443063207438830622376694839772096688572619877,65537,21052260334349247097390263197515551021430500095747078612475171670547647379514624742422155617118382403386162585789957995106937640909858927441120214136124618650916253946431099279059999234690271861285094667690686174087562943995337813383652323725628494261414287817117703355799303086256914782640807165021059760198249458510362432176960683009890989990086614909076853502936665842869163947730574085863127445475967466399017447434906719734480523659879746056728772390182338236187070557277461449143752467418310063647027554915213099799725713708651142505590086828211040619445941301844994775362846837122335522584661592447560060751169->986236757547332986472011617696226561292849812918563355472727826767720188564083584387121625107510786855734801053524719833194566624465665316622563244215340671405971599343902468620306327831715457360719532421388780770165778156818229863337344187575566725786793391480600129482653072861971002459947277805295727097226389568776499707662505334062639449916265137796823793276300221537201727072401742985542559596685092673521228140822200236743113743661549252453726123450722876929538747702356573783116197523966334991563351853851212597377279504828784687920949198341066450537230593608440475006386024448307924665012521692416658191

配置 idea.vmoptions

idea.vmoptions在IDEA的安装目录下的bin文件夹中

打开idea.vmoptions,在末尾添加

–add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED
–add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED

以上两行仅在Java17时需要添加,即2022.2版本开始需要添加

-javaagent:D:/abc/abcd/abcde.jar

这一行为下载的 ja-netfilter.jar 路径

配置完以上步骤之后要重启Jetbrains产品

然后开始对JB产品进行校验

以IntelliJ IDEA 为例

输入 https://jetbra.in

点击 Activate 按钮

记录第一次玩 PT 的刺激

起因

在 7 月 29 号的时候无意在某微信群看到群友分享 BtSchool 开注的消息

感谢大家一直支持 BTSCHOOL!庆 BTSCHOOL 建站 12 年,活动如下:
2024.07.292024.07.31 (3 天)开放自由注册。
2024.08.01
2024.08.07 (7 天) 全站种子 FREE。
注:由于站免时间长,新人考核的会员,请提前完成考核下载量。

由于手上有几块带半好不坏的 500G 硬盘在 Nas 上食之无味弃之可惜就准备注册一个来玩

学校

注册完毕后 页面中间就有一个醒目的黄色框框

1
2
3
4
5
6
7
离新人考核结束还有 29天23时
上传量: 还需要 50 GB
下载量: 还需要 50 GB
魔力值: 还需要 5000

注意:在考核期限内,请保持以上数据均处于通过状态!
你也可以通过捐赠直接通过新手考核

然后我在首页导航中找到按钮 种子 一进来琳琅满目的种子列表

然后我看有个下载量的考核我就先找了几个喜欢的影视剧开始下载想着先完成了下载量然后等着它慢慢上传

但是想象是美好的,现实是骨感的, 结果没多久就收到一封邮件

郑重警告:你的等级已从User自动降为Peasant,同时你被警告!因为你的分享率过低。如果你在10天内仍未设法提高分享率,你的帐户将被禁用!如果你不明白什么是分享率及其要求,请参考常见问题。

我靠本来考核是 30 天的 现在直接剩下十天了 我感觉仔细研究一下规则

Peasant 当以下情况时将被自动降至本级:
1.如果你已经下载了超过50GB,你应该有大于0.6的分享率。
2.如果你已经下载了超过100GB,你应该有大于0.7的分享率。
3.如果你已经下载了超过200GB,你应该有大于0.8的分享率。
4.如果你已经下载了超过500GB,你应该有大于0.9的分享率。
5.如果你已经下载了超过1000GB,你应该有大于1.0的分享率。

我目前处在第一阶段 刚超过 50G 分享率得到 0.6 所以我现在得上传搞到 60G 然后由于我是第一次玩并不知道下热门免费大包刷上传

赶紧上淘宝买了一块 16T 的 HC550 并且买了一个麦沃的两盘位硬盘盒等到了已经是第三天了

然后刚好站免开始了这时可以随便下了,我真的会被自己气笑,注册的时候离站免还有几天我就开始下载,所以玩这玩意还是得先看规则呀,不然上来直接整个降级用户,还好有十天的机会

我抓紧下载一些想看的和看过的高清压制的版本塞满我这 HC550 然后过了几天发现上传还是很低,虽然站免了下载量不计算了,但是由于我下的都是一些老种没有人下的也就无法提供上传量,我就开始琢磨怎么提高。

直到我看到某个新发布的种子我下载下来上传能跑满我才看到每个种子后面都有当前上传和下载的用户数量,最后我得出以下结论

  • 只需要找 上传 做种人数少 下载 人多的种子就可以提高上传量

于是我就开始疯狂刷了几天,终于,在还剩下两三天被 ban 的时候完成了0.6 的分享率

你因分享率过低而获得的警告被取消。你的等级已恢复为User。请注意提高分享率,避免再次被警告。

刺激,经过这半个月仔细了解,数据一般,但是想看的剧都下完了

这是目前的数据

分享率: 7.926 H&R:0/0 上传量: 3.909 TB 下载量: 505.09 GB 当前活动151 0

馒头

经过了学校这个站的入门我产生去更大一点的站玩的想法,于是就四处求药,终于在周二群里抓住一个 dalao 要到了一个馒头的药

注册完毕后 因为我有之前学校的教训 我就谨慎的找了标有 Free 的种子并且刚发布的种子开始下载结果又进坑了开了代理下载的 被标盒了直接下载不免费然后分享率低于 0.3
由于这个站点低于 0.3 隔天就会被 ban 所以我并没有几天的时间去刷上传 只能赶紧关掉代理 疯狂下载免费种子 终于在两三个小时内把号救回来了 真 TM 刺激啊

MySQL 时区导致 Mybatis 插入 DateTime 的问题

前言

使用 Mybatis 插入 Date 发现数据库中的日期与 Mybatis 查询出来的日期不一致

血案现场

查询表字段值:

1
2
3
4
5
6
7
mysql> SELECT * FROM `test`.`global_variables`;
+--------------+----------------+---------------------+---------------------+---------------------+
| variable_key | variable_value | created_at | updated_at | expires_at |
+--------------+----------------+---------------------+---------------------+---------------------+
| a | b | 2024-08-10 13:19:52 | 2024-08-10 13:19:57 | 2024-12-31 17:01:01 |
+--------------+----------------+---------------------+---------------------+---------------------+
1 row in set (0.02 sec)

查询数据库中的时区变量

1
2
3
4
5
6
7
8
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.02 sec)

使用 Mybatis 查询出来的数据很奇怪

1
[13:31:58 INFO]: result: GlobalVariable(variableKey=a, variableValue=b, createdAt=2024-08-10 21:19:52.0, updatedAt=2024-08-10 21:19:57.0, expiresAt=2025-01-01 01:01:01.0)

问题根源

以下引用自通义千问

UTC(Coordinated Universal Time)并不是一个特定的时区,而是一种世界通用的时间标准。它是基于原子时秒长的时间计量系统,在时刻上尽量接近于世界时(基于地球自转的时间计量系统)。UTC是为了克服世界时的不稳定性而制定的一种折衷方案。

UTC 并不表示任何一个具体的时区偏移量,但它被用来定义世界各地的时区。例如,北京时间(UTC+8)表示比UTC时间晚8个小时。UTC本身没有时区偏移,可以认为是0时区的时间,即UTC+0或UTC-0。

简而言之,UTC是一个国际时间标准,用于定义全球时间同步的基础,而不是一个具体的时区。

解决方法

我在 MySQL 连接的 url 参数为

useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC

尤其注意 serverTimezone=UTC 这配置的时区有问题 UTC 不是一个时区因改为当前所在时区 Asia/Shanghai

改为

useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

即可解决这个问题

Mybatis 处理 MySQL 中 date 类型字段

前言

之前使用 Mybatis 都是直接存储的 bigint 时间戳即可主要为了避免时区问题和各种类型不兼容的问题,但是缺点也很明显不能直观的显示在数据库中,所以今天尝试使用 Mybatis 插入 Date 数据

在 sql 中有两个类 java.sql.Timestamp 和 java.sql.Date 我们直接使用 Timestamp 指定在 javaType 中

1
2
3
4
5
6
7
8
9
10
11
@Select("SELECT * FROM `global_variables` WHERE variable_key = #{variableKey}")
@Results(
id = "GlobalVariableResult", value = [
Result(column = "variable_key", property = "variableKey"),
Result(column = "variable_value", property = "variableValue"),
Result(column = "created_at", property = "createdAt", javaType = Timestamp::class),
Result(column = "updated_at", property = "updatedAt", javaType = Timestamp::class),
Result(column = "expires_at", property = "expiresAt", javaType = Timestamp::class)
]
)
fun getGlobalVariable(@Param("variableKey") variableKey: String): GlobalVariable?

Docker 中 Gitlab 日志过大问题

前言

突然发现 Gitlab 服务老挂很奇怪,于是进后台寻找问题,首先看一下 Gitlab 日志 里面有一段 Redis 本地化持久数据无法写入到磁盘,硬盘满了……

过程

使用 df -h 命令进行查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 6.3G 22M 6.2G 1% /run
/dev/mapper/rl-root 62G 47G 15G 76% /
/dev/nvme0n1p1 960M 531M 430M 56% /boot
/dev/mapper/rl-home 30G 664M 30G 3% /home
tmpfs 3.2G 52K 3.2G 1% /run/user/42
overlay 62G 47G 15G 76% /var/lib/docker/overlay2/3e003c0a9780a97f56039cca12c09458940b0d1f4b7b713598ca2bbd09a9eaf9/merged
overlay 62G 47G 15G 76% /var/lib/docker/overlay2/345b25c35b361220cee68f8c01c937b1afd8af528f6027489c1ad4b0ebada3ff/merged
overlay 62G 47G 15G 76% /var/lib/docker/overlay2/95b8fde65b7a6f9be728097f1b0c8d8230409e665f0cda3915709596eee0d8d1/merged
overlay 62G 47G 15G 76% /var/lib/docker/overlay2/272dbb01f0c892a48a77058f16736f184b256118e0c6434d4cb90df53783e260/merged
tmpfs 3.2G 36K 3.2G 1% /run/user/0

其中

1
/dev/mapper/rl-root   62G   47G   15G   76% /

发现快满了 但是不知道是哪个目录 接着使用 find 命令寻找大文件

1
find / -size +4000M

直接在根目录下寻找大于 4000M 的文件

1
2
3
4
5
6
7
[root@localhost ~]# find / -size +4000M
/proc/kcore
find: ‘/proc/767509/task/767509/fd/5’: 没有那个文件或目录
find: ‘/proc/767509/task/767509/fdinfo/5’: 没有那个文件或目录
find: ‘/proc/767509/fd/6’: 没有那个文件或目录
find: ‘/proc/767509/fdinfo/6’: 没有那个文件或目录
/var/lib/docker/containers/cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02/cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02-json.log

此时寻找一个 Docker 容器下的日志文件大于 4000M

到目录下 ls -ll 一看

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]# cd /var/lib/docker/containers/cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02/
[root@localhost cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02]# ls -lh
总用量 11G
-rw-r-----. 1 root root 11G 7月 12 11:35 cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02-json.log
drwx------. 2 root root 6 6月 18 14:44 checkpoints
-rw-------. 1 root root 30K 7月 11 21:59 config.v2.json
-rw-------. 1 root root 1.9K 7月 11 21:59 hostconfig.json
-rw-r--r--. 1 root root 13 7月 11 21:59 hostname
-rw-r--r--. 1 root root 174 7月 11 21:59 hosts
drwx--x---. 2 root root 6 6月 18 14:44 mounts
-rw-r--r--. 1 root root 317 7月 11 21:59 resolv.conf
-rw-r--r--. 1 root root 71 7月 11 21:59 resolv.conf.hash

通过这个我们能看到 cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02-json.log 文件占用了 11G

接着使用 `` 命令查询该日志前 10 行

1
2
3
4
5
6
7
8
9
10
11
[root@localhost cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02]# head -n 10 cd37e7e6668415a1b84ed97109bd785d1530f4662ef0caca45305a3b6ebf1b02-json.log 
{"log":"Thank you for using GitLab Docker Image!\n","stream":"stdout","time":"2024-06-18T06:44:47.985803963Z"}
{"log":"Current version: gitlab-ce=17.0.2-ce.0\n","stream":"stdout","time":"2024-06-18T06:44:47.985835222Z"}
{"log":"\n","stream":"stdout","time":"2024-06-18T06:44:47.985839079Z"}
{"log":"Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file\n","stream":"stdout","time":"2024-06-18T06:44:47.985842175Z"}
{"log":"And restart this container to reload settings.\n","stream":"stdout","time":"2024-06-18T06:44:47.985845291Z"}
{"log":"To do it use docker exec:\n","stream":"stdout","time":"2024-06-18T06:44:47.985848156Z"}
{"log":"\n","stream":"stdout","time":"2024-06-18T06:44:47.985851212Z"}
{"log":" docker exec -it gitlab editor /etc/gitlab/gitlab.rb\n","stream":"stdout","time":"2024-06-18T06:44:47.985876118Z"}
{"log":" docker restart gitlab\n","stream":"stdout","time":"2024-06-18T06:44:47.98588256Z"}
{"log":"\n","stream":"stdout","time":"2024-06-18T06:44:47.985885686Z"}

观察发现这就是 GitLab Docker 镜像启动的日志文件

总结

至此赶紧删了也算找回一点磁盘容量了,从日志的日期不难看出这个容器才允许不到一个月时间,占用竟然来到了惊人的 11G 大小目前有两个解决方案,配置 Docker 容器日志上限或者配置 Gitlab 中日志等级

但是吧我是懒狗我选择先删除到时看心情再去配置

群辉使用 fclones 进行文件去重

前言

由于我的群辉 NAS 中的文件数量过于庞大,已经积累了许多重复的文件,我曾经尝试着手动去清理重复文件,刚开始还好,后面直接放弃了因为太浪费时间了,所以我开始寻找一款查询文件是否重复的软件

原先我在 Windows 中使用的查询重复的软件是 AllDup 现在他好像并不好使因为群辉系统是 Linux 所以我无法直接使用它,还得曲线救国以下将 Nas 中的文件使用 SMB 映射至 Windos 中使用 AllDup 进行扫描删除等操作 这速度十分的慢,所以我在网络上寻找实用的软件

fclones

Efficient duplicate file finder and remover

发现他编译了 Linux x86 的版本,我就放到群辉上试了一下发现居然可以用

直接将编译好的 fclones 文件丢入群辉 /bin 目录下就可以直接使用了

几个简单的命令如下

1
fclones group . >dupes.txt

搜索当前路径

1
fclones group ./1 ./2 >dupes.txt

搜索 ./1 ./2 路径的重复文件 放入 dupes.txt

1
fclones link <dupes.txt

使用 dupes.txt 重复文件 将他们硬链接

1
fclones link --soft <dupes.txt

使用 dupes.txt 重复文件 将他们软链接

1
fclones remove --path '/path/**'  <dupes.txt

指定删除路径为 ‘/path/**‘ 的

1
fclones link --soft --path '/path/**'  <dupes.txt

指定软链接路径为 ‘/path/**‘