一般服务器被挖矿后,CPU会占用到百分百。可以通过top命令,查看cpu使用率。

以下是所经历过的挖矿病毒及解决方法。

挖矿进程:ld-linux-x86-64

进程信息

使用top命令查看进程信息。cpu占用400,是挖矿程序。pid是21980,后边需要用到。
paste image

解决方法

  1. 删掉定时任务

    1
    2
    # 编辑定时任务
    crontab -e

    paste image
    光标移动到这一行:* * * * * /usr/lib/updated/upd >/dev/null 2>&1,按dd删掉这一行并保存。

  2. 如果删除提示权限不足
    paste image
    可能是文件被设置为隐藏、或不可编辑。查看文件属性:lsattr /var/spool/cron/root

    • 如果结果中有i,执行:chattr -i /var/spool/cron/root
    • 如果结果中有a,执行:chattr -a /var/spool/cron/root;

    再执行删除定时任务。

  3. 杀掉进程

    1
    kill -9 21980

挖矿进程:kdevtmpfsi

进程信息

使用top命令查看进程信息。cpu占用近400,是挖矿程序。
paste image

问题排查

  1. 根据进程名查询进程所在的目录

    1
    find / -name kdevtmpfsi

    paste image
    根据目录名看出来该进程在Docker容器中。

  2. 根据overaly2的id搜索容器name
    把双引号中的内容替换成上一步中搜索的结果,选择带merged的那条记录。

    1
    docker ps -q | xargs docker inspect --format '{{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep "f01d21084945ef8b389fc9f1d6b26444b11fcaf8eaf4616ba5ae6b6e8d18621e"

    paste image

  3. 根据容器name查看容器详细
    这个容器不是我们的业务容器,猜测是挖矿容器。

    1
    2
    3
    4
    5
    6
    7
    8
    # 进入容器
    docker exec -it frosty_antonelli /bin/bash

    # 在容器内查看/tmp目录
    ls /tmp

    # 在容器内查看定时任务
    crontab -l

    paste image
    tmp目录包含kdevtmpfsi可执行程序,并且包含定时任务,断定是挖矿容器。

解决方法

  1. 删除Docker中有问题的容器;
    1
    docker rm -f frosty_antonelli
  2. 剩下的参考【挖矿进程:ld-linux-x86-64】的解决方法。

创建仓库

点击齿轮图标 -> Create repository。
paste image

创建快照版仓库

选择:maven2(hosted) -> 填写Name:xxx -> 选择Version policy:Snapshot -> 选择Deployment policy:Allow redeploy。

阅读全文 »

GitLab使用Docker安装,挂载出三个目录到主机磁盘。由于主机GitLab数据所在的磁盘满了,要迁移GitLab到其他服务器上。

环境描述

服务器 描述
A服务器 使用Docker安装了GitLab,并挂在出三个数据目录到主机
GitLab数据所在的磁盘满了
B服务器 新GitLab服务器
阅读全文 »

Q. 服务器异常退出后,启动容器报错:

1
OCI runtime create failed: container with id exists xxx

A. 删除该容器旧的运行文件,然后重新启动容器:

1
2
3
4
5
# 删除文件
rm -rf /var/run/docker/runtime-runc/moby/xxx

# 重启
docker restart xxx

使用Docker和Docker-Compose安装Maven私服Nexus3。

安装Docker和Docker-Compose

  • 安装Docker

    1
    curl -fsSL get.docker.com -o get-docker.sh && sudo sh get-docker.sh --mirror Aliyun && sudo systemctl start docker && sudo systemctl enable docker
  • 安装Docker-Compose

    1
    sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose

创建docker-compose文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 创建目录
mkdir -p ~/soft/docker/nexus

# 创建docker-compose文件
echo 'version: "3.7"
services:
nexus:
restart: "no"
image: sonatype/nexus3
container_name: nexus
ports:
- 8666:8081
volumes:
- ~/docker/nexus/nexus-data:/nexus-data' >> ~/soft/docker/nexus/docker-compose.yaml
阅读全文 »

本文介绍性能测试工具JMeter及JMeter的使用。

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。– 百度百科https://baike.baidu.com/item/Jmeter/3104456

阅读全文 »

问题:
以前一直正常使用Navicat连接Oracle,今天突然报错ORA-24454: client host name is not set,如图:
paste image

解决办法:

  1. 查看hostname,终端执行:hostname
  2. 设置hosts文件,终端执行:sudo /bin/bash -c "echo '127.0.1.1 [上一步查出来的hostname]' >> /etc/hosts"
  3. 再尝试使用Navicat连接Oracle,可以正常连接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<project>
<name>xxx-xxx-xxx</name>
<description>Xxx xxx xxx</description>
<url>https://duanjw.com</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
</license>
</licenses>
<developers>
<developer>
<name>duanjw</name>
<email>554343346@qq.com</email>
<organization>Personal</organization>
<organizationUrl>https://duanjw.com</organizationUrl>
</developer>
</developers>
<scm>
<url>https://github.com/duan847/spring-boot-learning</url>
</scm>

<properties>
<!--设置编码-->
<encoding>utf-8</encoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!--xxx版本-->
<xxx.version>x.y.z</xxx.version>
</properties>
</project>

使用Idea开发工具创建Maven父子工程,以创建Spring Boot学习项目为示例。

软件环境:
Idea:2020.2
Maven:Idea自带的Maven

阅读全文 »