2025年11月

别执行头图的命令

引

[scode type="yellow"]

更好的阅读体验

[/scode]

[collapse title="扯淡内容 点我展开" status="false"]
使用 rm 可以快速清理

[/collapse]

相信大家在用久服务器后肯定会发现自己的服务器系统盘非常容易膨胀

image.png

虽然你可能只是有恐惧症罢了

这该如何解决?

[collapse title="一种非常好用的解决方案" status="true"]花钱扩容硬盘,但是你既然都看到了这篇文章你应该不会使用这个方法吧[/collapse]

如果你要阅读这篇文章,你需要掌握的

  • 正确连接到 ssh 服务器,在客户端使用 ssh root@<server_ip>
  • 正确使用 cd <d> 来进入一个文件夹
  • 正确使用 ls 列出服务器文件
  • 正确使用 rm [] <d/f> 删除文件及重要参数例如 r 和 f

实践

Warn & Info

一般的 web 服务器,有 nginx、php、mysql、docker、pma,我们清理 Linux 系统就从这些方面入手,假设你使用的是 Ubuntu 22.04 ,其他系统不一定能用,但是应该是通用的,只不过包含 apt 的命令是执行不了的

[scode type="red"]一定要先备份文件!!!避免重要文件被误删!!![/scode]

笼统的办法

这个办法非常通用,但是清理的效果不一定明显

日志文件

网站日志

日志文件应该没有什么人没看到他,这里一般包含 nginx 的访问日志,包括站点的访问日志,如果你的操作系统中,安装了宝塔,日志文件一般在 /www/wwwlogs 这个文件中,所以我们可以使用以下命令删除

cd /www # 进入 /www 目录
rm -rf /www/wwwlogs # 强制递归删除 /www/wwwlogs
mkdir wwwlogs # 再建立 wwwlogs 文件夹

系统日志

然后再入手系统日志,就是包括维护信息啥的,他在 /var/log ,同样删除

cd /var # 同上
rm -rf /var/log
mkdir log

systemctl 日志

然后删除 systemctl 的日志,但是这里使用 journalctl ,使用以下命令删除

journalctl --vacuum-time=7d # 清理 7 天前的 systemctl 日志

apt-get 日志

然后再清理 apt-get 的日志

[collapse title="apt 与 apt-get 的区别" status="false"]
交互式用户推荐使用 apt

脚本或自动化使用 apt-get

[/collapse]

可使用以下命令删除

apt-get clean -y # -y 用于强制确认

缓存

Windows 中缓存位置位于 %temp% ,但是 linux 中是 /tmp/ 所以直接删除即可

