Linux运维入门

学习参考博文:

https://www.cnblogs.com/oldboy-heqing/articles/13605340.html

操作系统概述介绍

   操作系统的作用是管理和控制计算机系统中的硬件和软件资源
   操作系统组成:内核(管理硬件信息)+ 解释器(bash+python) + 软件程序
   多用户 多线程 开源操作系统 

操作系统镜像获取

   官方网站获取系统镜像: https://www.centos.org/  最新版  centos8
   下载源获取系统镜像:   阿里源 清华源 交通大学源 
   https://developer.aliyun.com/mirror/  
   最新的镜像下载地址: https://mirrors.aliyun.com/centos/
   历史的镜像下载地址: https://mirrors.aliyun.com/centos-vault/

虚拟软件环境部署与配置 (vmware workstation)

   作用:
   1) 让一个电脑中可以创建多个系统, 方便同时管理
   2) 高效利用服务器设备硬件资源
   3) 可以节省物理空间
   部署:
   安装vmware 省略
   配置:
   1) 虚拟主机创建
      网络模式:
	  NAT模式:  推荐选择
	  特点:
	  1. 可以访问外网
	  2. 可以解决地址冲突问题  应用地址映射技术  虚拟主机地址转换(10.0.0.1)为物理主机地址 192.168.21.100 
	  3. 虚拟主机不方便被其他物理主机访问
	  
	  桥接模式:
	  1. 可以访问外网
      2. 可能出现地址冲突问题  虚拟主机配置地址(192.168.21.101)和物理主机地址网段一致的  192.168.21.100	
      3. 虚拟主机可以被其他物理主机访问
      张三: 192.168.21.10~192.168.21.20   192.168.21.11  数据库服务 
      李四: 192.168.21.21~192.168.21.30 	  
	  
	  仅主机模式:
	  特点:
	  1. 不能访问外网
	  2. 网络通讯安全性高的环境  
   2) 虚拟网络配置
      网段 掩码 网关 网卡模式配置
   ===========================================================  
   异常问题:
   1) 虚拟软件程序不支持多实例启动
   2) 虚拟软件没有正常关闭或挂起     建议正常先关闭虚拟主机
      可以删除lck文件,会虚拟主机运行
   3) 确认电脑bios是否开启了虚拟功能	
      进入bios --- CPU/安全 --- 虚拟化配置功能进行开启   
   =========================================================== 

操作系统安装过程

   centos7系统网卡默认名称: ens33 ens34 -- eth0 eth1   
   选择install centos7 -- tab  --- 输入net.ifnames=0 biosdevname=0
   系统安装部署:
   1) 系统分区操作:
      /boot  存放系统运行启动文件   200M
	  swap   交换分区(将硬盘空间临时交换给内存使用)  1G-2G
      /      根分区                 剩余空间	  
   2) 进行系统网络配置: 
      激活网卡--配置网卡地址信息(IP地址 掩码 网关 DNS)
	  修改主机名称
   3) 预装软件程序
      最小化安装--- 1236
   PS: 系统安装完毕需要进行重启  
   ============================================================================================
   补充: 系统管理应用
   1. 虚拟主机可以选择挂起操作
   2. 虚拟主机最好创建快照
   3. 虚拟主机最好克隆多台
      链接克隆: 以模板主机作为根  分支出来多台克隆主机  特点: 节省物理资源/克隆效率
	  完整克隆: 多台主机相互独立                        特点: 模板主机出现问题,不影响克隆主机
   4. 清除虚拟主机---关闭主机---管理--从磁盘中删除
   ============================================================================================

