2025-10-16 00:00:00
因为图床程序暂不支持套餐到期通知,需要杜老师定期统计到期的用户,再通过邮箱发通知。每次统计时操作较麻烦,为了方便统计用户,尝试用 PHP 编写一个页面,可以筛选去不图床到期用户邮箱。
去不图床会在用户的容量套餐到期后,发送邮件通知「请确保注册邮箱可用性」
通知内容包含数据到期时间「一般为容量到期后七天」如 5 月 24 日到期的用户,我们会保留数据到 5 月 31 日。
超过保留期限的数据会从数据库清除,但数据依然会保留在备份节点中。
为了方便用户从备份节点中恢复数据,去不图床定期「每半小时」同步至 OneDrive,需要的小伙伴可以访问 共享链接 获取备份数据,页面密码为 7bu.top
。
1 |
<?php |
注意:以上是一个完整 PHP 脚本,用于连接 MySQL 数据库、执行 SQL 查询并将结果写入到 1.txt
文件中。
将上述的代码保存为一个.php
文件如 export_users.php
;
替换脚本中的数据库信息 your_username
/your_password
/your_database
为您自己的实际数据库凭证;
确保运行该脚本的服务器支持 PHP 并且可以访问 MySQL 数据库;
当通过浏览器或命令行访问这个 PHP 页面时,它会执行查询并将结果写入到当前目录下的 1.txt
文件。
注意:确保 PHP 环境有权限写入目标文件「如 1.txt
」
2025-10-10 00:00:00
在当今数字化协作时代,高效的项目管理工具对于团队的成功至关重要。Focalboard 作为一款开源的项目管理软件,正在逐渐崭露头角,受到了众多团队和个人青睐。
Focalboard 是由 Mattermost 开发的功能强大开源项目管理和协作工具,能够以看板形式灵活地组织任务,创建详细笔记,并方便地共享文件。它支持创建各种类型的笔记页面,记录数字、链接、文字等多种类型的信息,且内置多种模板供用户直接套用编辑:
Focalboard 具有以下的特点:一是开源免费,数据自行托管,用户可将其部署在自己本地服务器上,确保数据安全可靠;二是支持多种平台,包括 Windows/macOS/Linux/iOS 和 Android 等,方便用户随时随地接入项目;三是具备丰富功能,如拖放卡、进出口板、按状态或着截止日期等过滤板和任务,以及支持多人协作、文件共享、团队和直接消息等;四是界面简洁易用,操作便捷,易于上手:
使用 Docker 安装 Focalboard。
输入命令 docker run -it -p 80:8000 mattermost/focalboard
后,等待安装完成。安装成功后在浏览器输入 localhost:8000
即可进入 Focalboard 的登录界面。
或直接下载安装包安装。
可前往 Focalboard 官方网站,下载适用于不同操作系统的个人桌面版安装包,按照提示完成安装。
在 Focalboard 的欢迎屏幕上,用户可选择创建新的团队并设置团队名称。
进入团队页面,点击创建看板按钮,根据需要选择看板类型,例如项目任务、内容日历、公司目标与 OKR、路线图等模板创建看板,也可创建空白看板自行设计。
还可设置看板名称、描述以及背景色等信息。
在看板上,通过点击添加卡片按钮来创建新任务卡片。
可以在卡片中输入任务描述,并为卡片添加标签、截止日期、优先级等属性,以便更好对任务进行分类和管理。
同时,可以将任务卡片分配给团队中的不同成员,明确责任分工。
团队成员可在看板上实时查看和编辑任务卡片,共同推进项目进度。
在卡片添加评论和讨论,提及队友以引起他们的注意,分享想法意见,实现高效协作沟通。
此外,还可以通过 Focalboard 的团队和直接消息功能,进一步加强团队成员之间的交流。
Focalboard 还支持文件共享,用户可以在任务卡片中上传相关文件,方便团队的成员查阅和下载。
可对看板进行筛选、分组、排序,快速找到所需的任务和信息。
还能查看历史记录、备份快照等等,确保数据安全性和可恢复性。
Focalboard 作为一款开源的项目管理工具,凭借其丰富的功能、简洁易用的操作界面及数据自托管等优势,为个人和团队提供一个高效、可靠的项目管理和协作平台。
无论小型团队还是大型企业,都可利用 Focalboard 来规划项目、分配任务、跟踪进度并实现顺畅的协作,从而提高工作效率和项目成功率。
2025-10-04 00:00:00
NodePass 是一个开源网络隧道工具,其基于 Go 语言开发,目标是让两台机器之间的通信变得简单又安全。想象一下,您有一台内网 Web 服务器,想让远在千里之外同事访问,NodePass 就能搭一座隐形的桥,把数据安全送过去。
它的工作方式非常巧妙,用一个未加密 TCP 通道来传递信号,然后通过另一个支持加密的数据通道把实际内容传过去。
您可以把它跑在服务器模式,接受外来连接,也可跑客户端模式,去连别人的服务器。
整个过程配置简单,资源占用较低,还支持 Docker 部署。
作为 GitHub 上开源项目,NodePass 用 MIT 许可证,代码全部公开,社区也挺活跃。
项目官网地址:
开源免费:代码全在 Github 上,透明并且省钱。
简单易用:不用编写配置文件,命令行一敲就能跑。
轻量省心:从树莓派到服务器,在哪里都能跑。
功能硬核:支持 TCP 以及 UDP,多种加密。
NodePass 提供 Docker 镜像,可以使用下面命令部署,以服务器模式运行:
1 |
docker run -d --name nodepass-server -p 10101:10101 -p 8080:8080 \ |
以客户端模式运行:
1 |
docker run -d --name nodepass-client \ |
2025-09-28 00:00:00
在计算机网络的学习与研究领域,Mininet 是款极具价值的工具。它就像是一个迷您网络世界的构建者,为我们提供便捷的网络实验环境。本文将带您深入了解 Mininet 魅力所在,并手把手教您安装与使用它。
Mininet 是一个用于创建虚拟化网络环境的平台。
它能够在一台计算机上快速构建出包含多个交换机、主机、路由器等网络设备拓扑结构。
对于网络研究人员、开发者以及网络课程的学生来说,Mininet 是一个理想实验平台。
通过它可以模拟大规模网络环境,进行各种网络协议研究、网络应用的开发测试以及网络教学演示等。
例如,如果您想研究一种新的网络路由算法,借助 Mininet 就可以轻松搭建出实验所需的网络场景,无需搭建实体网络设备,大大节省了成本和时间。
它的核心优势在于轻量级以及灵活性。Mininet 是基于 Linux 的用户模式 Linux 网络命名空间技术实现的,这使得它能很方便地在各种 Linux 系统上运行。
而且,Mininet 的网络拓扑结构可以灵活定制,无论是简单的链式拓扑、树形拓扑,还是复杂的自定义拓扑,都能通过简单的配置文件或命令行参数来实现。
同时,Mininet 还支持多种网络仿真工具集成,例如 Wireshark 等,方便针对网络流量进行分析。
安装 Mininet 的过程相对简便,但需要确保您的系统满足一定的前提条件。以下是基于 Ubuntu 系统安装步骤。
首先,需要更新系统的软件包列表。在终端输入命令 sudo apt update
,让系统获取最新软件包信息。
然后安装必要的依赖库。可通过运行 sudo apt -y install build-essential autoconf automake libtool pkg-config gawk git python python-pip python-dev tcpdump wireshark sqlite3 curl bzip2 openvswitch-datapath-dkms openvswitch-switch openvswitch-common
命令,可一次性安装这些依赖,它们是 Mininet 正常运行和后续功能扩展的基础。
接下来就是安装 Mininet 本身。可从 Mininet 的官方仓库克隆代码,可使用命令 git clone git://github.com/mininet/mininet
,然后进入 Mininet 目录中,再运行 mininet/util/install.sh -a
命令进行安装。这个安装脚本会自动完成编译和安装过程,在安装完成后,系统会提示安装成功的相关信息。
安装 Mininet 后,就可以开始体验它强大的功能了。最基本的使用方式是通过命令行来创建和操作网络拓扑。
创建网络拓扑。Mininet 提供了简单的命令行参数来快速创建常见的网络拓扑。
如运行命令 sudo mn
,就会自动创建一个包含两个主机、一个交换机和一个控制器的简单网络拓扑。
主机间通过交换机进行通信,控制器用于管理交换机行为。
如果想要创建更复杂的拓扑,可使用--topo
参数。如使用命令 sudo mn --topo linear,4
,就会创建四个主机呈线性连接的拓扑,主机 1 连接到交换机 1,交换机 1 连接到主机 2,依此类推,形成一条链式结构。
操作网络设备。创建好网络拓扑后,Mininet 会进入交互式命令行界面。在这个界面中,可对网络设备进行各种操作。
例如,可以通过 h1
命令进入主机 1 的命令行界面,在主机 1 上执行网络相关的命令,如 ping h2
来测试主机 1 和主机 2 之间的连通性。如果网络配置正确,应该可以看到主机 1 向主机 2 发送 ICMP 请求并收到回复的信息,这就表明网络通信是正常的。
对于交换机可以使用 ovs-vsctl
命令来查看和配置交换机的端口信息、流表等等。例如,ovs-vsctl show
命令可显示交换机的详细信息,包括交换机的名称、连接主机、端口号等。
可自定义脚本。当然,Mininet 也支持使用 Python 脚本来自定义更复杂的网络行为和实验场景。您可以编写自己的 Python 脚本来定义网络拓扑、配置网络设备参数及实现特定的网络功能。
例如,您可以通过继承 Mininet 的拓扑类,创建个包含多个子网络、不同带宽和延迟设置的复杂拓扑,并在脚本中对交换机的流表进行编程,实现特定流量转发策略,例如负载均衡、流量过滤等等。这种方式为用户提供了极大的自由度,能够满足各种个性化的网络实验需求。
总之,Mininet 可作为一款网络实验工具,凭借简单易用、功能强大特点,在网络领域有着广泛的应用。
无论是初学者入门网络知识,还是专业研究人员进行深度网络研究,Mininet 都是一个不可或缺的得力助手。通过掌握 Mininet 安装与使用方法,就可以开启一段精彩的网络实验之旅,探索网络世界无限奥秘。
2025-09-22 00:00:00
为了更好的执行 Python 脚本,杜老师习惯使用 Ubuntu 系统,不过在安装 Python 库时经常报错。收集了安装 Python 库的报错信息,并整理了解决办法,供需要的小伙伴们参考。
这里以上一篇《使用 Python 脚本实现图片相似度匹配》文中代码为例,首次执行时的报错信息如下:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py |
根据报错信息,提醒找不到 imagehash
模块,使用 pip3
命令安装需要的模块,结果又出现了错误信息。这个信息表明正在尝试在一个由操作系统管理的 Python 环境中直接安装 Python 相关的包,为了保证系统 Python 环境的稳定性和安全性而采取限制措施:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ pip3 install imagehash |
解决的方法有很多,这里推荐使用虚拟环境。因为使用虚拟环境可以避免直接修改系统的 Python 环境,同时方便管理依赖。按照提示创建一个虚拟环境,使用 python3 -m venv myenv
来创建虚拟环境,使用 source myenv/bin/activate
激活虚拟环境:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ python3 -m venv myenv |
在激活虚拟环境后,使用以下命令安装所需的包。安装完成后运行命令 deactivate
,退出虚拟环境:
1 |
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ pip install imagehash |
2025-09-16 00:00:00
随着相机像素越来越大,图片体积也变大了。在图片处理中,较大的文件体积会影响性能,因此杜老师会先生成缩略图,筛选完成后再通过 Python 脚本实现图片相似度匹配。这里是一个简单的示例,供需要的小伙伴们参考。
以下是个基于 Python 的脚本,使用 PIL
以及 imagehash
库来实现。
遍历目录 A 中所有图片。
在目录 B 中查找相似的图片「通过感知哈希算法判断」
如找到匹配项,则将图片复制到目录 C,并以目录 A 图片的名字命名。
1 |
pip install pillow imagehash |
注意:在运行脚本前,需安装所需的 Python 库。
1 |
import os |
注意:将 dir_a
, dir_b
和 dir_c
替换为实际路径;threshold
控制图像相似度阈值,可以根据需要调整;支持多种常见格式图片文件;使用 imagehash.phash
进行感知哈希的比较,适合用于识别视觉上接近的图片。
1 |
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py |
注意:脚本运行过程可能会有错误提示,需要根据提示进行修复。