运维相关日志
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 以进行定期更新。
5月31
如将10.0.1.155的/u01/attachments 目录挂载到10.0.1.156对应的/u01/attachments 目录下。
使用以下命令:
mount 10.0.1.155:/u01/attachments /u01/attachments
4月21
IS浏览器无法读取mp4视频怎么办?针对这个问题,今天总结了这篇文章,希望能帮助更多想解决这个问题的朋友找到更加简单易行的办法。

IIS7以上的不支持mp4的时候提示如下报错

有时候会报404找不到文件,可视频文件明明在,就是访问不到。
由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

原因:因为服务器IIS默认不支持mp4等一些文件类型,只要在IIS上添加MIME 类型即可。

iis6.0版本

打开iis管理器找到你要设置的站点,右键属性,找到http头,就可以看到mime类型的按钮了,我们点击进去
比如你要添加mp4的mime我们就输入,扩展名.mp4  类型video/mp4,然后点击确人完成后测试下

iis7.5设置

找到你要设置的站点,点击功能视图,找到MIME类型选项
进入mime类型功能之后点击右上角的添加按钮添加扩展名.mp4  类型video/mp4,然后点击确人完成后测试下


常见的mime类型后续更新Mime类型扩展名意义

application/msexcel*.xls *.xlaMicrosoft Excel Dateien

application/mshelp*.hlp *.chmMicrosoft Windows Hilfe Dateien

application/mspowerpoint*.ppt *.ppz *.pps *.potMicrosoft Powerpoint Dateien

application/msword*.doc *.dotMicrosoft Word Dateien

application/octet-stream*.exeexe

video/mp4*.mp4MP4

application/pdf*.pdfAdobe PDF-Dateien

application/postscript*.ai *.eps *.psAdobe Postscript-Dateien

application/rtf*.rtfMicrosoft RTF-Dateien

application/x-httpd-php*.php *.phtmlPHP-Dateien

application/x-javascript*.jsserverseitige JavaScript-Dateien

application/x-shockwave-flash*.swf *.cabFlash Shockwave-Dateien

application/zip*.zipZIP-Archivdateien

audio/basic*.au *.sndSound-Dateien

audio/mpeg*.mp3MPEG-Dateien

audio/x-midi*.mid *.midiMIDI-Dateien

audio/x-mpeg*.mp2MPEG-Dateien

audio/x-wav*.wavWav-Dateien

image/gif*.gifGIF-Dateien

image/jpeg*.jpeg *.jpg *.jpeJPEG-Dateien

image/x-windowdump*.xwdX-Windows Dump

text/css*.cssCSS Stylesheet-Dateien

text/html*.htm *.html *.shtml-Dateien

text/javascript*.jsJavaScript-Dateien

text/plain*.txtreine Textdateien

video/mpeg*.mpeg *.mpg *.mpeMPEG-Dateien

video/vnd.rn-realvideo*.rmvbrealplay-Dateien

video/quicktime*.qt *.movQuicktime-Dateien

video/vnd.vivo*viv *.vivoVivo-Dateien
12月25
一. 错误信息
先上阿里云上的报警信息。有个最大的问题是:top命令查看自己服务器CPU运行情况,会发现kdevtmpfsi的进程,CPU使用率为100%,第一次删除干净了kdevtmpfsi程序,没曾想几分钟以后,就出现了第二个警告。使用netstat -antp命令查看端口使用情况,又出现了kdevtmpfsi如图所示

netstat -antp

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

二.解决方法
一般出现kdevtmpfsi病毒都会伴有定时任务,就会出现我上面说的处理一次后,又会继续出现,反反复复处理不干净。

1.首先停掉kdevtmpfsi的程序
ps aux
找到kdevtmpfsi的进程

删除掉与kdevtmpfsi相关的进程
点击在新窗口中浏览此图片
kill -9 20267
kill -9 20367

2.删除Linux下的异常定时任务
crontab -l 查看定时任务
crontab -r 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除

如下图所示点击在新窗口中浏览此图片

3.结束kdevtmpfsi进程及端口占用
netstat -antp

找到kdevtmpfsi端口 我这里是28244 图中可以看到。不要直接杀掉,因为有守护线程还会重启。

ps -aux | grep kinsing
ps -aux | grep kdevtmpfsi



kill -9 28244
kill -9 28829

4.删除掉kdevtmpfsi的相关文件
cd  /tmp
ls
rm -rf kdevtmpfsi
rm -rf /var/tmp/kinsing  
最后自己可以再检查一下是否还有kdevtmpfsi的相关文件,有的话就继续删除
find / -name kdevtmpfsi
find / -name kinsing

三.怎么预防处理这个病毒
最根本的原因可能是自己的redis 6379配置不当导致的。大家可以参考阿里云的Redis服务安全加固
当然也可能是弱密码,被强行扫描了,建议定期更换系统密码。

也可以使用下面工具清除
#! /bin/sh
step=1
for (( i = 0; i < 60; i = (i+step) )); do
                date >> /data/shell/clear_date_log.txt
                KID=$(ps -ef |grep kdevtmpfsi |grep -w 'kdevtmpfsi'|grep -v 'grep'|awk '{print $2}')
                if [ $KID];then #

                                                              echo "[info]kdevtmpfsiIDΪ:$KID" >> /data/shell/clear_date_log.txt
                kill -9 $KID
                rm -f /tmp/kdevtmpfsi
    fi
                sleep $step
done

exit 0

复制上面代码另存为kill_kdevtmpfsi.sh
12月17
一、执行程序切换后台
执行java -jar xxx.jar & 或者nohup java -jar xxxx.jar &。nohup不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系。
ctrl+z退出到控制台,执行 bg
执行exit
完成以上3步,退出SHELL后,jar服务一直在后台运行。