rm -rf /tmp/* # 强制递归删除 /tmp/ 目录下的所有文件(夹)

不需要的软件包

使用 apt-get 清理不需要的软件包,也是可以的,但是有风险,这一般会删掉没有依赖或者废弃的软件包

apt-get autoremove --purge -y # -y 强制确认

更适用于自己的办法

这种方法就比较零散了,一般是人工/机械地产生大文件,需要你进行手动查找和删除,一般没什么作用

手动定位大文件

定位根目录下的大文件

合理使用 df 定位大文件

du -h --max-depth=1 / # 最大文件深度为 1 ,查找根目录下的,推荐设置为 1 ,然后再进一步查找

image.png
我这边查找到了根目录的每一个文件夹的大小
我这边发现 /home 目录似乎占用了过多的硬盘空间,为了演示,在 /home 目录里面查找大文件

定位二级目录的大文件

使用 cd 进入你怀疑有大文件的目录

然后再使用 df 查找,但是查找的目录要改成 rt

du -h --max-depth=1 /home # / 改成了 /home,即查找的目录

image.png
又列出了一些文件,再进入查找

定位三级目录的大文件

再次使用 cd

定位到三级的时候,一般需要使用 ls 查看了
image.png
这时候就要考研我们的 English 能力了,你但凡有小学六年级英语基础,你就应该发现 backup 是备份文件夹,里面肯定有一堆没用的文件

进入后,删掉没用的即可

rm -rf <d> # <d> 填文件夹的绝对路径,千万别填相对路径!!!可能会发生玄学事件

[collapse title="绝对路径是什么" status="false"]
例如,你在文件夹 /home/judge 下,该文件夹下有一个文件夹叫做 ry ,那么:

/home/judge/ry 是这个文件夹的绝对路径

/ry 是这个文件夹的相对路径

说人话,相对于当前文件夹的文件夹的路径叫做相对路径,相对于根目录的文件夹的路径叫做绝对路径 这不是长难句

[/collapse]

如果你还想定位,那你继续定位

查找指定特点的大文件

合理使用 find 命令

find / -type f -size +1G 2>/dev/null

/ 根目录
-type f 查找选项为 file 文件并非文件夹
-size +1G 查找大于 1G 的文件
2>/dev/null 把权限错误的文件的输出放到 /dev/null

image.png

查找到手动删除即可

感谢阅读

关于 2025 年浙江省初中名校发展共同体七年级第一学期考试反思

头部

这还是我第一次在学校写反思。。。

成绩

科目得分总分比率
语文7812065%
数学10812090%
英语10612088.33%
科学12116075.62%
社会7210072%
社会 - 道法102050%
社会 - 历史244060%
社会 - 地理384095%
总分48562078.22%
排名384977.55%

反思

说实话,这次的语文成绩还挺是让我意外的,小学的时候 100 分也考了 78 分,现在初中 120 分仍是考了 78 分,也算是一种退步,具体的错题也不晓得在哪,目前只知道就光基础就扣了 12 分,我还寻思着我基础题是不会错,没想到错了一坨,本打算找 CY 聊聊的,但是没机会,看到 CY 那么忙,也不舍得找 ta 问,语文从始至终一直是我的薄弱项,小时候我妈就告诉我多看书,可我硬是一个字也没看,总觉得读书与语文成绩没什么关联,8 月时尝试让 Deepseek 说服我,但是似乎没有用......。真不知道如何学语文,按照 100 分来算,我应该是考了 65 分:(加油吧,好好学:(

再说数学,我小学的时候也是挺好的,也是 90+ 吧,也经常受到老师的表扬,小学 6 月的时候在某个河南女老师那边学数学,似乎是学了 2 个月,把初中数学都全完了,但是似乎忘了,将近毕业的时候,我的各科成绩严重下降,甚至试过回家反思,但是没有效果,很 bk ,到初中的时候,感觉也就那样,跟我毕业学的时候也差很多,按照 100 分,我™才考了 90 分:(

续说英语,我感觉我学英语的方式很猎奇,中译英就是不会,英译中感觉还好,但是我都翻译一个一个单词,然后脑子里就突然蹦出了这句话的意思似的,类似乱句重组,我认为这个方法是不妥当的,因为到后面,会不理解一些介词的意思,我估计初一还可以用这个方法,但是以后就不一定了,没准儿全部爆 0(?),我还是得想想怎么办吧,但是跟 CS 说不好,怕被骂:唉,及时改正吧,我相信我自己,你能行的,终有所成!Good luck!:(

然后是科学,我对 $m^3$ 老师还是很敬畏的,上课的时候居然可以不用 PPT ,但是我的科学成绩似乎也不怎么样,小学的时候,科学成绩也就六十来分,初中后,似乎退步了,还是必须得好好学学,得适应 $m^3$ 老师的上课方式,我自己也得认真学学,对得起 $m^3$ 老师对我的良苦用心,不辜负 $m^3$ 老师对我的期望,多复习知识点,虽然 $m^3$ 老师骂过我 nao zi kao sao lao zei,但这一定是为了我好,好好学!!!:(

最后就是社会了,刚接触社会,感觉也有些许陌生,特别是道法,我是想不通为什么要学道法,小学都不学道法,我估计我道法应该只有 10 分,知识点背得不熟练,过目就忘,好在通过语文的阅读理解方式,也是拿到了一定的分数,以后肯定多背知识点。说到历史,我其实是非常讨厌历史这门科目的,主要是理不清历史时间线,也不敢找老师问,有时候是真的不理解为什么,但是一去问,就是被老师问:“你上课是没听吧?”虽然这只是说说,讲还是会讲的,但是我是真的不愿意听这句话,算了,不依靠别人,靠自己,自己学会,自己理解,肯定比问别人好得多,好好学习,及时背诵,多复习知识点。社会的最后一项就是地理了,我个人觉得我地理考得也还好吧,跟数学差不多的,需要有一定的理解性思维,但是仍是要背诵,我猜我扣的 2 分是因为知识点不熟练,加油吧!!!

我相信我自己,学习肯定是有成绩的,不然其他人怎么可能这么如此热衷于学习呢?我记得六年级有一篇课文,似乎叫做《忆读书》吧,就写到了读书的意义(?好像是的),我会在将来,尽量克服自己的所有确定,不成为别人嘴中所说的“败类”,好好学习,多背诵,多读书,CS 说得好:“要学会利用零散时间”,在初中阶段,有很多零散时间,我们都要学会利用,在初中阶段做一些有意义的事情,多学习,少玩物丧志,全面发展,不偏科!:))))

#include <bits/stdc++.h>
using namespace std;
unsigned long long rp;
void exam(){
    //...
}
int main(){
    while(++rp) exam();
    return 0;
}

这个分数,上个屌的培优班,成就他人吧!

感受

我也不是打 noip 的货,也很菜

题解

梦熊 NOIP 2025 模拟赛 3 题解

T1 战争游戏

题目描述

游戏在一行 $n$ 个城市上进行,城市 $i$ 初始有士兵 $a_i$ 人。前 $m$ 个城市属于小L,其余属于小K,两人交替操作,小L先手。操作包含三种:

  1. 转移:选择己方地盘上相邻($|x-y|=1$)的两个城市 $x$、$y$,将 $x$ 的所有士兵转移到 $y$,$a_x$ 变为 0。
  2. 攻占:选择己方城市 $x$ 和对方相邻城市 $y$,小L操作需满足 $a_x > a_y$,小K操作需满足 $a_x \geq a_y$,攻占后 $y$ 归己方,士兵转移方式同转移操作。
  3. 不进行任何操作。
    当一方占据所有城市时获胜,需对 $m=1,2,...,n-1$ 分别输出获胜方。

关键思路

  1. 特殊性质B:若先手第一步无法攻占,双方会优先集中兵力,最终比较分界线两侧总兵力。
  2. 特殊性质C:若先手第一步可攻占对方城市且后手无法反制,比较攻占后两侧总兵力。
  3. 正解:先手攻占后需判断对手是否能反制,若能则选择转移兵力,否则执行攻占,核心是比较关键状态下的兵力总和。

T2 加减乘除

题目描述

给定一棵以 1 为根的树,每个节点 $u$ 有运算符号 $op_u$(加或减)和数值 $a_u$。$q$ 次询问,每次给定 $x$,从根节点出发,需满足边的范围条件 $[l_v, r_v]$(即经过节点 $u$ 运算后的 $x'$ 需在子节点 $v$ 的边范围内)才能走向子节点,求能到达的节点个数。

正解

  1. 区间预处理:每个节点 $u$ 对应可到达的 $x$ 区间 $[L_u, R_u]$,初始根节点区间为 $[-\infty, +\infty]$。
  2. 区间更新:向下遍历树时,运算操作会平移区间,边的范围条件会取区间交集,以此递推得到所有节点的 $[L_u, R_u]$。
  3. 高效查询:对所有区间端点离散化,用差分法给每个区间 $[L_u, R_u]$ 加 1,查询时二分找到 $x$ 对应的区间,即可得到答案。
  4. 时间复杂度:$O((n+q) \log n)$。

T3 空之碎物

题目描述

定义二进制不退位减法 $\ominus$,给定序列 $a$,对于区间 $[l, r]$,$f(l, r)$ 表示将该区间元素作为多重集,经若干次合并操作(选两个数合并为其不退位减法结果)后剩余的最大值。求 $\sum_{i=1}^{n} \sum_{j=i+1}^{n} f(i, j)$ 对 998244353 取模的值。

核心性质

  1. 性质1:最终操作结果可表示为 $x \ominus(y \ominus a_1 \ominus a_2 \ominus ... \ominus a_{n-2})$($a_1~a_{n-2}$ 为除 $x,y$ 外的元素)。某二进制位无1时无影响,恰好一个1时贡献由 $y$ 选择决定,至少两个1时贡献为0。
  2. 性质2:若区间长度超过 $\log_2 V + 2$($V$ 为元素最大值,此处 $V < 2^{25}$),则 $f(l, r)$ 等于区间最大值。

正解

  1. 处理长区间:直接累加所有长度超过 $\log_2 V + 2$ 的区间的最大值。
  2. 处理短区间:枚举每个二进制位,对该位有两个1的元素建立连边,通过枚举连边计算贡献,时间复杂度 $O(n \log_2^2 V)$。

T4 Ice Drop

题目描述

一个正整数序列是“好的”,当且仅当对任意正整数 $k$,序列中所有 $k$ 的倍数位置连续。给定序列 $a$,$f(b)$ 表示满足以下条件的“好的”序列 $b'$ 的数量:

  1. $|b'| = |b|$;
  2. 若 $b_i > 1$,则 $b_i' = b_i$;
  3. $LCM(b_1,...,b_m) = LCM(b_1',...,b_m')$($m$ 为 $b$ 的长度)。
    $q$ 次询问,每次给定 $l, r$,求 $\sum_{x=l}^{r} \sum_{y=x}^{r} f(a[x,y])$ 对 $10^9+7$ 取模的值。

关键思路

  1. 核心等价:序列是“好的”等价于每个质因子的指数序列是单峰的。
  2. 特殊性质A($q=1$):不能新增质因子,也不能超过原质因子最大指数,通过组合数计算合法填充方式,答案为各质因子贡献乘积。
  3. 特殊性质B:若只有一个质因子,合法区间是若干不交区间的子集,答案非0即1。
  4. 正解:用扫描线结合线段树,维护全局乘、单点修、查历史和,对每个不交区间单独处理,时间复杂度 $O(n \log n)$。

个人代码

T1

主要思路:骗分

#include <bits/stdc++.h>
using namespace std;
int T,n,i,m,ma,t,a[100010];
string ans;
int main(){
    cin>>T;
    while(T--){
        cin>>n;t=ma=0;ans="";
        for(i=1;i<=n;i++)
            cin>>a[i],ma+=a[i];
        for(m=1;m<n;m++){
            t+=a[m];
            if(2*t>ma) ans+='1';
            else ans+='0';
        }
        cout<<ans<<"\n";
    }
}

太好力,又水了一篇 blog
MX-S11

留下你对未来的看法吧!

服务状态

服务到期时请及时提醒续费

主服务

浙江宁波服务器 [可能会暂停服务]

业务:OJ

到期时间:2026 年 2 月 17 日

CDN [可能会暂停服务]

到期时间:2026 年 1 月 19 日

对象存储

到期时间:2028 年 5 月 25 日

域名

fmcraft.top

业务:部分次要服务

到期时间:2026 年 2 月 5 日

www.tropical-fish.cn [可能会暂停服务]

业务:主服务

到期时间:2026 年 6 月 30 日

SSL 证书

oj.www.tropical-fish.cn [可能会暂停服务]

到期时间:2026 年 1 月 17 日

www.tropical-fish.cn [可能会暂停服务]

到期时间:2026 年 11 月 11 日

次服务

阿里云盘 SVIP

业务:存储服务(下载站)

到期时间:2026 年 10 月 22 日

WPS SVIP

业务:暂定

到期时间:2026 年 7 月 8 日

从某人买的 2TB 磁盘 [可能会暂停服务]

业务:存储服务(影视)

到期时间:2030 年 6 月

短板时间则代表服务终止最早时间

请前往 Linux 不小心挂载错磁盘导致无法启动系统咋办 - TropicalFish - 信息技术分享平台 以获得更好的阅读体验

阐述标题

你给你的服务器加了一块硬盘,你编辑 /etc/fstab 设置自动挂载,但是手滑打错了一个字符

这边假设你不是通过指定 uuid 而是设置 dev 设备路径

image.png

一不小心重启系统就 如图 了,也进不来系统
What should we do

正文

这种情况其实非常 easy (?)

先登录到维护模式

在此处直接键入服务器密码即可

image.png

此时你应该成功登录到终端

修改 /etc/fstab

按照往常那样,使用 vim 修改文件
vim /etc/fstab

建议取消除系统外其他挂载,等到进系统在重新编辑

先按 i 进入编辑模式,再按 insert 进入插入模式

LABEL=cloudimg-rootfs   /        ext4   discard,errors=remount-ro       0 1
LABEL=UEFI      /boot/efi       vfat    umask=0077      0 1
/dev/sdc1 /home ext4 defaults 0 1
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"/etc/fstab" 3L, 135B                                         3,33          All

例如,此代码片段中,第一二行就是系统的挂载,第三行就是用户手动进行的挂载,我们应当注释你手动删除的行,或者直接删除也可

然后 :wq! 保存退出

重启系统

[scode type="red"]这时你使用云服的重启系统可能没有什么效果,你需要手动重启[/scode]

在终端使用下面这个命令重启系统

sudo shutdown -h now

然后,在云服控制面板点击【关机】

再点击【开机】

应该就可进入系统了


感谢阅读

阐述标题

刚打开这个文章的你,可能会对这个 title 有点懵逼,简单介绍一下:

当你访问一个地址的时候,这个站点会随机从服务器向你返回一张图片

你应该懂了吧

正文

按照标题,我们需要先购买一台服务器

购买服务器

这里推荐使用雨云进行搭建
有备案选国内,没备案选国外
1 核心 1G 也能运行起来!即使配置不够,后续也可升级
自行选择心仪的服务器
操作系统推荐选择 ubuntu 22.04

安装宝塔面板

如果在本章节出现不知道如何操作的,可以前往[教你快速搭建一个文件快递柜[filecodebox使用教程] - TropicalFish - 信息技术分享平台](https://www.tropical-fish.cn/index.php/archives/129.html)查看

宝塔面板(bt.cn) 简单好用的Linux/Windows服务器运维管理面板

购买服务器后,使用 SSH 工具连接到服务器,键入 bt.cn 上最新的安装宝塔面板的命令

为了防止你是迷惑用户,直接贴上URL:宝塔面板下载,免费全能的服务器运维软件

if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

第一次需要按 Y 以确认安装
等待出现面板链接信息即代表安装成功

首次进入宝塔面板

如果在本章节出现不知道如何操作的,可以前往[教你快速搭建一个文件快递柜[filecodebox使用教程] - TropicalFish - 信息技术分享平台](https://www.tropical-fish.cn/index.php/archives/129.html)查看

根据 ssh 窗口中提供的连接信息,在浏览器中访问,请注意 https 与 http 的区别

第一次访问需要同意许可条款

可以不选择绑定账号

需要安装 LNMP 环境,如果不小心手滑点掉了,也可以通过重新进入面板来安装

安装进度可见左上角面板 ip 旁边的小数字

如果你是重度深色用户,可通过以下方式将 bt 设置为深色模式
image.png

创建、编写网站

创建网站

点击宝塔左侧网站,PHP 项目,添加站点
域名就写 {server_ip}:{port},即服务器 ip + 自定义端口,当然如果你有域名也可以填写你的域名,但是需要在域名提供商创建一个 A 解析指向服务器 ip
根目录可以不管
确定即可
image.png

编写网站

点击你刚创建网站的 根目录 进入文件管理
image.png

然后创建一个文本文件
image.png

将其命名为 index.php

没有设计确定按钮,直接回车即可,不要再找确定按钮了

双击编辑他

键入以下代码

<?php
$img_array = glob("photos/*.{gif,jpg,png}",GLOB_BRACE); 
$img = array_rand($img_array); 
$dz = $img_array[$img];
header("Location:".$dz);
?>

如果你想知道代码的含义,可以看看:

<?php
// 使用 glob 函数搜索 photos 目录下的所有 gif、jpg、png 格式的图片文件
// GLOB_BRACE 参数允许使用花括号来匹配多种文件扩展名
$img_array = glob("photos/*.{gif,jpg,png}", GLOB_BRACE); 

// 从图片数组中随机选择一个图片的索引键
// array_rand 函数返回随机数组元素的键名
$img = array_rand($img_array); 

// 通过随机选择的键名获取对应的图片文件路径
// $img_array[$img] 就是随机选中的图片文件完整路径
$dz = $img_array[$img];

// 发送 HTTP 重定向头部,将用户浏览器跳转到随机选中的图片地址
// 这样用户就会直接看到随机选择的图片
header("Location:".$dz);
?>

然后 Ctrl+S 保存

上传图片文件

新建一个文件夹,命名为 photo,进入此文件夹,将你想要的图片上传,扩展名一定要是 gif jpg png 三者其中之一

你想的没错,直接把本地文件直接拖到文件管理器即可

如果文件数量过多,可本地压缩成 zip 文件后,上传到文件管理器,再解压即可

测试

打开浏览器,键入你之前输入的域名或 ip+port ,你会发现他成功加载了图片

如果你是迷惑用户,你可能会怀疑为什么我刷新,还是那张图片,我建议你看看你访问的 url 是什么
如果你是迷惑用户,你可能会想着该怎么办,再次强调,随机图片 API,你是通过 api 访问的,加载一次客户站点,只会加载一次图片 api 站点,不会加载很多次
如果你是迷惑用户,你可能会想如果我在一个页面中引用多次 iframe 怎么办,再次强调,你是通过 api 访问的,访问一次,获取一次
如果你是迷惑用户,建议询问 Deepseek

恭喜你,打败了全国 99% 的选手

引流

【科技补全76】火绒曝光超级流氓软件鲁大师、小鸟壁纸;英特尔前员工盗窃上万份机密文件;谷歌被FFmpeg开发者怒喷;安卓将不再禁止高级用户随意装软件;\_哔哩哔哩\_bilibili
这不是广告

新概念英语点读工具

Github 开源

luzhenhua/NCE-Flow: 新概念英语在线点读,点句即读、连续播放,支持 EN / EN+CN / CN。

介绍

新概念英语在线点读,点句即读、连续播放

优势何在?

  • ​句子级点读​:点击任意句子开始播放,自动高亮跟随
  • ​多语言视图​:EN / EN+CN / CN 三种显示模式
  • ​播放控制​:倍速调节、连读/点读切换、循环模式、断点续播
  • ​全局快捷键​:空格播放/暂停、方向键导航、音量控制
  • ​学习管理​:课程收藏、学习记录、进度追踪
  • ​现代界面​:Apple 风格、深浅色主题、响应式设计
  • ​零依赖​:纯静态文件,解压即用

部署方法

我们如何部署如此有用的项目呢?我们可以使用同样有用的雨云和宝塔面板,并且在宝塔里安装 Docker

先购买一台服务器,1 核心 1G 也能跑起来这个项目,然后安装宝塔面板

方法1:Docker 部署

适合不用二开的

docker run -d -p {PORT}:80 --name nce-flow --restart unless-stopped luzhenhua/nce-flow:latest

{PORT} 处填外网访问端口

在你的 ssh 终端中键入命令,然后放行防火墙,通过浏览器访问 http://<server_ip>:<port> 即可

如何放行防火墙?
image.png

方法2:Docker-Compose 部署

适合有一定技术基础的,有自定义配置需求的

git clone https://github.com/luzhenhua/NCE-Flow.git # 使用 git 拉取项目
cd NCE-Flow # 进入项目目录
docker-compose up -d # 根据 docker-compose.yml 启动文件,如果不能使用这条命令请使用 docker compose up -d

在 ssh 终端运行即可,依旧需要放行防火墙,端口默认 8000

方法3:Python 部署

你需要先使用 apt update && apt install python3 && apt install pip 安装环境

将项目的 Release 中的 .tar.gz 下载至服务器

可以在自己的电脑中,找到 Release 中的 .tar.gz ,右键,复制链接,然后在服务器中,使用下述命令拉取
{URL} 就是复制的 URL

wget {URL}

警告:文件约为 583MB

使用下述命令解压

tar -zxvf filename.tar.gz

使用 cd 命令进入目录
使用 python3 -m http.server 8000 运行项目
依旧需要放行防火墙

更多方法请在 Github 探索

如何使用

浏览器访问 http://server_ip:port

选择你想要的一册,然后选择一课,点击播放按钮即可

在线文件管理器

Github 开源

9001/copyparty: Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps
温馨提示,如果你要访问这个页面,你需要一台性能强劲的电脑

介绍

将几乎任何设备变成文件服务器,使用任何网络浏览器可以恢复上传/下载

  • 服务器只需要 Python(2 或 3),所有依赖项可选

部署方法

在你的电脑打开这个项目的 Release,右键最新的蓝色 copyparty-sfx.py

然后再 ssh 终端,使用 wget {URL} 下载这个 .py 文件

嗯嗯,非常 nice ,最后一步... 原神,启动!使用 python3 copyparty-sfx.py 运行这个 .py 文件

然后放行 3923 端口

浏览器访问 http://<server_ip>:3923 即可

如何使用

已经写的非常明显了
点击就是访问
虽然你可能看不懂英文
多用用就会了

前言

提到在线评测系统(Online Judge),很多人会想到用C++、Java 或 Python 等语言开发。但你可能不知道,​PHP 同样能够构建功能强大的在线评测系统​!今天我们就来聊聊基于 PHP 的 HUSTOJ ——一个成熟稳定的开源在线评测系统

HUSTOJ

hustoj 由 华中科技大学(实际上只有 zhblue 一个人和喜欢 pr 的网友) 开发,前后端完全使用 php 开发,判题机是 docker ,不用担心安全问题,这点为 oi 教学系统提供了很好的解决方案

主要优势:

  • 开源免费
  • 允许商用(只需要开放源代码)
  • 海量题库(约 $x(x \geq 5 \times 10^3)$ 道题目可以下载)
  • 支持多种语言提交
  • 社区活跃
  • 易于二开(直接修改文件即可,不需要重新 build)

HUSTOJ 相关资料

QQ 群:23361372
wiki:代码的那些事 | 程序员回忆录
github:zhblue/hustoj: Popular Simple Open Source Online Judge based on PHP/C++/MySQL/Linux for ACM/ICPC and NOIP training, with easy installation. 简单实用的开源OJ系统
题库:TK题库

正文

我们如何部署如此强势的 online judge 呢?
我们可以使用同样强势的的 雨云 和 宝塔面板
温馨提示:1-1 也可以部署 hustoj
购买完服务器后,需要安装宝塔面板
操作系统选择 ubuntu 22.04

开始部署

创建数据库

登录上你的 宝塔面板,左侧数据库,创建数据库,数据库名称 jol ,进行创建
image.png

运行安装脚本

先登录上你的 宝塔面板 ,进入左侧终端,执行两条命令

wget http://dl.hustoj.com/install-ubuntu22.04-bt.sh # 拉取安装脚本
bash install-ubuntu22.04-bt.sh # 运行安装脚本

这时,他会要求你输入数据库用户名和密码,请依次键入你创建数据库的时候的用户名和密码
image.png

随后便开始安装了...

期间可能会多次需要你按下 enter 键

请不要使用 Windows + V 剪切板功能
请保持 bt 窗口活跃
安装速度结合网络宽带而定

需要按 enter 大杂烩:
image.png

创建站点并配置

宝塔左边网站,php,创建网站,域名http://<server_ip>:<port>,根目录/home/judge/src/web
image.png

然后设置这个,左边网站目录,关闭放跨站攻击
image.png

然后,左边软件商店,搜索 php ,设置安装的 php,左边禁用函数,取消 putenv 函数的禁用
image.png

然后,使用浏览器访问你的 oj ,恭喜你,访问成功!
image.png

简单使用 HUSTOJ

注册管理员账户

右上角注册,用户名一定要写admin,其他随意,注册即可

添加一道题目

后台管理 URL 是 http://<server_ip>:<port>/admin/

左侧【问题-管理】【问题-添加】

<span class='md'>
</span>

这是 markdown 的标记,题面需要在里面写,支持 latex、katex

添加即可

维护

系统配置

/home/judge/src/web/include/db_info.inc.php 有注释

其他你可能需要知道的东西

/home/judge/src/web 是站点文件
image.png


感谢阅读

前文

关于 mcsmanager

省流:一整套现代化的智能管理系统

mcsmanager 是一款开源、分布式、轻量级的游戏服务器管理面板,由国人使用 node.js 开发。它最初 为 我的世界(Minecraft)服务器而生,因此得名,但现在它的能力已经扩展到了多种 ​Steam 服务器(如泰拉瑞亚)以及其它多种游戏服务端

它的核心是一个 Web 控制台,你只需要在服务器上安装好面板服务,就可以通过任何浏览器(比如你的手机、家里的电脑,甚至是手表或电视)来远程管理和控制你的游戏服务器

还有,你甚至可以把他当做守护进程(?)

主要优势

  1. 不需要命令行访问,他只是一个 Web 面板!
  2. 支持在线文件管理,不需要 ftp 、 sftp 这种一点就炸的东西
  3. 多实例管理
  4. 实时控制台
  5. 厉害的用户权限系统
  6. 计划任务与备份
  7. 资源监控
  8. 多节点管理
  9. 开源、免费、轻量、安全

其实,一开始 mcsmanager 只是一个管理 Minecraft 服务器的管理面板,后来功能逐渐强大,甚至支持管理 泰拉瑞亚 等 Steam 游戏

Github开源:MCSManager/MCSManager: Quick deployment, distributed, multi-user, modern management panel for Minecraft and Steam game servers / 一键安装,分布式架构,多用户销售,现代化的 Minecraft 和 Steam 游戏服务器管理面板

Wiki:MCSManager | Free, Secure, Distributed, Modern Control Panel for Minecraft and Steam Game Servers. 不要以为这是英文 wiki 了,你可以切换为简体中文

正文

我们如何部署这么强势的服务器管理面板捏,我们可以使用同样强势的雨云,部署成功率为 200%
你在购买好后,需要安装宝塔面板,并自行配置 lnmp 和 docker 环境
切记安装 docker 的方式:

方法1:命令部署

适用于:海外用户
可见 wiki 【快速开始】【Linux 自动安装】

sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"

直接打开服务器 ssh ,直接运行即可

方法2:Docker 部署

适用于:国内用户

首先,你肯定已经安装好了 Docker
打开 bt ,左边 docker ,应用商店搜索 Mcsmanager ,两个 Web 和 Deamon 都需要安装
image.png
image.png

温馨提示,你可以点击【已安装】对应的实例的安装进度
bt_successful 就是安装成功> 我知道你看不懂,但是你可以前往 DeepSeek - 探索未至之境 | 豆包 - 字节跳动旗下 AI 智能助手

image.png
上图为【日志】按钮的位置


我相信你已经成功部署了,那么...

访问你的 mcsmanager

打开浏览器,访问 http://<server_ip>:23333

选择简体中文->开始->输入用户信息->老用户

你就会进入
image.png

选择方法 1 安装的用户可直接跳转到【创建 Minecraft 服务器】

选择上面的节点(如果你点不了,请把 url 改成 http://<server_ip>:23333/#/node)

如图
image.png

如何获取节点密钥?

进入宝塔,docker,已安装,选择 daemon 的文件管理
image.png

依次进入 /daemon/data/Config

你会看到一个文件,叫做global.json,双击编辑他

key 字段就是节点密钥

image.png

wow 在线了 太好力

创建 Minecraft 服务器

进入 应用实例
新建应用
自由选择安装

安装完毕...