操作系统远程管理

   需要远程软件: xshell(客户端--功能强大/免费) --- 服务端(SSH服务)
   
   远程连接配置:
   运行xshell---新建会话--- 地址/协议/端口 --- 设置用户名密码
   
   远程连接排错:
   1) 确认网络连通性:
      ping 10.0.0.200
	  处理连通性问题:
	  · 确认服务地址是否正确  
	  · 确认网络路由配置
	  · 确认是否需要开启VPN (虚拟专用网络) 
	    ① 可以实现认证审计
		② 可以对传输数据进行加密处理
		③ 可以利用VPN隧道推送内网网段路由信息
	  · 确认是否开启了禁ping功能,禁止ICMP协议
   2) 确认网络通讯是否有安全策略阻止
      telnet 10.0.0.200 22
	  · 确认是否防火墙策略影响          
	  · 确认系统是否有访问控制策略影响
   3) 确认远程服务运行状态:
      systemctl status network  --- 查看网络服务状态
	  systemctl start network   --- 启动网络服务
      systemctl restart network --- 重启网络服务
      systemctl status sshd     --- 确认远程服务状态
   PS: 虚拟环境需要确认虚拟网卡状态和地址配置

操作系统目录结构介绍

tree -L 1 /
├── bin  -> usr/bin     用于存放二进制命令文件信息  普通用户可以调取使用
├── sbin -> usr/sbin    用于存放二进制命令文件信息  只能管理员用户调取使用
├── boot                用于存储系统启动相关文件    cobbler == 网吧网络安装系统
├── dev                 用于存储设备文件信息        光驱/dev/cdrom -> sr0/磁盘(分区)
├── etc                 用于存储服务或系统配置文件  MySQL(/etc/my.cnf)  Nginx(/etc/nginx/nginx.conf)
├── home                用于存储用户家目录数据信息  普通用户
├── root                用于存储用户家目录数据信息  系统管理员
├── lib   -> usr/lib    系统或服务所需库文件保存路径  mysql5.5 php
├── lib64 -> usr/lib64  系统或服务所需库文件保存路径
├── media               用于存放示例图片或视频媒体资源  
├── mnt                 用于进行临时挂载目录
├── opt                 用于存储第三方软件程序目录  /opt  ---  /dev/sdb1
├── usr                 用于存储第三方软件程序目录  /usr  ---  /dev/sdc1        
├── proc                用于存储系统内核文件和进程文件  此目录中存储数据信息是放入在内存中的 
├── tmp                 用于临时存储数据目录|实现多用户数据共享功能        
└── var                 用于存储系统或服务程序日志文件
PS: linux系统一切皆文件

