linux基础随心记五-系统管理
一、软件包管理1、rpm安装-ivh xxx.rpm查看-qa |grep xxx.rpm 查看软件包是否安装-ql xxx.rpm 查看软件包内容-qf 绝对路径 查看所归属的软件包升级-Uvh xxx.rpm删除-e xxx.rpm2、yum一、配置yum源/etc/yum.repos.d/查看yum源列表yum repolist配置为阿里云https://developer.aliyun.com/mirror/ 官方地址#/etc/yum.repos.d/CentOS-Base.repo[base]#源名字nameCentOS-$releasever- Base - mirrors.aliyun.com#详细名字failovermethodpriority#如果yum地址失败了就用下面的地址baseurlhttp://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/gpgcheck1#校验gpgkeyhttp://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#校验enabled1二、yum命令配置文件/etc/yum.conf几乎很少修改可以将yum安装过的rpm包保存下来否则自动删除[main]cachedir/var/cache/yum/$basearch/$releasever#缓存路径keepcache0#是否开启缓存debuglevel2logfile/var/log/yum.log#日志路径三、增删改查安装yum install -y tree查看yum provides tree 精确查询yum search tree 模糊查询yum list available/installed/all查看源列表yum repolist清空缓存yum clean all删除软件包以及依赖不建议用因为不但会删除软件包还会删除相关依赖建议使用rpm -e进行卸载yum remove xxx更新yum update二、进程管理R(running) S(sleeping) T(stopped) Z(zombie) D(Disk sleep) X(dead)R 前台运行进程R 后台运行进程S 可中断进程大部分进程T 后台挂起进程D 不可中断进程io进程Ss 可中断进程 管理进程S 可中断的高优先级进程SN 可中断的低优先级进程Ssl 可中断的多线程的管理进程Z 僵尸进程1、psps -efUIDPIDPPIDC STIME TTY TIME CMD root100Mar18 ? 00:01:34 /usr/lib/systemd/systemdps aux#VSZ 占用虚拟内存#RSS 占用物理内存#TIME 占用cpu时间USERPID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root10.00.11281846872? Ss Mar181:34 /usr/lib/systemd/systemdpstree -pps axo user,pid,%cpupsaxo user,pid,%cpu,stat,commandUSERPID %CPU STAT COMMAND root10.0Ss /usr/lib/systemd/systemd --switched-root--systempsaux|awk{print $1}2、top排序P 按CPU使用率排序M 按内存占用排序T 按运行时间排序N 按PID排序进程操作k 终止进程r 调整进程优先级视图控制1 展开/折叠多核CPU详情显示每个核心状态u 按用户过滤进程f 自定义显示的列h 打开帮助菜单刷新设置空格 立即刷新s 修改刷新间隔颜色设置z 进入颜色模式x 标记以哪列排序shift 或 shfit 向左或向右选择退出q/ctrl Ctop-13:59:24 up6days,20:03,2users,load average:0.00,0.01,0.05Tasks:114total,1running,113sleeping,0stopped,0zombie%Cpu(s):0.0us,0.2sy,0.0ni,99.8id,0.0wa,0.0hi,0.0si,0.0st KiB Mem:3861300total,1932072free,363900used,1565328buff/cache KiB Swap:3145724total,3145724free,0used.3191208avail MemPIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME COMMAND702root20027297668523660S0.30.210:52.14 vmtoolsd非交互模式-b 非交互模式 -n1 只输出一次结果[rootxkm ~]# top -bn1 | awk NR2{print $(NF-1),$NF}0zombie3、后台运行方法说明最常用如果命令会持续输出到终端时不可用先运行命令再按下ctrlzbg 后台fg前台screen稳定nohup ** 会记录输出到一个nohup.out文件jobs查看后台运行的程序4、java系统负载高排查lscpu查看核心数如果平均负载接近核心数说明负载高流程通过监控软件发现系统负载高判断是cpu还是io导致的负载高·cpu高top中的ur sy·io高top中的wa如果是cpu导致的排查出是哪个进程通过ps aux过滤出具体进程如果是io导致的排查出是哪个进程通过iotop -o查看具体进程找出原因并找出对应的进程根据进程找服务相关日志通过jstack查看进程中的线程信息jstack中的线程是十六进制1、通过top -Hp 进程id显示该进程中的线程信息根据cpu的使用率找出异常的线程的id2、异常的线程id转换成十六进制echo “obase16|线程id”|bc3、jstack过滤十六进制线程idjstack 进程id | grep -i -A10 十六进制线程idjmap导出jvm信息通过mat工具进行内存分析jmap-heapjava-pid# 打印java进程的jvm内存使用情况jdk8及之前可以jmap-dump:formatb,file8080.hprof java-pid# 生成堆转储文件三、服务管理1、管理命令#检查服务状态systemctl status firewalld#开机自启动systemctlenablenginx#运行systemctl start nginx#所有服务运行情况systemctl list-units2、运行级别运行级别c70关机 init 01救援模式secure(找回root密码)2多用户模式(无网络)3多用户模式 multiuser(命令行模式)4多用户模式5图形化界面模式6重启 init 63、linux启动流程按下电源 - 开机自检bios) - MBR、GPT引导系统启动硬盘、光盘 - GRUB菜单选择内核、救援模式- 加载内核/boot内核文件加载到内存中 - 运行systemd进程 - 读取运行级别 - 系统初始化 - 并行启动服务 - 运行getty显示登录界面4、root密码找回重启linux进入GRUB菜单按e编辑内核配置找到linux16的行将这一行的ro改为rw在最后输入 init/bin/bash按ctrlx启动系统进入救援模式将/etc/passwd下root行的x去掉重启后passwd设置密码四、磁盘管理1、RAID提高数据可靠性和 I/O 性能参考 RAID相关描述老男孩相关总结2、磁盘分区分区-格式化-挂载一、MBR与GPTMBR4个主分区或3个主分区加一个扩展分区加不限数量的逻辑分区MBR和GPT详解二、MBR创建分区#分区fdisk/dev/sdb#格式化创建文件系统mkfs.xfs /dev/sdb#临时挂载mount/dev/sdb /mntdf-h#永久挂载1、使用rc.local,把挂载命令写入到/etc/rc.lpcal下2、专业的开机自动挂载配置文件/etc/fstab根据要求写入三、lvmlvm相关动态扩容操作lvm相关操作动态扩容操作可以lvmraid搭配使用raid5lvm结合四、swap交换分区/虚拟内存swapon /tmp/1g 挂载五、磁盘空间不足经典block块大量占用现象提示空间不足df -h查看空间存在不足解决df -h 与 du -sh结合inode大量占用存在大量小文件现象提示空间不足df -h查看发现空间充足df -i查看发现inode存在不足解决1、find 找出目标路径下size较大的目录比如大于1Mfind / -type d -size 1M2、find 找出目标路径下文件较多的目录find / type f |xargs dirname |sort |uniq -c文件未彻底删除现象df -h发现空间不足删除较大的文件后再次df -h发现空间还是不足du -sh发现不存在磁盘占用较大的文件原来的文件也已经被删掉解决文件被彻底删除需要1、硬链接数为02、文件没有被服务或线程调用lsof查看文件是否被调用kill掉相关进程或重启服务