可能在这之前大部分的人一直用的是 RedisDesktopManager 或者是 Redis 的官方可视化工具 RedisInsight 来对 Redis 进行操作和管理。前段时间不经意看到了颜值高且简约的 Redis 可视化工具 Tiny RDM。Tiny RDM 是一个现代化轻量级的跨平台 Redis 桌面客户端。
极度轻量,无内嵌浏览器。
界面精美易用,提供浅色/深色主题。
多国语言支持:英文/中文。
更好用的连接管理。
增删查改一应俱全。
支持多种数据查看格式以及转码/解压方式。
轻松处理数百万键列表。
操作命令执行日志展示。
支持命令实时监控。
支持导入/导出数据。
支持发布订阅。
支持导入/导出连接配置。
之前发布了一篇高颜值的第三方网易云播放器部署教程,但随着版本的更新,原有的版本不可用。前几天刚好一个小伙伴有部署的需求,杜老师就重新编译了下,整理该篇教程,供有需要的小伙伴参考!
使用 Vue.js 全家桶开发。
可扫码登录网易云账号。
可支持 MV 播放。
支持歌词显示。
可支持私人 FM。
每日推荐歌曲。
没有任何社交功能。
每日自动签到。
支持音乐云盘。
自定义快捷键和全局快捷键。
可支持 PWA,在 Chrome/Edge 里点击地址栏右边的安装到电脑。
可支持 Mpris。
杜老师已经将最新版本编程成 Docker 并传至 Docker Hub,可使用下面的命令一键部署。注意-p 8080:80
中的 8080
可自定义,用于访问或者反代:
1 | docker run -d --name YesPlayMusic -p 8080:80 penndu/yesplaymusic |
如使用 Docker Compose 管理,可以将下面的内容保存为 docker-compose.yml
文件,并通过命令 docker-compose up -d
启动:
1 | services: |
很多时候,我们都需要将一些文件或文本传送给别人,或者跨端传递一些信息,但我们又不想为了分享,而去下载一些客户端的软件,这个时候,我们就可以使用口令传送箱。
轻松上传:复制粘贴,拖拽选择。
多种类型:文本,文件。
防止爆破:错误次数限制。
防止滥用:可针对 IP 限制上传次数。
口令分享:随机口令,存取文件,自定义次数以及有效期。
匿名分享:无需注册,无需登录。
管理面板:查看所有文件,删除文件。
一键部署:可使用 Docker 一键部署。
新建一个空白目录:
1 | mkdir /opt/FileCodeBox |
在上面的目录中新建一个.env
环境变量文件,将下列字段内容替换成您自己的「如没有新建此文件,将会使用系统默认配置」
1 | # 端口 |
一键安装:
1 | docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta |
一键更新:
1 | docker pull lanol/filecodebox:beta && docker stop filecodebox && docker rm filecodebox && docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta |
后端地址:
1 | /admin |
后台密码:
1 | FileCodeBox2023 |
为了方便小伙伴的使用,杜老师收集了常见平台的 APP。除正文的安装包外,还有各主流浏览器插件,请有需要的小伙伴自行前往各浏览器应用商店自行下载,如需要代下载某歌浏览器的插件,可在评论区中留言。
]]>前端时间和小伙伴聊 LastPass 密码泄露问题,杜老师的宗旨就是数据一定要握在自己的手里,借着之前教程搭建了一个密码的托管平台,自己用着感觉浪费,准备分享出来供需要的小伙伴们一起使用!
组织支持。
附件、发送。
支持 Vault API 的功能。
为 Vault 界面提供静态文件。
网站图标 API 的支持。
身份验证器和 U2F 的支持。
YubiKey 和 Duo 的支持。
紧急通道。
使用浏览器访问 bw.dusays.com
,初次使用点击创建账户「该平台为去中心化管理,并没有管理员角色,无需担心杜老师会窃取所托管的密码」
平台使用非验证邮箱作为登录用户名「无需验证邮箱」需要注意的是,平台暂不支持登录密码找回功能,且平台无后台杜老师没办法协助找回,所以一定要记住设置的密码!一定要记住设置的密码!一定要记住设置的密码!
平台支持密码、设备授权登录两种方式,其中设备授权需终端设备安装对应 APP,请在注意事项中找到对应版本的 APP 安装包:
登录平台后点击右上方新增——项目,即可保存密码信息。杜老师推荐安装浏览器插件,可以快速实现密码保存、自动填写功能:
在工具页面中,可以生成高强度的密码「支持指定密码强度」且支持数据的导入、导出:
在报告页面中,可检测暴露的密码、重复使用密码、弱密码等,其余功能可以自行发掘:
为运营该平台,杜老师特地买了台凉心云服务器,服务有效周期一年「至 2025 年 02 月 28 日止」截止日前,请小伙伴们记得导出自己的密码,避免数据丢失;
服务器到期后,杜老师会根据自己使用,及平台使用情况考虑是否要为服务器续费。但因杜老师看不到后台数据,所以在 2025 年 02 月 21 日时统计平台使用情况;
平台已做好相关的防护工作,但无法 100% 保障数据安全,毕竟连 LastPass 这种专业平台都出现了密码泄露问题,小伙伴们可以自行选择是否使用平台;
平台 APP 已适配 Windows/macOS/Linux 等系统,支持各主流浏览器,且支持手机端。如需下载可自行搜索 Bitwarden,下载对应版本即可。也可在评论区留言,杜老师会代下载转存至网盘中再分享出来。
1 | docker run -d --name vaultwarden -v /vw-data/:/data/ --restart unless-stopped -p 80:80 vaultwarden/server:latest |
注意:如担心杜老师提供平台的稳定性和安全性,也可考虑自行搭建,运行上方命令即可。其中-v /vw-data/:/data/
中/vw-data/
为服务器对应的数据存储路径,根据实际情况修改。建议将-p 80:80
修改为-p 40031:80
,40031
为映射端口,可自行修改成未被占用端口。该容器并未内置 SSL,可使用 Nginx 反向代理实现。
当需要快速使用图形化工具上传文件、下载文件、删除文件、设置权限策略等时,可以下载并安装 ossbrowser 工具,使用多种方式登录工具,进行相关操作。希望能对 xaoxuu 童鞋和同样需要的小伙伴提供一些帮助!
通过 AK 登录时,需按如下说明完成各配置项:
参数 | 说明 |
---|---|
Endpoint | 选择登录时的访问域名。 |
AccessKeyId/AccessKeySecret | 填写账号的 AccessKey 信息。 |
预设 OSS 路径 | 如果当前账号仅拥有某个 Bucket 或 Bucket 下某个路径的权限,需填写预设 OSS 路径。 |
区域 | 当 Endpoint 配置为默认时,需填写预设 OSS 路径对应 Bucket 所在的区域。 |
保持登录 | 选中之后,ossbrowser 会保持登录状态,下次打开时将自动登录。 |
记住密钥 | 选中可保存 AK 密钥。再次登录时单击 AK 历史,可选指定密钥直接登录。 |
ossbrowser 支持的 Bucket 或 Object 级别的操作与控制台支持操作类似,请按照 ossbrowser 界面指引完成 Bucket 或 Object 的相关操作:
操作 | 说明 |
---|---|
创建Bucket | Bucket 是用于存储 Object 的容器。在上传任何文件到 OSS 前,必须创建存储空间。 |
删除Bucket | 如果不再需要 Bucket 请将其删除,以免产生额外费用。 |
上传文件 | ossbrowser 默认使用分片上传和断点续传上传文件,上传文件最大不可以超过 48.8T。若因意外中断了文件上传的过程,且未继续完成该文件的上传,则已上传的部分会以碎片的形式存储在 OSS 的存储空间中。 |
上传文件夹 | 单击页面上方目录图标,可上传文件夹。 |
下载文件 | 选中文件,然后单击操作列的下载进行下载。 |
下载文件夹 | 先选中文件夹,然后单击页面上方下载图标进行下载。 |
预览文件 | 直接单击文件名称进行预览。 |
复制文件 | 在 Bucket1 选中文件单击复制,然后在 Bucket2 单击粘贴。 |
移动文件 | 选中更多——移动进行操作。移动或复制文件最大不能超过 5G。 |
分享文件 | 文件上传 Bucket 后,可以将文件 URL 分享给第三方,供其下载、预览。单击目标文件操作列的获取地址,生成文件分享地址。 |
设置软链接 | 在设置软链接面板,设置软链接的文件目录,然后单击确定。 |
Golden-hooped Rod 是一款对于 Web 站点进行漏洞扫描的工具。工具用 Python 语言编写,使用目录扫描字典均由真实环境而来。使用起来异常便捷。可以对 Web 站点进行漏洞扫描、设置代理、设置线程等等。
1 | usage: GHR.py [-h] [-u URL] [-f filename] [--upgrade] [--nodir] [--proxy PROXY] [-t THREAD] |
注意:直接运行 python GHR.py
会显示帮助信息,如果扫描站点,如 dusays.com
,命令为 python GHR.py -u https://dusays.com/
。
ShellCheck 是一个用于静态代码分析工具,其专门针对 Shell 脚本语言进行检查。它可以帮助用户发现并纠正脚本中的常见问题、潜在错误和最佳实践不一致。新手必备工具,老手也经常通过该工具进行脚本排错。
ShellCheck 可以检查 Shell 脚本语法,确保脚本中的命令、语法结构和语法规则的正确。可以识别和报告脚本中的各种错误,包括语法错误、拼写错误、变量使用错误、命令调用错误等等。
ShellCheck 提供了最佳实践建议,帮助用户编写更加清晰、可读性更高的脚本,避免常见的陷阱和错误。
ShellCheck 支持在多种操作系统运行,并支持各种常见的 Shell 解释器。
ShellCheck 允许用户定义自定义规则和过滤器,以适应特定项目或组织需求。
语法错误、警告。
变量使用错误。
命令调用错误。
输入、输出错误。
安全漏洞。
代码风格建议。
如果是 Debian/Ubuntu 系统,执行以下命令:
1 | apt -y install shellcheck |
如果是 CentOS/RHEL 系统,执行以下命令:
1 | yum -y install epel-release |
1 | shellcheck shell.sh |
注意:对于一个 Shell 脚本 shell.sh
进行检查,则按上面命令执行即可。ShellCheck 将输出检查结果,并提示错误和建议,帮助用户改进脚本质量。
这段时间频繁出现图床无法访问,之前为了防护攻击,杜老师选购了高防的服务器,奈何除流量攻击外,还有连接数的攻击形式。而杜老师为了保障服务稳定,将连接数设置较低。本篇文章就简单说明下一台服务器最大能支持多少条 TCP 连接。
我们知道在 Linux 中一切皆文件,那么一台服务器最大能打开多少个文件呢?Linux 上能打开最大文件数量受三个参数影响,分别是 fs.file-max/soft nofile/fs.nr_open。
fs.file-max 参数描述了整个系统可以打开最大文件数量。但是 root 用户不会受该参数的限制。
soft nofile 限制单个进程上可以打开的最大文件数。不能针对不同用户配置不同的值。
fs.nr_open 限制单个进程上可以打开的最大文件数。可以针对不同用户配置不同的值。
如果想加大 soft nofile,那么 hard nofile 参数值也需一起调整。如果因为 hard nofile 参数值设置的低,那么 soft nofile 参数的值设置的再高也没有用,实际生效的值会按照二者最低来。
如果增大了 hard nofile,那么 fs.nr_open 也需要跟着一起调整。如果不小心把 hard nofile 的值设置的比 fs.nr_open 还大,那么后果比较严重。会导致该用户无法登录。
我们知道 TCP 连接从根本上看其实就是客户端和服务端在内存中维护的一组内核对象,它们只要能够找到对方,那就算是一条连接。那么一台服务器最大能建立多少条连接呢?
从理论上应该是约等于两百多万亿条连接。
但是实际上由于受其它软硬件的影响,我们一台服务器不可能能建立这么多连接。
如果只以已连接状态的连接来算,那么一台服务器最大可以建立多少连接呢?以一台 4G 内存的服务器为例!
我们知道一条已连接状态的连接大约消耗 3.3K 的内存,那么通过计算可得知一台 4G 内存的服务器,可以建立百万个 TCP 连接。
上面讨论的都是建立连接的理想情况,在现实中如果有频繁的数据收发,那么一台服务器能支撑 1000 连接都算好的了,所以一台服务器能支撑多少连接还要结合具体的场景去分析。抛开业务逻辑单纯的谈并发没有太大实际意义。
我们知道客户端每和服务端建立一个连接便会消耗掉客户端一个端口。一台机器端口数量是 65535,那么是不是说一台客户机最多和一台服务端机器建立 65535 个连接呢?
由 TCP 连接的四元组特性可知,只要四元组里某个元素不同,那就认为这是不同的 TCP 连接。
如果一台客户端仅有一个 IP,服务端也仅有一个 IP 并且仅启动一个程序,监听一个端口的情况下,客户端和这台服务端最大可建立连接条数就是 65535 个。
如一台客户端有多个 IP,服务端仅有一个 IP 并仅启动一个程序,监听一个端口的情况下,一台客户端机器最大能建立的连接条数是 n*65535 个。
如果一台客户端仅有一个 IP,服务端也仅有一个 IP 但是服务端启动多个程序,每个程序监听一个端口的情况下,一台客户端机器最大能建立的连接数量为 65535*m 个
所以,不光是一台服务端可以接收百万个 TCP 连接,一台客户端照样能发出百万个 TCP 连接。
在网络开发中,很多人对一个基础的问题始终没有彻底搞明白,那就是一台机器最多能支撑多少条 TCP 连接。不过由于客户端和服务端对端口使用方式不同,这个问题拆开来理解要容易一些。
注意,这里说的客户端和服务端都只是角色,并不是指某一台具体的机器。如对于我们自己开发的应用程序来说,当它响应客户端请求的时候,它就是服务端。当向 MySQL 请求数据的时候,它又变成了客户端。
增加服务器的内存可以支持更多的 TCP 连接。
优化 CPU 调度可以提高服务器性能,从而支持更多的 TCP 连接。
通过修改系统的文件描述符限制,可以提高服务器支持的 TCP 连接数。
优化网络配置可以提高服务器网络带宽,从而支持更多的 TCP 连接。
好久没更新了,实在不知道写点什么好,就在网上找了一些资源。正文是杜老师整理的 9 个实用 Shell 脚本,供有需要的小伙伴参考。需要注意的是,这些脚本为杜老师收集,并没有测试过,小伙伴们使用之前要先测试。
常来的小伙伴应该发现杜老师说近两周没有更新了,过年期间确实有太多的事情需要处理,各种亲戚走动等等。目前已经处理差不多了,工作上的节奏也已慢慢稳定,近期开始补上之前拖更文章。开头也祝愿来访的小伙伴们龙年大吉,博客访问蒸蒸日上,身体和服务器健健康康,心想和收入皆遂意!
1 |
|
1 | # yum install mailx |
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 | #/bin/bash |
1 | #!/bin/bash |
Fort Firewall 是一款简单而功能丰富的开源 Windows 防火墙工具,当前互联网环境下,很多人依赖于 Windows 防火墙或路由器来维护个人隐私和系统安全。Fort Firewall 提供了对 Windows 防火墙进行简便修改的功能。
Fort Firewall 软件安装和配置非常简单,可在几分钟内完成。在安装过程中,软件会提示用户选择所需保护功能和设置,可按照自己的需求进行配置。
该软件提供了强大的防火墙保护功能,可对入站和出站数据进行监控和过滤,防止未经授权的访问和攻击。
Fort Firewall 软件支持对应用程序进行控制、管理,可限制应用程序的网络访问权限,防止恶意应用程序对计算机造成损害。
该软件提供了实时网络监控功能,可监控网络流量和连接状态,并提供详细统计数据和报告,方便用户进行网络管理、优化。
Fort Firewall 软件的用户界面简洁明了,易于使用。软件提供了多种操作选项和设置,可满足用户的不同需求。
通过免费下载 Fort Firewall 独立 Windows 脱机安装程序,用户可轻松管理防火墙设置。该防火墙工具旨在为用户提供简单而有效防护,具备多项丰富功能。Fort Firewall 的中文版发布使更多用户能够方便地利用其功能,以加强系统的安全性和隐私管理。
Fort Firewall 防火墙是一款小巧优秀的软件,用户可在 Fort Firewall 防火墙快捷的进行网络安全的防护,有效的预防病毒的侵害,同时还可以在 Fort Firewall 防火墙很好的进行网络的管理,保护电脑上的应用程序不被改写,感兴趣的小伙伴快来下载体验吧~
随着互联网技术发展和普及,网络安全问题日益突出。SSL 证书作为一种有效的网络安全解决方案,可以确保数据在传输过程中的保密性和完整性。OpenSSL 是一个开源 SSL 工具包,它可用于生成和管理 SSL 证书。本文详细说明如何使用 OpenSSL 生成 SSL 证书,并提供详细的操作步骤。
1 | openssl genrsa -out key.pem 2048 |
注意:要生成 RSA 密钥对可使用以下命令,这个命令将生成一个 2048 位的 RSA 密钥对,并将其保存在 key.pem
文件中。
1 | openssl dsaparam -out dsa.pem 2048 |
注意:要生成 DSA 密钥对可使用以下命令,这个命令将生成一个 2048 位的 DSA 密钥对,并将其保存在 dsa.pem
文件中。
1 | openssl req -new -key key.pem -out cert.csr |
注意:生成密钥对后下一步是生成证书请求。证书请求文件将包含公钥和其他信息,这些信息被 CA 用于验证证书请求。要生成证书请求可使用上面命令,这个命令生成一个证书请求文件,并将其保存在 cert.csr
文件中。在生成过程中,您需提供一些信息,例如国家代码、城市、组织名称、组织单位名称等等。
1 | openssl x509 -req -in cert.csr -signkey key.pem -out cert.pem |
注意:生成证书请求后最后一步是签署证书。签署证书是将证书请求与密钥对结合起来,生成一个完整的 SSL 证书。要签署证书可使用上面命令,这个命令将生成一个 X.509 格式证书文件,并将其保存在 cert.pem
文件中。
MySQL 预编译语句是一种强大的工具,它不仅提高了应用程序性能,还提升数据安全性。本文将深入探讨 MySQL 预编译语句的原理、优势及如何在实际应用中有效地使用它们。
预编译语句也被称为参数化查询,是一种在数据库层面处理 SQL 语句方法。
它允许开发者在编译时将 SQL 语句中参数值替换为占位符,然后在运行时再将实际的参数值传递给数据库。
预编译语句的工作原理分为两个阶段:编译阶段、执行阶段。
在编译阶段时,MySQL 将 SQL 语句进行语法分析和优化,生成对应执行计划。
在执行阶段是,MySQL 根据执行计划执行 SQL 语句,并将结果返回给客户端。
以此提升执行效率。
提高安全:预编译语句可以防止 SQL 注入攻击,这是一种常见安全漏洞,攻击者可以利用它修改或删除数据库中的数据。通过用预编译语句,开发者可以确保所有 SQL 语句在编译时都已经过验证,从而防止 SQL 的注入攻击。
提升性能:预编译语句可以显著提高应用程序的性能。当相同 SQL 语句被多次执行时,预编译语句可以重用编译后的 SQL 语句,从而节省编译时间。此外,预编译语句还可减少 SQL 解析器的负担,进一步提高 MySQL 性能。
简化代码:使用预编译语句可简化 SQL 语句的编写,特别是在处理动态 SQL 语句时。开发者可将参数值直接传递给预编译语句,而无需手动拼接 SQL 语句,从而降低出错的可能性。
1 | String sql = "SELECT * FROM users WHERE id = ?"; |
注意:在这个示例中,我们首先定义了一个 SQL 语句,然后通过 prepareStatement
方法创建一个预编译语句。紧接着我们通过 setInt
方法将参数值传递给预编译语句,最后执行查询并获取结果集。
MySQL 是一种流行的开源数据库管理系统,广泛应用于各种 Web 应用程序和数据存储中。然而,传统的 MySQL 连接在传输数据时并未加密,可能存在安全风险。启用 SSL 加密连接可确保数据在传输过程中的安全性和完整性。本文详细说明如何在 MySQL 中启用 SSL 加密连接。
SSL 是一种被广泛使用的网络协议,用于在客户端和服务器之间建立安全通信通道。通过使用 SSL 可以确保传输的数据不被第三方窃听或篡改。启用 SSL 加密连接第一步是准备 SSL 证书。SSL 证书由可信证书颁发机构签发,用于验证服务器的身份。您可以从 CA 购买 SSL 证书,也可使用 OpenSSL 等工具自行生成。
在开始启用 SSL 之前,需要确保 MySQL 服务器和客户端已经安装了 SSL 模块。如果您使用的是 MySQL 二进制包,那么可能已经安装了 SSL 模块。如果您使用的是源码包,则需手动编译并安装 SSL 模块。
将 SSL 证书安装到 MySQL 服务器上。通常,您需要将 SSL 证书和私钥文件复制到 MySQL 服务器的指定目录,如 /etc/mysql/ssl
。
编辑 MySQL 服务器配置文件,以启用 SSL 并指定 SSL 证书和私钥文件的路径。
以下是一个 SSL 示例配置:
1 | [mysqld] |
以下是 SSL 配置参数说明:
参数 | 说明 |
---|---|
ssl-ca | CA 证书的路径 |
ssl-cert | 服务器证书的路径 |
ssl-key | 服务器私钥的路径 |
保存 MySQL 配置文件后,重启 MySQL 服务以应用新的配置。在 Linux 系统中可以使用以下命令重启 MySQL 服务:
1 | sudo systemctl restart mysql |
在配置完成后,您可以使用 mysql
命令行工具测试 SSL 连接。要启用 SSL 连接,您可以使用--ssl-ca
, --ssl-cert
和--ssl-key
选项。以下是一个测试 SSL 连接示例:
1 | mysql --host=localhost --port=3306 --user=root --password=your_password --ssl-ca=ca.pem --ssl-cert=server-cert.pem --ssl-key=server-key.pem |
测试 SSL 连接无误后,您可以在 MySQL 服务器中启用 SSL。要启用 SSL,您需要在 my.ini
配置文件中添加以下参数:
1 | require_secure_transport=ON |
要验证 SSL 连接是否成功启用,您可在 MySQL 命令行工具中输入以下命令:
1 | SHOW STATUS LIKE 'Ssl_cipher'; |
如果看到类似以下输出,则表示 SSL 连接已经启用:
1 | +--------------------+--------------------------------------------------------------+ |
启用 MySQL 的 SSL 加密连接可有效提高数据传输的安全性。我们建议您在生产环境中始终启用 SSL,以确保数据安全性。最后分享一个 OpenSSL 创建公私秘钥的示例:
1 | openssl genrsa -out rsa_private.key 2048 |
上一篇杜老师分享了 MySQL 备份脚本,在留言中,有小伙伴推荐了 GoBackup 数据库备份工具。简单了解之后发现这款工具确实不错,简单易用,一次部署后能持续运行数年无需任何维护,存储成本低且安全可靠。
没有依赖关系。
多数据库支持。
支持多种存储类型。
将路径或文件归档到压缩包。
将大型备份文件拆分为多个部分。
作为守护程序运行以按计划进行备份。
用于管理备份的 Web UI。
支持的数据库类型如下:
编号 | 名称 |
---|---|
1 | MySQL |
2 | PostgreSQL |
3 | Redis |
4 | MongoDB |
5 | SQLite |
6 | Microsoft SQL Server |
7 | InfluxDB |
8 | MariaDB |
支持存储类型如下:
编号 | 名称 |
---|---|
1 | 本地 |
2 | FTP |
3 | SFTP |
4 | SCP - Upload via SSH copy |
5 | Amazon S3 |
6 | Aliyun OSS |
7 | Google Cloud Storage |
8 | Azure Blob Storage |
9 | Backblaze B2 Cloud Storage |
10 | Cloudflare R2 |
11 | DigitalOcean Spaces |
12 | QCloud COS |
13 | UCloud US3 |
14 | Qiniu Kodo |
15 | Baidu BOS |
16 | MinIO |
17 | Huawei OBS |
18 | Volcengine TOS |
19 | UpYun |
20 | WebDAV |
备份通知类型如下:
编号 | 名称 |
---|---|
1 | Mail (SMTP) |
2 | Webhook |
3 | Discord |
4 | Slack |
5 | Feishu |
6 | DingTalk |
7 | GitHub (Comment on Issue) |
8 | Telegram |
9 | AWS SES |
10 | Postmark |
11 | SendGrid |
执行下面安装命令,即可使用 gobackup
进行数据库备份:
1 | curl -sSL https://gobackup.github.io/install | sh |
创建并编辑配置文件/etc/gobackup/gobackup.yml
,模板内容如下:
1 | models: |
如需备份,使用下面命令即可:
1 | gobackup perform |
如需命令完整路径,可调用/usr/local/bin/gobackup
。分享一个实例配置文件:
1 | models: |
该工具支持 Web UI,如需启动可执行下面的命令:
1 | gobackup start |
访问 http://IP:2703
就行了:
在之前的文件中杜老师推荐了两款云主机面板,有小伙伴留言说因服务器配置比较低,未使用云主机面板,一直为数据库备份问题困扰。杜老师之前工作的环境也是没有面板,编写过相关的备份脚本,在此文中分享给需要的小伙伴们~
1 | #!/bin/bash |
注意:需要设置环境变量,以便脚本可以找到 MySQL 数据库。在脚本中,添加以上内容。
1 | # Create backup directory |
注意:创建一个目录,以存储备份的文件。在脚本中,添加以上内容。
1 | # Backup database |
注意:使用 mysqldump
命令备份数据库。在脚本中,添加以上内容。
1 | # Check if backup file exists |
注意:检查备份文件是否创建。在脚本中,添加以上内容。
1 | # Compress backup file |
注意:为了节省空间,可使用 gzip
命令压缩备份文件。在脚本中,添加以上内容。
1 | # Remove old backups |
注意:删除旧备份文件以节省空间。在脚本中,添加以上内容。
最后,可使用 crontab
命令设置定时任务,以便脚本定期运行。在终端中输入以下命令:
1 | crontab -e |
在打开的编辑器中,添加以下行的内容,比如以每天凌晨的一点运行脚本。保存并退出编辑器:
1 | 0 1 * * * /path/to/your/backup_script.sh |
除上面脚本外,还有一些开源「有商业版」工具也可实现 MySQL 数据库备份,供需要的小伙伴们参考选择:
名称 | 描述 |
---|---|
mysqldump | mysqldump 是 MySQL 官方提供的备份工具,可将 MySQL 数据库的数据和结构导出为 SQL 文件。 |
XtraBackup | XtraBackup 是一个 Percona 提供的备份工具,可在线备份 MySQL 数据,提供增量备份、压缩功能。 |
Zmanda Recovery Manager | Zmanda Recovery Manager 是一款商业的备份和恢复解决方案,可支持 MySQL 和其它数据库。提供完整备份、增量备份、多种存储介质、自动化备份和恢复等功能。 |
mydumper | mydumper 是一个 MySQL 官方派生的高性能 MySQL 备份工具,支持并行备份,可更快地备份大型 MySQL 数据库。 |
杜老师说友链中不少小伙伴都使用 Hexo 构建博客,其中大多数都选择托管在 Vercel。虽然选择了香港的节点,当访问的速度依旧不太理想。今天推荐加速节点使用方法,欢迎一试!
Vercel 不仅可以部署 Hexo 博客,还能部署很多服务。
如本博的「文坛」就托管在 Vercel 上。
境内选择 Vercel 的站长很多,为了提升访问速度,自然选择了距离大陆最近的香港节点。
选的多了,节点压力自然就会增大,就算 Vercel 属于大平台,对陆带宽依旧有限,必然会出现互相影响的情况。
再加上滥用资源等问题出现,不少小伙伴反馈 Vercel 越来越慢。
今天为 Vercel 用户提供一个加速方案。
Vercel 在大陆周围还有很多节点,其中包含中国台湾、韩国、日本、新加坡等,这些节点的访问延迟在接受范围,且相对香港节点来说带宽更充足。
Vercel 的 Anycast 会自动将节点解析至距离最近的香港服务器,但如果手动解析则太过麻烦。
vercel.cdn.yt-blog.top
是 Fgaoxing 小朋友手动解析,并通过 D 监控检查状态,无法访问时会及时暂停节点。使用时自动解析至附近可用节点,尽可能的选择优质节点。
最终数据会回源至自己的 Vercel,所以不用担心数据安全。这项服务非杜老师提供,所以要注意稳定性。
多年运营网站,接触了很多的控制面板,有国内有国外、有免费有收费。上篇文中有小伙伴留言询问,推荐用宝塔还是 1Panel,今天简单推荐一下。非专业性测评,仅供参考~
杜老师从 03 年开始接触网站搭建,最开始的站点运营在 SaaS 上面「类似于 QQ 空间」
随着对网站了解的深入,再加上 SaaS 平台限制,开始通过虚拟主机等网络资源搭建各类的站点。
直到 09 年杜老师迈入了大学生活,充足的零花钱能够支援起 VPS,于是开始接触各类控制面板。
因为之前适用虚拟主机关系,最开始接触的面板是 cPanel,这是一款国外收费面板,杜老师用的是破解版本,其功能还是非常强大的,可惜占用资源过高「买不起高配 VPS」加上破解版担心数据安全性,于是在网络中寻找各类控制面板。
恰好在大学时有 Linux 相关课程,很长一段时间都是自行部署环境「类似于 LNMP」
那会正好创办了一个工作室,负责学校周边企业网站搭建项目,纯命令的操作界面增加了运维的成本「客户和部分工作室组员不会操作」于是决定通过安装控制面板解决操作问题。
先后接触面板有 wdCP/Easypanel/VestaCP/AMH/AppNode/宝塔/1Panel「还有一些面板记不清了」
到目前为止杜老师所有服务器上,仅在使用宝塔、1Panel 这两款控制面板,恰好有小伙伴问到,在这里就推荐一下,如何选择~
其实宝塔没什么好说的,几乎新接触面板的小伙伴们,都会第一时间选择宝塔,其在国内主机行业的普及率,几乎宣告了其地位。具备模块化的功能,满足网站搭建所有要求,只是插件收费机制,劝退了一些白嫖客,还好本身免费功能,就足以满足网站的运营需求:
宝塔有 Windows/Linux 双平台的面板,不管什么系统都能运行,且支持 ARM 架构。网站相关服务软件版本齐全,简单配置即可上线站点。该夸的都夸了,下面说说它的缺点,其实也不算是缺点。首先是插件收费的问题,当然有些小伙伴会通过和谐手段跳过收费,但还是不可避免的要求在线验证「使用面板前要登录账号」
1Panel 是去年「2023 年」三月份出现的面板,当时杜老师还是在公众号中看到有关它的介绍,第一时间就被这种清新的界面风格吸引了「主要是被宝塔界面审美疲劳」本着尝鲜精神第一时间购买了服务器,安装了 1Panel。可惜的是刚推出的版本功能不太完善,面板运行不太稳定,所以没用多久,杜老师就放弃了使用 1Panel。后来关于 1Panel 的推荐文越来越多了,杜老师想着更新迭代了如此多的版本,功能和稳定性上应该会比较完善。再次体验之后确实没有让杜老师失望,足以在生产环境中使用:
1Panel 使用 Docker 部署各种服务,并且打包了非常多工具。如 WP、Typecho 等,都可一键部署。这就使得每个服务都是独立运行、互不干扰,且更新迭代非常的方便。相比宝塔需要部署各种运行环境、上传代码、各种调试,1Panel 仅需要选择指定应用进行安装即可。总的来说,Docker 真香客墙裂推荐使用这款面板:
闲着没事分析了一下博客的留言,在四万多条留言里,其中有超过一百条说杜老师博客访问速度喜人,想了解下如何做的。今天为小伙伴们分享一下杜老师说的架构,以及优化建议~
网站源码。杜老师使用 Hexo 静态框架,这意味着该网站的所有页面都是预先生成的静态 HTML 文件,而不是动态生成的。访问该网站时,直接获取这些静态网页资源,而不需要再查询数据库。这种做法可以极大减少响应延迟,从而提高网站的加载速度和性能:
图片外链。大量图片托管与去不图床同节点服务器中,方便管理同时,通过自建 CDN 节点加速了访问速度,同时避免与源码站同服务器导致抢占带宽。之所以与去不图床外链地址不同,是因为加入了 WebP 自动转换中间件,节约流量同时,提升加载速度,等同变相增加线路带宽:
评论系统。采用 Artalk 评论系统 Docker 部署方式,其使用 Go 语言构建后端,快速处理数据同时,还使用异步处理的方式,加速评论提交过程。同时采用 Redis 预缓存,Artalk 启动后直接将数据缓存至内存,无需再查询数据库,可以极大减少响应延迟:
开源镜像。全站的 JS 及部分 CSS 资源均引用开源镜像站,感谢 Zkeq 童靴提供公益 CDN 加速平台,既稳定又高速。同时号召小伙伴们不要滥用公益资源,细水长流才能长长久久,境内可用的公益资源越来越少了,希望该平台可长久运营:
主机选择。境外主机的平均带宽比境内的主机高,但境外主机延迟都不低,且数据中心的距离越远,则丢包率越高。故在不考虑带宽情况下,尽量选择境内主机,唯一的限制就是备案了,这是一个硬性门槛,各位站长酌情考量;
程序选择。静态的肯定比动态的框架快,但有些小伙伴偏爱 WordPress/Typecho 这类的框架,可以安装静态生成插件,进而减少数据库的查询次数,变相减少响应延迟。还要注意的是,不要安装太多插件,因为每次加载页面都会遍历所有插件,插件越多遍历时间越久;
服务优化。经调查小伙伴们用的云主机普遍配置较低,建议选择 Nginx 作引擎,可以的话推荐使用编译安装最新版本,这个杜老师做过测试的,编译的更稳定且效率高。MySQL 最好 5.7 版本,8.0+适用分布式,性能提升是通过牺牲配置实现的,主机 6G 以下的无法发挥 8.0+版本的性能优势。PHP 肯定是版本越高越好,但需要程序支持才可以。主机内存充足的情况下可以通过 Redis/Memcached 缓存减少数据库查询次数「优先选 Redis」
站外调用。条件允许的情况下,尽可能的调用站外资源,如 JS/CSS,减少服务器请求数量的同时,还可以避免与网站同服务器导致抢占带宽。墙裂推荐杜老师的去不图床,各大动态博客框架都有对应插件,方便上传管理,自建 CDN 保障稳定及速度。头一次在文章里挂广告推自己的图床,还有一点脸红~
优化云主机的性能确实是一个重要的考虑因素,尤其是在托管大量图片和资源时。很多小伙伴喜欢用某塔面板,很久前杜老师写了一篇《云主机的极致优化》感兴趣的可以看下。虽然文章比较久远,但依旧有参考价值。
只有榨干云主机的性能,才能将性能最大化。关于安装所需的软件和服务,确实需要注意不要过度配置。每个额外的服务或应用程序都可能增加服务器的负担并可能导致性能下降。因此,仔细评估每个应用程序的必要性和其对系统资源影响是很重要的。
比如去不图床安装了 WAF,则每次访问时,先通过 WAF 过滤,才会进行请求处理,经测试会产生 100 毫秒左右的延迟。这是一个值得注意的点,尤其是对于高流量的网站或对性能要求较高的应用。虽然 WAF 可提供安全保护,但这种延迟可能对用户体验产生影响。
如果您感觉杜老师说访问速度不快,那就当杜老师上面的都没说~
Ashampoo WinOptimizer 是由著名的 Ashampoo 出品的,一款集成系统维护、性能提升、安全防护、游戏加速、软件卸载以及文件处理等等多种功能于一身的系统优化防护软件,操作简单而且功能全面,一款软件就能搞定系统优化和安全防护等各种需求。原价 95 元每年,限时免费,快去白嫖~
对系统关键区域进行全面深度的清洁。
查找删除旧 Windows 版本、更新、系统缓存。
更精简更清晰用户界面。
大幅加速、更加高效清洁工具。
基于全新清洁工具模块超快一键优化。
更快的清洁工具高达 75%。
更新开始页面,带有 CPU 速度表和最新硬件的详情。
访问 Windows 许可证密钥。
基于 Windows Aero Snap 的窗口缩放、停靠功能。
所有功能完全性兼容 Windows 11。
针对全新 Windows 11 进行了多种调整,如任务栏、资源管理器等。
Link Checker 和 Context Menu Manager 预览的效果更佳,操作简单。
File Wiper 中新增确认对话框和删除方法选项。
System Information 中新增了对现代多核处理器的支持。
WinOptimizer 25 完全版本注册码免费申请地址如下: