记录一次ubuntu服务器CPU占用100%的问题排查过程

最近在ubuntu服务器上跑深度学习的训练程序,运行一段时间程序就会被kill,给实验带来了不少麻烦。作为linux小白,着实是被这个问题困扰了一段时间,现将最后成功的方法记录下来。

关于这类问题,最常见的原因是系统内存不足,触发了OOM killer。于是先用htop查看系统的资源使用情况:

在这里插入图片描述

发现系统内存仍然是充足的,但是所有CPU核心都是100%占用。所以应该不是内存不足的问题,而是因为CPU爆满了。CPU主要是被一批“python”进程占用了。尽管这批进程的启动命令都显示为“python”,但没有参数,看起来不像正常的程序。用kill -9命令杀死这些进程,发现过一段时间又会重新出现。由于服务器之前中过挖矿病毒,所以这次也怀疑是中了挖矿病毒。

用 “ll /proc/进程ID” 查看进程信息(由于中间曾经杀死过进程,这里截的两张图的进程ID号不同):

在这里插入图片描述

发现进程是由/usr/bin/-bash文件启动的,且该文件已被删除。可以猜测这个文件只是一个临时文件,不是真正的病毒文件,这个路径可能也是临时的,真正的病毒文件可能每次会随机选择一个目录生成临时文件,启动进程后再把临时文件删除,以便隐藏自己。

由于这些进程被杀死后又会重新出现,所以怀疑其背后还有守护进程或者

<think>好的,我现在需要回答用户关于Ubuntu服务器版常用指令和操作指南的问题。首先,用户提到了系统级指令,要求生成相关问题,并且回答需要结构清晰,引用相关站内内容。我需要确保所有数学公式用正确格式,但这里可能不涉及数学内容,所以重点在命令和指南。 首先,我需要回忆Ubuntu服务器常用的命令。常见的包括系统更新、用户管理、权限设置、网络配置、服务管理、日志查看、软件包安装等。然后根据用户提供的引用,引用[1]和引用[2]是关于Ubuntu服务器操作命令和初步设置的,所以应该引用这些内容。 用户希望得到操作指南,所以需要分步骤讲解。比如系统更新、用户管理、软件安装等部分。每个部分给出命令示例,并确保代码块格式正确。同时,生成相关问题,可能需要考虑用户后续可能的问题,比如如何安装特定软件、如何优化服务器等。 需要注意回答结构清晰,分点说明,使用中文,并且每个引用的地方加上引用标识。例如在提到系统更新时引用[^2],在命令概览引用[^1]。 现在开始组织内容: 1. 系统更新与维护:包括apt update/upgrade,引用提到的更新软件包。 2. 用户与权限管理:adduser, usermod, chmod/chown。 3. 网络配置:ifconfig/ip addr,netstat/ss,ufw防火墙。 4. 服务管理:systemctl命令,引用[^1]中的服务管理部分。 5. 日志查看:journalctl和tail。 6. 软件包管理:apt install/remove,snap安装。 7. 文件操作:基本命令如ls, cd, cp等。 8. 进程管理:ps, top, kill。 9. SSH远程连接:安装和连接命令。 10. 定时任务:crontab的使用。 然后生成相关问题,可能涉及优化、安全、故障排除、备份等。 需要检查是否每个引用的地方都正确添加了脚注,并且没有遗漏重要命令。确保回答符合用户要求的结构,代码块使用正确格式,例如命令示例用反引号包裹,并标注语言类型如bash。</think>### Ubuntu 服务器版常用指令与操作指南 #### 1. 系统更新与维护 - **更新软件包列表** ```bash sudo apt update ``` - **升级已安装的软件包** ```bash sudo apt upgrade ``` - **自动清理无用依赖** ```bash sudo apt autoremove ``` 定期更新系统可确保安全性和稳定性[^2]。 #### 2. 用户与权限管理 - **添加新用户** ```bash sudo adduser <用户名> ``` - **将用户加入 `sudo` 组(赋予管理员权限)** ```bash sudo usermod -aG sudo <用户名> ``` - **修改文件权限** ```bash chmod 755 <文件名> # 设置权限为 rwxr-xr-x chown <用户>:<组> <文件名> # 修改文件所有者 ``` #### 3. 网络配置 - **查看网络接口信息** ```bash ip addr # 或使用旧版命令 ifconfig(需安装 net-tools) ``` - **检查端口占用** ```bash ss -tuln # 或 netstat -tuln ``` - **配置防火墙(UFW)** ```bash sudo ufw allow 22 # 允许SSH端口 sudo ufw enable # 启用防火墙 ``` #### 4. 服务管理 - **启动/停止服务** ```bash sudo systemctl start <服务名> sudo systemctl stop <服务名> ``` - **设置开机自启** ```bash sudo systemctl enable <服务名> ``` 服务管理是服务器运维的核心操作之一[^1]。 #### 5. 日志查看 - **查看系统日志(systemd 系统)** ```bash journalctl -u <服务名> # 查看特定服务日志 ``` - **实时监控日志文件** ```bash tail -f /var/log/syslog # 跟踪日志末尾变化 ``` #### 6. 软件包管理 - **安装软件** ```bash sudo apt install <包名> ``` - **卸载软件** ```bash sudo apt remove <包名> ``` - **使用 Snap 安装(适用于容器化软件)** ```bash sudo snap install <包名> ``` #### 7. 文件操作基础 - **查看目录内容** ```bash ls -l # 显示详细信息 ``` - **复制/移动文件** ```bash cp <源文件> <目标路径> mv <源文件> <目标路径> ``` #### 8. 进程管理 - **查看运行中的进程** ```bash ps aux | grep <进程名> ``` - **终止进程** ```bash kill -9 <PID> # 强制终止指定进程 ``` #### 9. SSH 远程连接 - **安装 SSH 服务端** ```bash sudo apt install openssh-server ``` - **从客户端连接** ```bash ssh <用户名>@<服务器IP> ``` #### 10. 定时任务(Cron) - **编辑当前用户的定时任务** ```bash crontab -e ``` - **示例:每天备份文件** ```bash 0 3 * * * tar -czf /backup/backup.tar.gz /data ``` --- §§ 1. 如何配置 Ubuntu 服务器的静态 IP 地址? 2. 如何通过 `apt` 查找特定软件包? 3. Ubuntu 服务器如何实现自动化备份? 4. 如何监控服务器的资源使用情况(如 CPU、内存)? 5. 服务器遇到无法启动的问题时,如何排查故障? --- 通过上述操作指南,您可以快速掌握 Ubuntu 服务器的基础管理技巧。如需深入优化或解决复杂问题,建议结合具体场景进一步学习。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值