Linux基础应用

1、网络配置

CentOS7中默认的网卡配置文件进行了修改,阿里云提供的CentOS7 系统在进行安装部署时都是进行过底层优化的,如果是自行部署的CentOS7系统,默认的网卡配置文件命名格式不再使用传统的eth0、eth1这样的命名格式。

image-20191114171713226

2、修改默认网卡名称

1、修改网卡配置文件中的设备名成为eth0
2、修改网卡配置文件名
3、grub配置中添加”net.ifnames=0 biosdevname=0 “到GRUBCMDLINELINUX变量开启设备名修改功能
4、更新grub配置
grub2-mkconfig -o /boot/grub2/grub.cfg

详情请参考:http://blog.sina.com.cn/s/blog_14e8c64ca0102w7z0.html

CentOS7中不在使用传统的grub,而是采用grub2
默认的配置文件不在是/boot/grub/grub.conf
而是/boot/grub2/grub.cfg
关于引导相关的配置也有所不同

3、误删文件恢复

在没有创建快照的情况下,数据盘的数据删除后通过第三方开源工具extundelete能支持进行找回

1、开源软件发布中心(sourceforge.net)下载程序源码包
wget http://jaist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
2、configure && make && make install 安装
3、查询可以进行恢复的文件
extundelete [分区] –inode 2
4、恢复文件
extundelete [分区] –restore-inode | file | directory | all

4、误删用户模板文件

模板文件路径:/etc/skel/ 均为隐藏文件,查询时需加-a参数

删除后的后果:

image-20191114172008164

恢复方法:
手动拷贝/etc/skel/目录下的文件到用户的家目录下,并修改文件所有者和属组

补充:CentOS7的普通用户UID从1000开始,和之前的版本有所不同

5、文件权限

root账号和普通账户创建文件和目录默认的权限如下

root 目录 755 文件 644
普通用户 目录 775 文件 664

默认权限有用户的反码值决定,反码值使用umask命令查看

创建一个用户后默认的反码值由/etc/bashrc决定

image-20191114172111910

默认权限计算方式,绝大部分可以直接相减即可,有例外,如反码值为0033
目录 777 - 反码值
文件 666 - 反码值

6、ACL权限

ACL权限一般用于给指定的用户赋予指定的权限
比如:file文件的拥有者的权限为rwx 所属组的权限为rwx 其他人的权限r-x
此时有一个用户只需要给r权限,其他权限不给,通过chmod的方式无法进行设置

image-20191114172147000

对目录设置时需要添加-R参数,删除通过-b、-x参数
setfacl -x删除单个用户的acl权限
setfacl -b删除所有用户的acl权限

7、高级权限

1、SUID

限定:只能设置在二进制可执行程序上面。对目录文本设置无效。
功能:程序运行时的权限从执行者变更成程序所有者。
如:passwd命令文件
image-20191114172220504

2、SGID

限定:既可以给二进制可执行程序设置,也可以给目录设置。
功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的所属组

3、SBIT

限定:只作用于目录
功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除
如:/tmp/目录

image-20191114172232542

8、YUM配置

1、配置yum源

帮助中心文档,历史Linux镜像的问题修复方案
https://help.aliyun.com/knowledge_detail/40586.html
如果配置了之后仍然无法使用,执行以下命令
CentOS6

1
sed -i 's/$releasever/6.8/g' /etc/yum.repos.d/xxx.repo

CentOS7

1
sed -i 's/$releasever/7.2.1511/g' /etc/yum.repos.d/xxx.repo

原因:镜像站中有些版本的内容已经停止更新
备注:阿里镜像站http://mirrors.aliyun.com

2、yum进程被占用导致无法执行yum操作

image-20191114172346679

9、进程管理

查看进程常用的命令
1、ps -aux
2、ps -ef
3、top

top命令使用小技巧

1、第一行显示当前系统状态,与uptime命令查询结果一致。
其中load average系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值
一般来说,每个CPU内核当前活动进程数不大于3,则系统运行表现良好!当然这里说的是每个cpu内核,也就是如果你的主机是四核cpu的话,那么只要uptime最后输出的一串字符数值小于4*3=12即表示系统负载不是很严重

image-20191114172508483

2、通过M 和 P 按键分别对内存和CPU资源占用状况进行排序
通过><进行上下翻页,如果有多核CPU,数字键1可以显示每核CPU的负载状况

3、通过ll /proc/PID/exe可以查看每个进程ID对应的程序文件

10、lsof、fuser和内存负载计算

1、lsof是一个列出当前系统打开文件的工具,Linux系统中一切皆文件,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件
常用方式:lsof /目录名 lsof -i :端口

image-20191114172552290

2、fuser 使用文件或者套节字来表示识别进程
用法和lsof类似,常用参数fuser -avu

3、内存负载计算方式
帮助中心有文档
https://help.aliyun.com/knowledge_detail/38849.html

image-20191114172611162

清空缓存echo 1 > /proc/sys/vm/drop_caches或者reboot

11、iftop和nethogs排查带宽跑满

11.1 iftop

常用参数: -i 指定网卡 -B 以字节为单位显示 -P显示端口
常用方法:iftop -i eth0 -BP

image-20191114172642532

左侧:本地IP和端口,右侧:2s 10s 40s的平均值
=>发送数据 <=接收数据
底部三行分别是发送、接收、总量的数据的目前、高峰、平均值

11.2 nethogs

可以直接定位占用带宽的进程
用法:nethogs 网卡名,如nethogs eth1

image-20191114172713901

其他查看网卡流量的命令
ifstat列出所有网卡的数据传输状态(静态的)
image-20191114172753330

iptraf图形化的查看流量状况
使用yum -y install iptraf安装程序包
直接执行iptraf-ng运行即可

12、sar命令使用

sar是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等

12.1 -u查看cpu负载

image-20191114172843747

命令后的数字 1 表示1s查询一次,5表示一共查5次
1)若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2)若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
3)若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU

12.2 sar查询网卡流量状态

image-20191114172911827

要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

13、计划任务

13.1 计划任务日志文件目录

/var/log/cron

13.2 计划任务脚本文件目录

/var/spool/cron/

13.3 系统级别的计划任务脚本文件目录

/etc/cron.deny
/etc/cron.d
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.monthly

/etc/fstab文件配置异常导致系统无法启动

问题现象:

image-20191114172956796

解决方法:

1、输入密码登录系统
2、通过fdisk -l 和df -h 查看是否有未进行挂载的磁盘或分区,然后通过mount手动进行挂载
3、通过df -Th 或 mount 查看挂载后的文件系统类型
4、查看并修复/etc/fstab文件
常见的两种错误写法:
1)多加了引号
2)文件系统类型错误

14、CentOS7服务管理和启动管理

14.1 启动、停止、重启、查看服务状态

systemctl start httpd #启动
systemctl stop httpd #关闭
systemctl restart httpd #重启
systemctl status httpd #状态查看

14.2 配置服开机自动启动、关闭、锁定、查看自启状态

systemctl enable httpd #开机启动
systemctl disable httpd #开机关闭
systemctl mask httpd #锁定
systemctl unmask httpd #解锁
systemctl is-enabled httpd #查看开机启动状态
systemctl list-unit-files –type service #查看所有程序开机启动状态
systemd-analyze #查看启动时间
systemd-analyze blame #查看每个服务启动时间
systemd-analyze critical-chain #查看严重消耗启动时间的程序

-------------本文结束感谢您的阅读-------------