补充知识点:

	01. 链接文件介绍(软链接==windows系统中快捷方式)
	    ln -s  /etc/sysconfig/network-scripts/ifcfg-eth0  /root/ifcfg-eth0
	    目录创建软链接: 为了可以实现代码信息快速回退
		/html/blog/  
	    cp /html/blog  /backup/blog-20201022/
		上传代码到  /html/blog目录  -- 测试  --- 回退
		rm -rf /html/blog/
	    cp /backup/blog-20201022/  /html/blog/	
		软链接链接目录
		20201001   测试成功   /html/blog-20201001/    ln -s  /html/blog-20201001/   /html/blog/
		20201022   测试       /html/blog-20201022/    ln -sf /html/blog-20201022/   /html/blog/
	               回退                               ln -sf /html/blog-20201001/   /html/blog/
	
	02. 系统目录挂载知识
	    windows使用磁盘  分区  格式化  F     == 磁盘第二个分区
		                               F     == 磁盘第二个分区
	    linux  使用磁盘  分区  格式化  /mnt  == 磁盘第二个分区 /dev/sdb2   挂载过程
		                               /mnt  == 磁盘第二个分区 /dev/sdc2   
	                                   挂载点
	    PS: 进行挂载的目录必须是空目录(避免挂载后磁盘数据覆盖掉原有目录数据)
	
	
	挂载操作过程:
		第一个步骤: 需要识别新的硬盘
			[root@moban ~]# ll /dev/sdb
		    brw-rw----. 1 root disk 8, 16 Oct 22 21:52 /dev/sdb
		    [root@moban ~]# fdisk -l
		    
		    Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
		    Units = sectors of 1 * 512 = 512 bytes
		    Sector size (logical/physical): 512 bytes / 512 bytes
		    I/O size (minimum/optimal): 512 bytes / 512 bytes
		    Disk label type: dos
		    Disk identifier: 0x000e1280
		    
		       Device Boot      Start         End      Blocks   Id  System
		    /dev/sda1   *        2048      411647      204800   83  Linux
		    /dev/sda2          411648     2508799     1048576   82  Linux swap / Solaris
		    /dev/sda3         2508800   209715199   103603200   83  Linux
		    
		    Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
		    Units = sectors of 1 * 512 = 512 bytes
		    Sector size (logical/physical): 512 bytes / 512 bytes
		    I/O size (minimum/optimal): 512 bytes / 512 bytes
		
	    第二个步骤: 对新的磁盘进行分区操作	
			fdisk /dev/sdb -- n(创建分区) -- p(创建主分区) -- 1(指定分区编号) --- 分区大小 -- p检查分区信息 -- w 保存配置信息到分区表
			Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
		    Units = sectors of 1 * 512 = 512 bytes
		    Sector size (logical/physical): 512 bytes / 512 bytes
		    I/O size (minimum/optimal): 512 bytes / 512 bytes
		    Disk label type: dos
		    Disk identifier: 0x74f6ef24
	    
	       	Device Boot      Start         End      Blocks   Id  System
		    /dev/sdb1            2048    10487807     5242880   83  Linux
		
		第三个步骤: 格式化磁盘分区(创建文件系统)
			[root@moban ~]# mkfs -t xfs /dev/sdb1
		    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=327680 blks
		             =                       sectsz=512   attr=2, projid32bit=1
		             =                       crc=1        finobt=0, sparse=0
		    data     =                       bsize=4096   blocks=1310720, imaxpct=25
		             =                       sunit=0      swidth=0 blks
		    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
		    log      =internal log           bsize=4096   blocks=2560, version=2
		             =                       sectsz=512   sunit=0 blks, lazy-count=1
		    realtime =none                   extsz=4096   blocks=0, rtextents=0
		
		第四个步骤: 挂载操作过程 
			[root@moban ~]# mount /dev/sdb1  /mnt
		    [root@moban ~]# df -h
		    Filesystem      Size  Used Avail Use% Mounted on
		    /dev/sda3        99G  3.7G   96G   4% /
		    devtmpfs        901M     0  901M   0% /dev
		    tmpfs           911M     0  911M   0% /dev/shm
		    tmpfs           911M  9.5M  902M   2% /run
		    tmpfs           911M     0  911M   0% /sys/fs/cgroup
		    /dev/sda1       197M  112M   85M  57% /boot
		    tmpfs           183M     0  183M   0% /run/user/0
		    /dev/sdb1       5.0G   33M  5.0G   1% /mnt
		    [root@moban ~]# cd /mnt
		    [root@moban mnt]# echo oldboy123 >oldboy.txt
		    [root@moban mnt]# ll
		    total 4
		    -rw-r--r--. 1 root root 10 Oct 22 22:03 oldboy.txt
    	
    	
    目录结构中重要文件数据	
		 网卡配置文件
			/etc/sysconfig/network-scripts/ifcfg-eth0   (网卡地址 掩码 网关 DNS)
			· TYPE=Ethernet	
			  表示设置网络通讯的类型,一般都是设置为Ethernet,即为以太网通讯类型
		    · BOOTPROTO=none	
			  表示网卡IP地址获取方式 (dhcp|none==static)
		      可以采用静态手工配置方式,设置为none或者static均可
		      可以采用动态获取配置方式,设置为dhcp即可
		      PS: 一般企业级服务器网卡设置均为手工配置
		    · DEFROUTE=yes	
			  表示设置开启静态默认路由功能,可以实现主机可以借助网关地址访问外网
		  路由概念: 解决不同网段之间主机通讯需求
		  配置路由: 在路由表中添加信息
			  1) 静态路由配置 : 手工配置路由
			  2) 动态路由配置 : 自动获取别人路由表信息(路由收敛过程)
			  3) 静态默认路由配置:
	    · NAME=eth0	
		  表示系统识别的网卡逻辑名称信息
	    · DEVICE=eth0	
		  表示系统识别的网卡物理设备名称信息
	    · ONBOOT=yes	
		  表示系统是否将网卡服务激活,如果想禁用某块网卡功能可以设置为no
	    · IPADDR=10.0.0.200	
		  表示网卡具体IP地址设置信息
	    · PREFIX=24	
		  表示网络掩码地址设置信息
	    · GATEWAY=10.0.0.254	
		  表示网络和外网进行通讯的网关地址信息
	    · DNS1=223.5.5.5	
		  表示网络和外网域名地址进行访问时,所需DNS服务器地址信息
	      若未配置会导致主机无法直接访问域名信息,只能访问IP地址信息
	
	网卡服务启动方式:
		systemctl start network  
		systemctl restart network  
	网卡服务异常排错方式:
		1) 确认网卡文件配置
		2) 确认网络管理服务是否关闭
		   systemctl status NetworkManager
		3) 网卡服务目录中不要出现多余文件
	
		2) 域名服务器地址配置文件
		   /etc/resolve.conf
		   nameserver 233.5.5.5
		
		3) 网络本地解析配置文件
		   说明: 可以实现主机之间通讯利用域名访问
		# cat /etc/hosts
	    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
	    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
	    61.135.185.32  oldboy.com
	
		4) 开机自动运行脚本或命令文件
		   说明: 重要文件做备份 系统程序自动运行
		   chmod +x /etc/rc.d/rc.local
		   # cat /etc/rc.local 
	       touch /var/lock/subsys/local
	       systemctl start httpd
		
		5) 系统服务程序日志文件
		   说明: 可以进行异常问题排错
		   cat /var/log/messages
		   
		   扩展: 日志文件查看方法:
		   第一种: 全部信息显示查看
		   cat /var/log/messages
		   
		   第二种: 查看部分信息
		   less/more
		   head/tail  查看开头信息和结尾信息
		   
		   第三种: 过滤筛选查看数据信息
		   grep "筛选条件"  文件信息
		   grep "23:31:.*Startup"  /var/log/messages
	
	       第四种: 追踪日志信息变化
	       tail -f /var/log/messages	   
		   
		   扩展: 日志信息需要进行切割处理  文件大小 >1G
		   java程序日志切割处理方式 == log4j 
		   日志切割:
		   messages  20201001 00:00:00  ~ 20201031 00:00:00  一个月时间  200M  mv messages messages-202010 
		   messages  20201031 00:00:00  重启服务程序 创建新的日志文件
		             messages 初始大小  0字节  
		   系统切割日志脚本:
		   #!/bin/bash
	       mv /etc/nginx/log/access.log  /etc/nginx/log/access.log-`date +%F`
	 	   systemctl restart nginx 

