欢迎来到Heck's Blog,专业承接拿站、企业建站、仿站、网上商城架构、门户网站搭建、空间域名注册、软件定制等项目。关注网络安全,因为专注,所以专业,懂得放弃,才能收获。有事请发邮件至i@heckjj.com,请记住本站网址:http://www.heckjj.com,多谢。
7月15
众所周知,CentOS 8 Linux 已于2021年底停止使用且不受社区支持。取而代之的是滚动版本 CentOS Stream,作为 RHEL 的上游分支,CentOS Stream 将持续排查漏洞,让上游版本更加稳定和安全。

但是,运行 CentOS 7 的服务器不会受到影响。他们与 RHEL 7 生命周期并行更新。RHEL 7 将在 2024 年结束其最后一个维护周期。

但是,如果您使用的是 CentOS 8,那么 2022 年有哪些替代方案?不幸的是,即使您找到了,服务器应用程序迁移也将是另一个挑战。然而,这里有一些选项可以在 2022 年取代 CentOS。

CentOS 8 Linux 的最佳替代品

1、Ubuntu/Debian
当然,每当我们谈论替代 CentOS 的服务器操作系统替代品时,Ubuntu LTS 版本将是第一选择。此外,Ubuntu OS 的使用和处理比 CentOS 容易得多,至少对我来说是这样。APT 包管理器以相当快的方式安装包。

另一方面,Ubuntu 拥有庞大的社区,提供在线教程和指南,用户可以在这些社区的帮助下自行解决各种问题和障碍,同时在 Ubuntu 或 Debian 上设置基于服务器的应用程序。

Ubuntu 当前长期支持的版本是 22.04 LTS,开发人员将在公共支持下支持到 2025 年,如果您想将其进一步扩展到 2030 年,则可以使用付费选项。

Ubuntu 每两年发布一个 LTS 版本,而标准版本是每六个月发布一次,支持期限为九个月。

2、Oracle linux
与具有 RPM 包管理的 CentOS 8 Linux 最接近的替代选项是 Oracle Enterprise。它也是免费和开源的,但为了获得支持,用户必须付费,否则,其余的一切都可以像 CentOS 一样免费使用。Oracle Linux 是从 RHEL 的源代码编译而来的,因此可以说它是 Red Hat Linux 的克隆,并且还提供了早期的安全更新。作为一个类似的基础,用户可以毫不费力地将他们的应用程序从 CentOS 8 迁移到 Oracle Linux 上的最新版本。

3、OpenSUSE

OpenSUSE 是一个一直被低估的多功能 Linux 操作系统,其中一个原因是与 Ubuntu 和 CentOS 相比,社区不那么广泛,以及在线教程和指南数量。它由 SUSE Software Solutions Germany GmbH 提供支持。默认情况下,OpenSUSE 使用 Delta RPM 和 ZYpp 包管理作为 SUSE 上的命令行包管理器。

它带有三个包管理工具,ZYpp 作为标准命令行工具,YaST 用于前端,RPM 用于更底层。

OpenSUSE 的次要版本每 12 个月发布一次,而主要版本大约在36-48 个月之后发布,这个发布周期类似于 Ubuntu。

4、AlmaLinux – CloudLinux 操作系统

基于 CentOS 操作系统且主要由托管服务提供商或 VPS 用户使用的 CloudLinux 操作系统宣布:

我们计划发布一个免费的、开源的、社区驱动的、1:1 二进制兼容的 RHEL® 8 分支(以及未来的版本)……我们将创建一个独立的、完全免费的、完全兼容二进制的操作系统使用 RHEL® 8(和未来版本)。我们将赞助此类操作系统的开发和维护。我们将努力建立一个围绕操作系统的社区,由社区成员组成管理委员会。

尽管如此,使用基于 CentOS 8 Linux 托管解决方案的 CloudLinux 的用户不必担心,因为他们将在 2029 年之前获得稳定且经过良好测试的更新。

5、Rocky Linux