nohup java -jar XXX.jar >log.out &;
nohup是保证ssh连接关闭后,jar任然运行的关键,& 相当于后台运行,你后面还可以输入命令, >log.out  是输出日志的地方
ps aux|grep XXX.jar 查看某jar包的运行的进程号

二、结束进程
通过执行ps auxwww &#124; grep XXX.jar通过查找进程关键字 找到进程PID。
执行kill -9 {PID} 杀死进程PID数字结束进程。
12月9
有个同事说使用Minio时发现返回的url访问直接访问不到,需要登录并且有有效期生成的文件地址,下面主要讲下在Minio中通过程序上传后的文件,返回的地址无法对外访问的问题。

MinioClient minioClient = new MinioClient(minio_url, minio_name, minio_pass);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String ymd = sdf.format(new Date());
        String objectName = ymd + "/" + UUID.randomUUID().toString() + (suffix != null ? suffix : "");
        minioClient.putObject(bucketName, objectName, inputStream, contentType);
        String url = minioClient.getObjectUrl(bucketName, objectName);
这里程序得到的地址,如果你想在浏览器直接访问是不行的。如果想要访问,需要对Minio进行一些设置。

Minio的称之为policy 即桶策略。如果想要直接访问图片,需要设置Bucket的访问策略。

官方文档 https://docs.minio.io/cn/minio-client-complete-guide.html#mb

下面介绍两种方法来实现永久访问,两种方法效果是一样的。

一、通过管理界面实现

登录后台管理界面,在右下角有个红色的加号图标,点击它,然后会看到下面的效果

点击create bucket ,输入要创建的bucket,如test

回车就可创建成功。

创建成功之后对bucket进行编辑。在页面的右上角。找到刚刚创建的test bucket。

点击那三个点,选择Edit policy ,会弹出下面的弹窗。

点击在新窗口中浏览此图片
在Prefix中输入* ,即允许所有访问。右边的选项选择 Read and write。
点击在新窗口中浏览此图片

然后点击Add 按钮就可以了。

-----------------------------------------------------------------------------------------------------------------------------------------

二、通过Minio提供的客户端来实现

Minio单独提供了一个客户端来设置Minio的服务端。

1、下载客户端程序

下载地址 https://dl.minio.io/client/mc/release/windows-amd64/mc.exe

2、启动一个cmd窗口,进入mc.exe的目录

输入 .\mc.exe --h 可以查看mc.exe的命令帮助。

3、设置服务端

使用 minio client 将自己的 minio server 添加到 mc 的配置管理,命令如下

.\mc.exe config host add minio http://192.168.50.179:9000 3K2287Q20OW3HWQ2FJXJ L0eTMaBzVQwUgbeuo05f+qmSA
buZiWt4yZfDzrMv
Added `minio` successfully.
此命令将 http://192.168.50.179:9000 取一个别名 minio ,并交给mc进行配置管理。

4、查看minio中的桶,命令

.\mc.exe ls minio
[2021-12-08 20:34:25 CST]     0 B asiatrip\
[2021-12-08 21:15:55 CST]     0 B tonnyyy\
[2021-12-08 20:54:28 CST]     0 B xzspfj\
5、设置桶的访问策略,命令

.\mc.exe policy public minio/xzspfj/20211208/
Access permission for `minio/xzspfj/20211208/` is set to `public`
通过以上步骤,图片就可以直接通过地址进行访问了。
12月7
平时我们经常查看容器的日志,命令如下:

docker logs -f 容器名或者容器id

随着时间的推移,日志文件越来越大,那么我们该如何清理日志文件呢?下面来讲解清理的步骤:

1.进入docker容器目录:

cd /var/lib/docker/containers/


2.查看容器的id,获取容器id,容器id就是容器目录名字

docker ps -a


3.进入容器,删除以log结尾的文件就是日志文件了,删除即可:

rm -rf 容器id.log


4.重启容器

docker restart 容器名或者容器id

打完收工!
12月7
在Java后面添加如下参数即可
9520为远程调试端口
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9520 -jar ./leo-barcode.jar
12月6
报错信息:
java.io.IOException: No space left on deviceat java.io.FileOutputStream.writeBytes(Native Method)at java.io.FileOutputStream.write(FileOutputStream.java:282)at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)

服务器磁盘不足,df -h 一下,发现tmpfs挂载的tmp文件夹只有2M剩下的只有几K了,在想应该是这个问题,于是将tmp目录调大一点,下面调到2g,输入以下命令:
mount -t tmpfs  -o size=2g   tmpfs /tmp

重新上传文件,发现成功上传,问题解决。
12月1
目录结构: tomcat/logs目录.

1.实时查看当前项目的运行日志,进入logs目录,
tail -f catalina.out

扩展: ( 退出 )

ctrl + c



2.查询某个时间段的日志?
首先, 日志中要有程序记录的时间,然后在logs目录下执行此命令: ( 把这段时间的日志输出到新的文件中。 )

sed -n '/2021-12-01 11:30:/,/2021-12-01 11:40:/p' catalina.out > new.out

解析: ( 命令详解 )

sed -n '/年份-月份-日期 小时:分钟:/,/年份-月份-日期 小时:分钟:/p' catalina.out > 新的的文件名称.out


注意:
       若catalina.out文件比较大, 可以就会比较慢, 等待一会就可以了!


3.扩展一个<清空>日志文件的命令? ( 你可能会用到 )
echo ' ' > catalina.out

why?
       若日志文件过大, 可能会导致服务器磁盘空间满了, 有些接口可能不能正常访问. ( 此时就需要解决! )
       通过这种方法,磁盘空间可以立即释放,进程可以继续向文件写入日志,但不必重启服务器。
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]