操作系统基础优化介绍

   · 操作系统安全优化配置	   
	     防火墙服务: 实现非法流量隔离   firewalld-centos7/iptables-centos6
	     用户合法用户  ---      web服务  看到网站页面
	     非法用户      -防火墙- web服务  占用网站服务更多连接数据资源  
	     先将防火墙关闭:
		 systemctl stop firewalld 
		 systemctl disable firewalld
	   
	     selinux安全程序: root==皇帝  美国国防部 对root做限制
		 临时关闭: 
		 [root@moban ~]# setenforce 0
	     [root@moban ~]# getenforce 
	     Permissive
	     [root@moban ~]# setenforce 1
	     [root@moban ~]# getenforce 
	     Enforcing
		 
		 vim /etc/selinux/config 
	     # This file controls the state of SELinux on the system.
	     # SELINUX= can take one of these three values:
	     #     enforcing - SELinux security policy is enforced.
	     #     permissive - SELinux prints warnings instead of enforcing.
	     #     disabled - No SELinux policy is loaded.
	     SELINUX=disabled

   · 操作系统下载软件优化
	     下载优化目的: 为了选择一台软件比较全比较新的 yum服务器进行下载软件:
		 阿里云: 
		 base仓库优化: curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
		 epel仓库优化: curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
		 清华源: https://mirrors.tuna.tsinghua.edu.cn/
	 
   · 系统软件安装方式:
		 yum 安装软件  推荐
		 特点: 可以解决软件依赖问题
		 
		 yum install -y 软件名称
		 yum erase 软件名称         --- 卸载软件
		 yum provides 命令信息      --- 可以获取命令出自于哪个软件包
		 yum reinstall -y 软件名称  --- 重装软件程序(修复破坏数据)
		 
		 rpm 安装软件 
		 特点: 可以随意选择下载软件版本
		 缺点: 需要软件包,需要解决软件包依赖
		 
		 rpm -ivh  xxxx.rpm 
		 rpm -qa 软件名称  
		 rpm -ql 软件名称          --- 查看软件安装后生成了哪些数据文件
		 rpm -e 软件名称 --nodeps  --- 只卸载软件程序,忽略依赖问题   
		 
		 编译安装软件
		 特点: 可以自定义软件部署路径|可以自定义软件扩展功能
		 缺点: 需要源码包,需要解决软件包依赖 
		 
		 进入到源码包目录:
		 ./configure  xxx     --- 配置过程
		 make                 --- 编译过程
		 make install         --- 安装过程 
		 
		 二进制包安装软件
		 特点: 安装过程简单高效  
		 缺点: 需要解决软件依赖
		 tar xf 软件包 --- 进入软件包目录(软件配置 软件启动)
	   
   · 系统时间优化: 保证时间和所在时区进行统一