在 RedHat 宣布放弃 CentOS 8 LTS 版本之后,立即有消息称 CentOS 的联合创始人 Gregory Kurtzer 将推出另一个基于 RHEL 软件包的 Linux 分支,称为“ Rocky Linux”,就像他对 CentOS 所做的那样。我希望这一次他不会像之前那样把同样的东西卖给 RedHat 或 IBM。Rocky Linux 是一种开源企业操作系统,旨在与 Red Hat Enterprise Linux 100% 兼容。

Rocky Linux 通过定期更新和 10 年的支持生命周期提供稳定的稳定性,所有这些都是免费的。
社区支持: 社区、赞助商和合作伙伴已投入长期承诺,以确保项目留在社区中。
轻松迁移: 毫不费力地从其他 Enterprise Linux 发行版迁移。我们免费提供易于使用的迁移脚本。

6、VzLinux

Virtuozzo 仅在内部使用 VzLinux 作为容器和虚拟机的客户操作系统。因此,由于它不是从外部分发的,因此这就是我们从未听说过 VzLinux 的原因。它也是基于 RedHat 的 Linux,如 Alma 和 Rocky Linux。

VzLinux 是一个免费的多用途发行版,经过优化,可在裸机服务器、虚拟机或容器上运行。它旨在支持密集的企业级应用程序和工作负载。Virtuozzo 已经准备好从 CentOS 迁移过程“无需停机”的发行版,并且它以 RHEL 的更新速度以及与 CentOS 相比的速度而自豪。

有兴趣试用 VzLinux ISO 的人可以访问Virtuozzo 提供的 VzLinux 官方下载页面或 repo。

7、Springdale Linux

Springdale Linux 以前称为 PUIAS Linux 是另一种 Linux 操作系统。它是由可用于 Red Hat Enterprise Linux 的源代码包构建的。除了官方的上游包,它还提供了其他几个附加包的存储库。该版本由美国高等研究院和普林斯顿大学维护。

作为管理员,您可以在您的服务器或桌面上试用它,更新不会像 CentOS 一样成为问题,它也依赖于其上游 RHEL Linux。需要注意的是,这个项目比 CentOS 更老。

总结

如果您使用的是 Amazon Cloud,那么 Amazon Linux 就在那里,而 GCP 提供了所有主要选项。另一方面,CentOS 7直到2024年才会到期,因此无需急于寻找和切换到 CentOS 替代品,尤其是服务器。当然,在 4 年内我们也将有更多可靠和稳定的选择来替代 CentOS 7,直到现在,使用 CentOS 6 的用户仍然可以考虑采用 Ubuntu、Debian、Oracle 或 OpenSUSE。尽管如此,没有什么大问题的桌面用户可以简单地将 CentOS 8 Linux 存储库迁移到 CentOS Stream 以进行定期更新。
7月6
需求分析

1、将excel数据导入数据库中;
2、利用uuid生成的32随机数作主键;
3、利用CURRENT_TIMESTAMP()生成时间;

具体操作

1、根据需要创建表结构
2、将excel数据导入刚创建的表中
注意: 为了能够将excel中的数据导入数据库中,创建数据库表时,暂时将主键去掉,只保留主键字段。
3、在id中生成uuid

UPDATE 表名 SET 列名= UUID();

注意:生成id时,不要直接将uuid()产生的序列中的’’-“通过Replace方法去掉,不然生成的id的将全部相同。
4、将生成的id中的”-"替换掉

UPDATE 表名 SET 列名 = (SELECT REPLACE(对应列名,'-',''));

5、生成时间

UPDATE 表名 SET 列名1 = CURRENT_TIMESTAMP();
7月4

当我们安装了redis服务后,发现在其配置文件redis.windows.conf(或redis.conf)设置了密码:requirepass ******

但是打开redis-cli.exe后输入命令config get requirepass发现:

这说明配置文件中密码设置后没有生效。

原因:问题在于我们启动redis服务时是直接在其安装目录中双击redis-server.exe启动的,这样启动的结果是,配置文件不会指定,此时redis并不会自动使用安装目录下的redis.windows.conf(或redis.conf)文件

