Linux进程,存储,软件,日志004
目录一、进程管理二、磁盘与存储管理三、软件包管理四、系统日志管理一、进程管理1.1 进程概念与状态进程定义进程是正在执行的程序实例包含程序代码、数据和系统资源。进程状态转换●运行(RUNNING)进程正在CPU上执行●就绪(READY)进程准备好运行等待CPU调度●阻塞(BLOCKED)进程等待某个事件如I/O操作●停止(STOPPED)进程被暂停执行●僵尸(ZOMBIE)进程已终止但父进程未回收1.2 进程监控命令ps命令详解图# 常用选项组合 ps aux # 显示所有进程的详细信息 ps -ef # 标准格式显示所有进程 ps -eLf # 显示线程信息 ps aux --sort-%cpu # 按CPU使用率排序 # 输出字段解释 USER # 进程所有者 PID # 进程ID %CPU # CPU使用率 %MEM # 内存使用率 VSZ # 虚拟内存大小 RSS # 物理内存大小 TTY # 终端类型 STAT # 进程状态 START # 启动时间 TIME # CPU使用时间 COMMAND # 启动命令top/htop命令图top # 实时监控进程 htop # 增强版top支持鼠标操作 # top交互命令 P # 按CPU使用率排序 M # 按内存使用率排序 k # 终止进程 r # 调整进程优先级1.3 进程控制命令kill命令图kill PID # 发送TERM信号请求进程正常退出 kill -9 PID # 发送KILL信号强制终止进程 kill -15 PID # 发送TERM信号默认 kill -l # 列出所有信号 # 常用信号 SIGHUP (1) # 重启进程 SIGINT (2) # 中断进程CtrlC SIGTERM (15) # 请求终止 SIGKILL (9) # 强制终止进程优先级管理图nice -n 10 command # 启动时设置优先级-20到19 renice 5 PID # 修改运行中进程的优先级1.4 进程管理实践图# 查找特定进程 ps aux | grep nginx pgrep nginx # 查看进程树 pstree -p pstree -p 1234 # 查看指定进程的子进程 # 监控特定进程资源 pidstat -p PID 1 # 每秒监控一次二、磁盘与存储管理2.1 磁盘分区管理fdisk工具图fdisk -l # 列出所有磁盘分区 fdisk /dev/sdb # 对指定磁盘操作 # fdisk交互命令 m # 显示帮助 p # 打印分区表 n # 新建分区 d # 删除分区 t # 修改分区类型 w # 保存并退出 q # 不保存退出parted工具图parted /dev/sdb # 进入parted交互模式 (parted) print # 显示磁盘信息 (parted) mklabel gpt # 创建GPT分区表 (parted) mkpart primary ext4 1MiB 100% # 创建分区 (parted) set 1 boot on # 设置启动标志2.2 文件系统管理格式化磁盘图# 常用文件系统 mkfs.ext4 /dev/sdb1 # 创建ext4文件系统 mkfs.xfs /dev/sdb1 # 创建XFS文件系统 mkfs.btrfs /dev/sdb1 # 创建Btrfs文件系统 # 格式化选项 mkfs.ext4 -L DATA -m 1 /dev/sdb1 # 设置卷标保留1%空间给root挂载管理图# 临时挂载 mount /dev/sdb1 /mnt/data mount -t ext4 /dev/sdb1 /mnt/data # 挂载选项 mount -o rw,noatime /dev/sdb1 /mnt/data # 查看挂载信息 df -h mount | grep sdb1永久挂载配置图# /etc/fstab配置 UUIDxxxx-xxxx /mnt/data ext4 defaults,noatime 0 2 # 挂载测试 mount -a # 测试fstab配置2.3 LVM逻辑卷管理LVM架构图物理卷(PV) → 卷组(VG) → 逻辑卷(LV)LVM操作命令图# 物理卷管理 pvcreate /dev/sdb1 /dev/sdc1 # 创建物理卷 pvdisplay # 显示物理卷信息 pvremove /dev/sdb1 # 删除物理卷 # 卷组管理 vgcreate vg_data /dev/sdb1 /dev/sdc1 # 创建卷组 vgdisplay # 显示卷组信息 vgextend vg_data /dev/sdd1 # 扩展卷组 vgreduce vg_data /dev/sdd1 # 缩减卷组 # 逻辑卷管理 lvcreate -L 10G -n lv_web vg_data # 创建逻辑卷 lvdisplay # 显示逻辑卷信息 lvextend -L 5G /dev/vg_data/lv_web # 扩展逻辑卷 resize2fs /dev/vg_data/lv_web # 调整文件系统大小2.4 存储管理实践图# 磁盘使用分析 du -sh /home/* # 查看目录大小 df -h # 查看磁盘空间 iostat -x 1 # 监控磁盘I/O # 文件系统检查 fsck /dev/sdb1 # 检查文件系统 tune2fs -l /dev/sdb1 # 查看ext4文件系统信息三、软件包管理3.1 Debian/Ubuntu APT管理APT基础命令图# 更新软件源 apt update # 更新软件包列表 apt upgrade # 升级已安装软件 apt full-upgrade # 全面升级系统 # 软件包操作 apt install package_name # 安装软件包 apt remove package_name # 卸载软件包保留配置 apt purge package_name # 彻底卸载软件包 apt autoremove # 删除无用依赖 # 查询软件包 apt search keyword # 搜索软件包 apt show package_name # 显示软件包信息 apt list --installed # 列出已安装软件包APT高级用法图# 源管理 /etc/apt/sources.list # 主配置文件 /etc/apt/sources.list.d/ # 第三方源目录 # 下载软件包 apt download package_name # 下载deb包 apt-get source package_name # 下载源代码 # 依赖处理 apt install -f # 修复依赖问题 apt-mark hold package_name # 锁定软件包版本3.2 RedHat/CentOS YUM/DNF管理YUM基础命令图# 软件源管理 yum clean all # 清理缓存 yum makecache # 生成缓存 yum repolist # 显示软件源 # 软件包操作 yum install package_name # 安装软件包 yum remove package_name # 卸载软件包 yum update # 更新软件包 yum check-update # 检查可用更新DNF命令新版图dnf install package_name # 安装软件包 dnf remove package_name # 卸载软件包 dnf update # 更新系统 dnf search keyword # 搜索软件包 dnf list installed # 列出已安装软件包RPM包管理图# RPM命令 rpm -ivh package.rpm # 安装RPM包 rpm -e package_name # 卸载RPM包 rpm -qa # 列出所有已安装包 rpm -ql package_name # 列出软件包文件 rpm -qf /path/to/file # 查询文件所属软件包3.3 软件包管理实践图# 第三方软件源配置 # Ubuntu添加PPA sudo add-apt-repository ppa:nginx/stable sudo apt update # CentOS添加EPEL源 sudo yum install epel-release sudo yum makecache # 本地软件包安装 sudo dpkg -i package.deb # Debian系 sudo rpm -ivh package.rpm # RedHat系四、系统日志管理4.1 传统日志系统日志文件位置图/var/log/messages # 系统消息 /var/log/syslog # 系统日志Ubuntu /var/log/auth.log # 认证日志 /var/log/kern.log # 内核日志 /var/log/dmesg # 系统启动日志 /var/log/boot.log # 系统启动过程日志 /var/log/cron # 定时任务日志 /var/log/secure # 安全相关日志CentOS日志查看工具图# 基础查看 tail -f /var/log/syslog # 实时查看日志 less /var/log/messages # 分页查看 grep error /var/log/syslog # 搜索错误 # 日志分析 dmesg # 查看内核日志 last # 查看登录记录 lastlog # 查看用户最后登录时间4.2 systemd日志系统journalctl命令图journalctl # 查看所有日志 journalctl -f # 实时跟踪日志 journalctl -u service_name # 查看指定服务日志 journalctl -b # 查看本次启动日志 journalctl -b -1 # 查看上次启动日志 # 时间过滤 journalctl --since 2024-01-01 --until 2024-01-02 journalctl -S yesterday -U today # 优先级过滤 journalctl -p err # 只显示错误级别以上日志 journalctl -p info # 显示信息级别以上日志 # 输出格式 journalctl -o json # JSON格式输出 journalctl -o short-iso # ISO时间格式journalctl配置图# /etc/systemd/journald.conf [Journal] Storagepersistent # 持久化存储 SystemMaxUse10G # 系统日志最大空间 RuntimeMaxUse5G # 运行时日志最大空间 MaxRetentionSec1month # 日志保留时间4.3 ELK日志分析系统ELK架构图Logstash → Elasticsearch → KibanaFilebeat部署图# 安装Filebeat wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.0-amd64.deb sudo dpkg -i filebeat-8.11.0-amd64.deb # 配置Filebeat sudo vim /etc/filebeat/filebeat.yml filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log fields: log_type: system_log output.elasticsearch: hosts: [elasticsearch:9200] index: logs-%{[agent.version]}-%{yyyy.MM.dd}日志分析实践图# 日志轮转配置 /etc/logrotate.conf # 主配置文件 /etc/logrotate.d/ # 应用配置目录 # 示例配置 /var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate systemctl reload nginx /dev/null 21 || true endscript }4.4 日志监控与告警图# 实时监控脚本示例 #!/bin/bash LOG_FILE/var/log/syslog ERROR_COUNT0 tail -f $LOG_FILE | while read line; do if echo $line | grep -q ERROR; then ERROR_COUNT$((ERROR_COUNT1)) echo [$(date)] 错误数量: $ERROR_COUNT # 错误数量超过阈值发送告警 if [ $ERROR_COUNT -gt 10 ]; then echo 系统错误过多请检查 | mail -s 系统告警 adminexample.com ERROR_COUNT0 fi fi done总结Linux系统管理涉及多个核心领域掌握这些技能需要理论与实践相结合1.进程管理理解进程生命周期熟练使用监控和控制工具2.存储管理掌握磁盘操作、文件系统管理和LVM高级功能3.软件包管理熟悉不同发行版的包管理工具和依赖处理4.日志管理从传统日志到现代ELK栈的全面监控能力
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2467174.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!