系统权限管理操作介绍

   属主用户: 文件或目录数据创造者/管理者
   属组用户: 订单服务程序-oldboy oldgirl(dingdan)  支付业务程序-oldgirl oldboy(zhifu)  
   其他用户: 权限是最低用户(r) 
   
   r = 4 
   w = 2 
   x = 1

   总结:
   系统文件数据: 确保有读权限时,再配合写和执行权限使用才有意义  默认文件权限 6(rw)4(r)4(r)  
   系统目录数据: 确保有执行权限时,在配合读和写权限使用才有意义  默认目录权限 7(rwx)5(r-x)5(r-x) 
   对于root用户,一旦拥有文件执行权限,可以随意操作文件
   对于root用户,无需拥有目录任务权限,也可以随意操作目录
   
   chmod  修改文件/目录权限信息
   单独修改用户权限/批量修改用户权限
   chown  修改文件/目录用户信息(属主 属组)
   chown 属主.属组  文件或目录信息

系统用户管理操作介绍

   系统用户管理分类介绍:
   超级管理员    root      可以管理系统中所有数据文件以及服务程序     UID=0
   虚拟用户      nobody    可以用于管理系统进程|可以管理存储数据目录  UID=1~999
                           虚拟用户不能登录系统/虚拟用户没有家目录
                           提高数据安全性
   普通用户                可以登录管理系统用户/是拥有家目录          UID=1000-65535
                           权限限制 
   
   
   用户管理相关命令:
   创建新的用户信息:useradd 用户名称 -u 1000  -g 所属组  -M(不创建家目录)  -s /sbin/nologin
                     useradd 用户名称

   查看用户信息是否存在: id oldboy

   修改用户信息: usermod oldboy -G oldboy
   
   删除指定用户信息: userdel -r oldboy  推荐使用 
   
   设置或修改用户密码: passwd 
   交互式设置密码:
	   # passwd oldboy
	   Changing password for user oldboy.
	   New password: 
	   BAD PASSWORD: The password is shorter than 8 characters
	   Retype new password: 
	   passwd: all authentication tokens updated successfully.

   非交互设置密码:
	   echo 654321|passwd --stdin oldboy
	   Changing password for user oldboy.
	   passwd: all authentication tokens updated successfully.
   
   如何批量创建用户(oldboy01..oldboy10),并给用户设置密码信息(随机密码)?
   难点取随机数: echo $RANDOM |md5sum |cut -c 1-8
   批量创建用户并设置密码:
	   for n in {01..10}
	   do
	   passwd_info=$(echo $RANDOM |md5sum |cut -c 1-8)
	   useradd oldboy$n  
	   echo $passwd_info |passwd --stdin oldboy$n 
	   echo "oldboy$n $passwd_info" >> /tmp/user_info 
	   done