红线框住的的提示说的很明确“ Warning: no config file specified”没有指定配置文件

解决方法:

法1:实际上我们直接在安装目录中启动redis服务时错误的,正确的方式是打开“运行”,键入“cmd”切到安装目录后输出redis-server.exe redis.windows.conf,回车,就可以了。

法2:在redis安装目录下新建文件startup.bat后,右击“编辑”,或者先用记事本建立该文件,再把扩展名改一下,文件里面写上:redis-server.exe redis.windows.conf。保存,以后再运行就直接运行这个文件,不要再直接运行redis-server.exe了,就可以了。

6月18
一、问题原因
2、原因:后台传过去的json数据用了阿里的fastjson转换,但是解析list中引用的数据时,jvm会自动将其处理为“循环引用”,因此,也就出现了问题{" r e f " : " ref":" ref":".data[0].children[0]"},数据以引用的方式传给前台,前台却无法解析到那段引用的数据。

循环引用就是:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用。

二、解决方案
JSON.toJSONString(list,SerializerFeature.DisableCircularReferenceDetect)

用这种转换方式,把list替换成你要转换的数据就可以了。
6月16
公司windows服务器上部署了很多个内部的java应用,有几个应用做成了服务,发现服务停止了,但是应用还在跑的,可能失控了,不受服务管控了,但是又不能杀掉所有java进程,因为有其他应用在用的,于是想知道正在运行的Java进程属于那个服务 详细信息是什么?

点击在新窗口中浏览此图片
我们可以使用以下windows命令查看java进程信息,可以显示出java命令行参数,查看tomcat等应用的位置

wmic process where caption="java.exe" get processid,caption,commandline /value

点击在新窗口中浏览此图片

3.关于如何查看端口是否被占用,可以根据以下步骤来操作:

3.1开始---->运行---->cmd,或者是window+R组合键,调出命令窗口;

点击在新窗口中浏览此图片
3.2输入命令:netstat -ano,列出所有端口的情况。在列表中观察被占用的端口,比如是49157,首先找到它。

点击在新窗口中浏览此图片

3.3查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720。

点击在新窗口中浏览此图片

3.4继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe
点击在新窗口中浏览此图片
6月16
gyp ERR! find Python
gyp ERR! find Python Python is not set from command line or npm configuration
gyp ERR! find Python Python is not set from environment variable PYTHON
gyp ERR! find Python checking if "python3" can be used
gyp ERR! find Python - "python3" is not in PATH or produced an error
gyp ERR! find Python checking if "python" can be used
gyp ERR! find Python - "python" is not in PATH or produced an error
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python39\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python39\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python39\python.exe
gyp ERR! find Python - "C:\Program Files\Python39\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python39-32\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python39-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python39-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python39-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python39-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python39-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python38\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python38\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python38\python.exe
gyp ERR! find Python - "C:\Program Files\Python38\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python38-32\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python38-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python38-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python38-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python38-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python38-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python37\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python37\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python37\python.exe
gyp ERR! find Python - "C:\Program Files\Python37\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python37-32\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python37-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python37-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python37-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python37-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python37-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python36\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python36\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python36\python.exe
gyp ERR! find Python - "C:\Program Files\Python36\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\Heck\AppData\Local\Programs\Python\Python36-32\python.exe
gyp ERR! find Python - "C:\Users\Heck\AppData\Local\Programs\Python\Python36-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python36-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python36-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python36-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python36-32\python.exe" could not be run
gyp ERR! find Python checking if the py launcher can be used to find Python 3
gyp ERR! find Python - "py.exe" is not in PATH or produced an error
gyp ERR! find Python
gyp ERR! find Python **********************************************************
gyp ERR! find Python You need to install the latest version of Python.
gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
gyp ERR! find Python you can try one of the following options:
gyp ERR! find Python - Use the switch --python="C:\Path\To\python.exe"
gyp ERR! find Python   (accepted by both node-gyp and npm)
gyp ERR! find Python - Set the environment variable PYTHON
gyp ERR! find Python - Set the npm configuration variable python:
gyp ERR! find Python   npm config set python "C:\Path\To\python.exe"
gyp ERR! find Python For more information consult the documentation at:
gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
gyp ERR! find Python **********************************************************
gyp ERR! find Python
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Python installation to use
gyp ERR! stack     at PythonFinder.fail (D:\ITL\source\wechat\node_modules\node-gyp\lib\find-python.js:330:47)
gyp ERR! stack     at PythonFinder.runChecks (D:\ITL\source\wechat\node_modules\node-gyp\lib\find-python.js:159:21)
gyp ERR! stack     at PythonFinder.<anonymous> (D:\ITL\source\wechat\node_modules\node-gyp\lib\find-python.js:228:18)
gyp ERR! stack     at PythonFinder.execFileCallback (D:\ITL\source\wechat\node_modules\node-gyp\lib\find-python.js:294:16)
gyp ERR! stack     at exithandler (child_process.js:296:5)
gyp ERR! stack     at ChildProcess.errorhandler (child_process.js:308:5)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:238:12)
gyp ERR! stack     at onErrorNT (internal/child_process.js:407:16)
gyp ERR! stack     at process._tickCallback (internal/process/next_tick.js:63:19)
gyp ERR! System Windows_NT 10.0.10586