系统用户提权操作介绍

   方式一: 进行用户切换管理系统
  	 su - root
   
   方式二: 给用户进行提权操作   推荐
	   运维人员: 数据操作能力(编辑 目录创建和修改)  不能具有删除能力
	   开发人员: 数据信息查看能力
	   数据库人员: 数据库服务命令 数据库数据文件
	   
	   第一个历程: 由root用户进行权限设置
		   visudo
		   92 root    ALL=(ALL)       ALL   保持默认
		   93 oldboy  ALL=(ALL)       NOPASSWD: /usr/bin/touch, /usr/bin/mkdir, /usr/bin/cp, /usr/bin/mv, /usr/bin/vim
		
	   第二个历程: 切换成指定普通用户验证权限
		   sudo -l 
		   sudo touch xxx 
	   
   
   方式三: 利用特殊权限配置
	   setuid权限位: 让普通用户拥有命令文件属主(root)权限能力
	   chmod u+s 命令文件
	   
	   setgid权限位: 让普通用户组拥有命令文件属组(root)权限能力 
	   chmod g+s 命令文件  
	   
	   粘滞位权限: 让指定目录变为共享存储数据目录,目录中数据可以让所有用户查看,但是只能属主用户进行编辑或管理操作
	   chmod o+t 目录信息

系统常见查看命令介绍

   系统版本信息查看: 
	   # cat /etc/redhat-release 
 	  		CentOS Linux release 7.5.1804 (Core) 
	   # uname -a
	 		Linux moban 3.10.0-862.el7.x86_64
   
   系统磁盘信息查看:
	   # df -h    
		   Filesystem      Size  Used Avail Use% Mounted on
		   /dev/sda3        99G  1.5G   98G   2% /
		   devtmpfs        901M     0  901M   0% /dev
		   tmpfs           911M     0  911M   0% /dev/shm
		   tmpfs           911M  9.7M  902M   2% /run
		   tmpfs           911M     0  911M   0% /sys/fs/cgroup
		   /dev/sda1       197M  112M   85M  57% /boot
		   tmpfs           183M     0  183M   0% /run/user/0
		   PS: 程序日志信息不会生成新的了
   
	   # fdisk -l
		   Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
		   Units = sectors of 1 * 512 = 512 bytes
		   Sector size (logical/physical): 512 bytes / 512 bytes
		   I/O size (minimum/optimal): 512 bytes / 512 bytes
		   Disk label type: dos
		   Disk identifier: 0x000e1280
		   
		      Device Boot      Start         End      Blocks   Id  System
		   /dev/sda1   *        2048      411647      204800   83  Linux
		   /dev/sda2          411648     2508799     1048576   82  Linux swap / Solaris
		   /dev/sda3         2508800   209715199   103603200   83  Linux

	   # iotop  查看磁盘读写性能 查看磁盘IO  input(写)/output(读)   写/读  block(4k) == 消耗一个IO 
   
   内存信息查看:
	   [root@moban ~]# free -h
	                  total        used        free      shared  buff/cache   available
	   Mem:           1.8G        147M        582M        9.6M        1.1G        1.4G
	   Swap:          1.0G          0B        1.0G

   CPU信息查看:
	   lscpu  查看CPU硬件配置信息  
	 
	   uptime                                     每分钟  每五分钟 每十五分钟
	   23:01:55 up  1:47,  6 users,  load average: 0.00,    0.18,     0.19       高于服务器总的CPU核心数据  10核
	   
	   top  具体查看进程占用CPU情况
   
   
   服务进程信息查看:
	   ps -ef
	   ===================================
	   kill PID
	   kill -9 PID  删除进程
	   killall  进程名
	   pkill    进程名
   
   
   系统网路信息查看
   		iftop    网络接口流量==占用带宽
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值