解决方案:
1. 管理员权限打开cmd,在项目目录下执行:npm install --global --production windows-build-tools

安装成功会在C:\Users\**(电脑用户名)  目录下创建.windows-build-tools文件夹

2. 必须配置环境变量,将C:\Users\**\.windows-build-tools\python27地址添加到path中

3. 重启VSCode或者cmd窗口,我当时打开了2个VSCode窗口,只重启了一个,结果环境变量地址没有生效,又折腾了好久,一定要把所有VSCode窗口关闭重启。

也可以在python官网下载安装,还是要配置环境变量

在npm install安装期间,电脑又提示了安装.net framework4.8
6月16
最近这段时间接手一个旧项目,拉下代码来,点运行Run和调试Debug都没有任何反应,点击之后状态栏没有进度,反而启动和调试按钮变成灰色不可点击的状态,并且console输出控制台没有任何输出。

启动没有状态,无法启动。


Bug描述:

在idea中启动不了springboot启动类,点击运行之后也按钮就变成了灰色的,debug也不行,什么反应都没有,也不提示也不报错,网上查了好多,都不管用。(控制台都不会弹出来,点了和没有点一样)

解决bug:

打开idea,然后点击菜单File->settings->plugins,最后搜索插件找到Groovy这个然后把这个插件后面框中的对勾去掉就可有了,也不知道为啥。

点击在新窗口中浏览此图片

然后重启IDEA

问题解决!!!

6月15
问题现象一:
下载文件达到1min时,报连504 Gateway Time-out接超时。

解决方法:
nginx反向代理默认是60s超时,大文件下载超过了阀值,可以指定超时时间:      

        location /api {
                        proxy_pass http://127.0.0.1:8081;
                        # nginx跟后端服务器连接超时时间
                        proxy_connect_timeout 300;

                        # 后端服务器数据回传超时时间
                        proxy_send_timeout 300;

                        # 连接成功后,后端服务器响应超时时间
                        proxy_read_timeout 300;
                        proxy_set_header Host $host:$server_port;
                }

问题现象二:
通过nginx反向代理下载失败,但是直接通过端口下载正常。

解决方法:
可能是nginx缓存区限制问题,禁用缓存即可。
proxy_pass http://127.0.0.1:5002;
proxy_redirect default;
proxy_buffering off;
6月14
1.在gitlab上找到你要回滚的那个版本 ,复制那次提交的id

点击在新窗口中浏览此图片

2.输入指令,回滚到指定的版本

git reset --hard 复制的id


3.推送到远端(强推)

git push -f origin master
5月31
如将10.0.1.155的/u01/attachments 目录挂载到10.0.1.156对应的/u01/attachments 目录下。
使用以下命令:
mount 10.0.1.155:/u01/attachments /u01/attachments
分页: 1/60 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]