美文网首页
Linux入门(尚未完成)

Linux入门(尚未完成)

作者: 靖流 | 来源:发表于2018-11-30 15:28 被阅读0次

    Linux基础概述

    在Linux中万物皆文件

    破解root密码
    单用户ro改成rw init=/sysroot/bin/sh

        chroot  /sysroot
        passwd  root
        touch   /.autorelabel
    
    • linux中所有的文件都是在根( / )中,整个文件体系是一个树状图

      • / 中包含的主要目录有 usr,bin(浅蓝色),sbin(浅蓝色),dev,etc,root,home,var,proc,lib(浅蓝色),lib64(浅蓝色)
      • 在Linux中,蓝色代表为目录,浅蓝色(青色),绿色等(这三个颜色最重要也最常见)代表链接文件(相当于windows中的快捷方式)
    • usr
      为系统文件,相当于C:\Windows

      • /usr/local 软件安装的目录,各种服务常安装于此
      • /usr/bin 普通用户使用的命令
      • /usr/sbin 管理员使用的命令
      • /usr/lib 库文件Glibc 32bit
      • /usr/lib64 库文件Glibc 64bit
    • bin

      • /bin为/usr/bin的链接文件
      • 普通用户使用的命令存放于此,/bin/ls,/bin/date等
    • sbin

      • /sbin为/usr/sbin的链接文件
      • 管理员使用的命令存放于此,/sbin/server
    • etc

      • 系统配置文件如网络(/etc/sysconfig/network-script)本地域名解析(/etc/hosts)以及相关服务的配置文件(/etc/httpd/conf.d/)
    • var

      • 存放一些变化的文件,如
      • mysql /var/lib/mysql
      • vsftpd(ftp服务器) /var/ftp
      • mail /var/spool/mail
      • cron(计划任务) /var/spool/cron
      • log(日志) /var/log
      • tmp(临时文件) /var/tmp
    • dev

      • 系统的设备文件存放于此,如硬盘( /dev/sda ),“垃圾箱”( /dev/null ),登录系统的终端( /dev/pts/1 ),以及连接系统的各种输入(键盘,麦克风等)和输出设备(显示器,打印机等)
    • root

      • root用户的家目录
    • home

      • 普通用户的家目录的Base目录
    • proc

      • 此目录中存放的文件是内核,进程信息或系统的实时状态,内部的文件为虚拟的文件。
    • boot

      • 存放系统启动相关的文件,如kernel(linux的操作界面)
    • Linux文件路径和基础命令
      Linux中的文件路径分为两种,绝对路径和相对路径

      • 绝对路径:从 / 开始输入文件的路径
      • 相对路径:从当前目录开始输入文件的路径

      在正常操作中,为了某些命令的需要和防止误操作,尽量先进入到相应的目录中然后使用相对路径进行操作,但是在shell脚本中,只能使用绝对路径进行操作。

    文件管理的基本命令

    文件管理的命令只可用于对文件的操作而不可用于对其他任何方面的操作。

    • 创建 touch&mkdir

      • touch 用于创建文件,如果创建的文件已经存在则修改创建时间,文件内的内容不会修改。
      touch file{1..20}       #批量创建联名文件,1-20
      
      • mkdir 用于创建目录,可以使用参数 -p 进行递归创建,亦可使用过 { } 来创建多个目录
      mkdir -p /home/{yang/{111,dir1},guo}        #此操作会分别创建/home下的yang 和guo,且yang中有111和dir1(全为目录)
    
    • 复制 cp

      • copy

      可以对目录进行操作

      使用时可以实现多个文件同时复制到一个目录,自动将最后一个目录作为复制的目标目录。参数 -r 为递归,即将文件中的全部目录结构一起复制移动,-f 为强制。

      cp -rf /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/hostname /tmp
      
      # -r 复制目录结构 -f 强制 
      
    • 移动(剪贴),重命名 mv

      • move

      可以对目录进行操作

      1.使用时可以将多个文件移动到一个目录中。自动将最后一个目录作为移动的目标目录。依然可以使用参数 -r -f

      mv file1 /home/dir3     #将当前目录的file1移动到/home/dir3中
      

      2.如果移动的目标不是目录,而是一个文件,则对移动的文件改名为目标文件的名字

      mv file2 /home/dri3/file20      #将当前目录的file2移动到/home/dir3下且改名为file20
      
      mv file4 file5      #都是相对路径时,将file4改名为file5
      
    • 删除 rm

      • remove

      使用时尽量不要使用绝对路径,以免不可估计的后果

      rm -rf dir1 删除当前目录的dir1

      *,通配符

      rm -rf *        #删除当前目录下的全部文件
      
      rm -rf dir*     #删除当前目录下以dir开头的所有文件
      
      rm -rf *txt     #删除当前目录下以txt结尾的全部文件
      

    查看文件内容 cat/less/more/hrad/tail/tailf/vim

    • cat 正常在命令行界面的全部内容,参数-n显示行号,-A显示全部字符(包括控制字符,例:换行符)
    • head 查看文件的头10行内容,可以用参数-加数字来确定显示多少行的内容
    • tail 查看文件的最后10行的内容,可以用参数-加数字的形式来确认查看多少行,参数-f可以动态查看文件的尾部
    • vim 使用vim编辑文件时,文件的索引号会发生改变
    • grep 对文件的内容进行过滤,常用于管道符
      例如grep 'root' /etc/passwd

    Vi编辑器(Vim编辑器)

    Vi编辑器存在四种工作模式,分别为“命令模式、“插入模式”,“可视块模式”、“扩展命令模式”。

    • 命令模式

      • 1.光标定位

        • 键盘上的homeend在vim中依然可用
        • jkli分别对应光标左移下移右移上移
        • gg & G 分别是首行和最后一行
        • 3G 进入第三行(可以换为其他的数字,进入相应行)
        • /root 查找root
      • 2.文本编辑(非主要)

        • y 复制以行位单位

          • yy 复制一行
          • 3yy 复制三行(从光标所在行开始)
          • ygg 从光标所在位置复制到文首
          • yG 从光标所在位置复制到文末
        • / 后接字符,查找一个字符,按n选择下一个字

        • d 剪贴(实际中作为删除使用)(以行为单位)

          • dd 删除一行
          • 3dd 删除三行(从光标所在行开始)
          • dgg 从此处删除至文首
          • dG 从此处删除至文末
          • D 从光标处删除至行尾
        • p 粘贴

        • u 撤销上一步操作

        • x 删除光标所在的字符

      • 3.进入其他模式

        • a 进入插入模式(光标移动到当前字符的后一位)
        • i 进入插入模式(光标在当前位置)
        • o 进入插入模式(光标另起一行)
        • A 进入插入模式(光标移动至行尾)
        • : 进入末行模式(扩展命令模式)
        • v 进入可视模式
    • 插入模式

      供用户进行输入操作的模式,

      • ctrl + ←/→ 可以跨单词移动光标
      • Home/End 移动至行首或行尾
      • Backspace/Delete 删除前一个字符或删除后一个字符
    • 可视块模式(扩展)

      • 块插入 光标移动选择块,I 在块前插入字符,ESC退出
      • 块替换 光标移动选择快,r 输入替换的字符
      • 块删除 光标移动选择快, d|x
      • 块复制 光标移动选择块,y
    • 扩展命令模式(末行模式):

      • 1.保存及退出的命令

        • :w 保存
        • :q 退出
        • :wq 保存并退出
        • :w! 强制保存
        • :q! 强制退出
        • :wq! 强制保存退出
      • 2.查找替换

        • :10 进入第十行
        • 全局查找并替换
          :% s/old/new/g      #全局查找并替换
          
    • 3.另存为

      ```sh
      :w /tmp/aaa.txt     #另存到tmp下并重命名为aaa.txt
      ```
      
    • 4.设置环境

      ```sh
      :set nu     #显示行号
      
      :set list       #显示控制字符(换行符)
      
      :set nonu   #取消显示行号
      ```
      
      • 在末行模式中进行的设置仅为临时设置的环境若要进行永久的环境变更需要更改配置文件:

        vim /etc/vimrc      #影响全体用户
        
      • 写入相应的命令,如显示行号 set nu,
        如果只是影响一个用户,则修改家目录中的隐藏文件.vimrc
        以root为例

        vim /root/.vimrc
        

    文件权限

    基本权限管理 UGO

    • 与文件相关的用户分类

      • U:文件的所有者

      • G:文件的所有组

      • O:不属于以上两个的用户

    • 基本权限类型

      • 读_r_4

      • 写_w_2

      • 行_x_1

    • 操作命令

      权限设置

      chmod u+x file
      chmod 777 file
      
    • 查看权限

      ll file
      
    • 查看目录

      ll -d dir
      
    • 改变所属

      chown user.group file       #属主属组同时更改
      
      chown user file             #属主更改
      
      chgrp group file        #属组更改
      

    Umask

    Umask是文件权限掩码,控制系统创建的默认文件的权限类型

    单纯输入umask指令为查看当前系统的权限掩码,创建文件时,用777-umask所显示的数值,得到的为默认创建的文件的权限类型

    高级权限

    • suid

    • sgid

    • sticky

    分别为其他人获得属主,属组的权限,修改时在chmod中写入四位,第一位为的数字为相应的高级权限。

    chmod  7777 file
    
    • suid=4

    • sgid=2

    • sticky=1

    对应数字进行设置,设置方式与权限设置方式相同

    文件属性

    设置文件的属性,使其对全体用户(包括root)起效,其中的a属性与i属性需要铭记

    a 只可追加不可写入可以阅读

    i 只可阅读不可追加不可写入

    • 使用命令

      chattr  +a  file
      
      chattr  +i  file
      
    • 查看属性:

      lsattr  file
      
      lsattr +d   mkdir       #查看目录的属性
      

    进程管理

    进程为何物

    • 进程理同windows系统的进程,为已开启的可执行程序的运行实例,主要由以下几个部分构成

      • 1.已分配的内存空间

      • 2.安全属性,包括所有权凭据和特权

      • 3.程序代码的一个或多个执行线程

      • 4.进程状态

      • 5.进程都有一个进程的所有者,即执行进程的人

      • 6.进程体系是一个树状图体系,每个进程之间都有相应的父子关系。类似于一个家谱。

    • 每个进程都有唯一的一个PID,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。子进程继承父进程的安全性神风、过去和当前的文件描述符、端口和资源特权、环境变量以及程序代码(基本就是全部都继承了),获取之后子进程可能执行自己的程序代码。

      • 通常情况下,父进程在子进程运行期间处于休眠(S)状态。

      • 一个进程结束了,但是他的没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸(Z)进程。

      • 孤儿进程:如果某进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程……

    进程查看

    • 进程查看的目的:查看进程的属主,PID,和硬件的使用率,以及进程所花费的时间。进程的属主决定进程的特权。

    • 各个选项卡的含义及进程的状态:

      • 整体键:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDR

        • USER 运行进程的用户

        • PID 进程ID

        • %CPU CPU占用率

        • %MEM 内存占用率

        • VSZ 占用虚拟内存

        • RSS 占用实际内存

        • TTY 进程运行的终端

        • STAT 进程状态

          • R 运行

          • S 可中断睡眠 Sleep

          • D 不可中断睡眠

          • T 停止的进程

          • Z 僵尸进程

          • X 死掉的进程

        • START 进程的启动时间

        • TIME 进程占用CPU的总时间

        • COMMAND 进程文件,进程名

    • 查看进程的命令:

      • ①ps aux | grep process #查找相应的程序

      • ②ps -ef | grep process

      • ③top 动态查看进程

        load average: 0.25, 0.18, 0.12 显示的为CPU每一分钟,五分钟,十五分钟的平均负载

      • ④netstat -anptu 用来查看系统当前的网络状态信息,包括端口、连接情况等。

        -t 显示TCP端口

        -u 显示UDP端口

        -l 仅显示监听套接字

        -p 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序

        -a 显示所有连接的端口

        -n 不进行DNS解析

      • ⑤lsof lsof的作用是列出当前系统打开的文件(list opened files),通过-i参数可以查看端口的链接情况。-i:20,即为查看20端口,如若仅有-i则为查看系统的全部端口的信息。

        lsof -i:80

      • ⑥ss socket statistcs,显示内容与netstat相似,更多的显示有关TCP和连接状态的信息,利用tcp diag,速度更快。

        ss state all sport =:80

    • 杀死命令

      • kill -9 PID 杀死相应PID的进程

      • pkill -u UID 踢出相应UID的用户

      • pkill -t -9 终端号 踢出相应终端号的用户

      • w 查看当前在线的用户及其终端号和UID

    管道及重定向

    I/O重定向

    • 重定向是用来输出到一个文件当中去

      • 一个>为覆盖,两个为追加

        返回的正确信息重定向

        1> 1>> 或 > >>

      • 返回的错误信息重定向

        2> 2>>

      • 全部信息重定向

        &> &>>

      • 重定向到“垃圾箱”

        & > /dev/null
        
    • 输入重定向(一般用于脚本)

      • <

        grep 'root' < /etc/passwd
        

    进程管道 Piping

    • 管道也是进程控制输出到一个程序

      将管道符前面的信息输入到管道符后面,然后再进行操作

      ps aux | grep sshd
      
    • tee管道符

      执行管道符前首先执行tee管道符,输出到一个文件或者屏显,然后执行之后的管道符。

      tee管道符可以输出到文件。

      ip addr |grep 'inet ' |tee ip.txt |awk -F"/" '{print 1}' |awk '{print 2}'
      

    存储管理

    • 硬盘分类

      服务器联通硬盘使用的为硬盘背板。在特定的适用场合,会进行HDD和SSD混装,使用时,2xHDD作为系统盘,4xSSD作为存储盘。(常见于MySQL)(RAID1+RAID5)

      在实际应用中,SN为硬盘的唯一标识

    • 机械硬盘 HDD(Hard Disk Drive)

      属性:转速(10k rpm),规格一般为3.5寸,使用时需加装3.5寸盘架。

    • 固态硬盘 SSD (Solid State Drive)

      没有转速,规格一般为2.5寸,SSD使用时,需加装2.5寸转换架再加装3.5寸盘架。

    • 硬盘接口:STAT或SAS(主流目前就这两种)

    • RAID阵列

      • 什么是RAID?

        独立硬盘冗余阵列RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列Redundant Array of Inexpensive Disks),简称磁盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。

        现在RAID是作为服务器硬盘单盘故障时的保障机制(RAID0除外)

      • RAID阵列类型

        • RAID0_single 用一块盘做的RAID0,线性卷条带集,不存在冗余机制,读写速度最快(通常用于服务器新机装OS)

        • RAID0_all 用两块盘做的RAID0,线性卷条带集,不存在冗余机制,读写速度最快

        • RAID1 镜像卷,一块盘在两快硬盘内写入,空间使用率为50%,支持冗余机制,需要两块盘,允许坏一块盘

        • RAID5 带奇偶校验的条带集,需要三快盘及以上,磁盘利用率为n-1/n,允许坏一块盘,读写速度快,通常配合热备盘使用。

        • RAID10 RAID0与RAID1的综合应用

        • RAID6 带奇偶校验的条带集(双校验),需要四快盘及以上,磁盘利用率n-2/n,允许坏两块盘

      最主要使用的还是RAID1+RAID5

      • 部署RAID:

        服务器开机之后,过BIOS进入提示后,提示Ctrl+R进入RAID卡界面,在其内进行操作。

        F2选择选项卡,Ctrl+N下一个选项卡,Ctrl+F上一个选项卡

    • 基本分区管理

      • fdisk

        不能用于大于2T的磁盘记性分区,可以有四个硬盘主分区。

        • 创建分区

          fdisk /dev/sda  #进入fdisk分区界面
          
          • m进行咨询

          • p创建一个主分区

          • e创建一个扩展分区(扩展分区为主分区不可格式化,不可用于存储,只可创建逻辑分区)

          • l创建一个逻辑分区(扩展分区创建之后才可创建)

        • 操作流程

          fdisk /dev/sda
          
          Command( m for help): n     #此处输入n创建一个新分区
          
          Command action
          
              e   extended
          
              p   primary partition(1-4)
          
          p                           #创建一个主分区
          
          Partition number (1-4): 1       #分区号
          
          First cylinder (1-391,default 1):   #分区起始位置(磁盘扇区),直接回车则从默认位置开始
          Last cylinder  (1-391,default 391):+100M    #分区结束位置,单位为扇区,此处输入想要分配的空间大小
          
      • gdisk

        128个分区,支持更大的磁盘空间,操作流程略同fdisk

        • 创建文件系统(格式化) mkfs.

          CentOS7中默认的文件系统为xfs文件系统

    • 格式化命令:mkfs.加文件系统格式

      • 磁盘分区之后若要使用都要进行格式化命令

        mkfs.xfs /dev/sda/sda1      #事例,给/dev/sda/sda1格式化为xfs文件系统
        
        mkfs.ext4 /dev/sda/sd2      #事例,给/dev/sda/sd2格式化为ext4文件系统
        
    • 挂载 mount

      在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。

      mount /dev/sda /sh      #事例,将硬盘sda挂载到根下的sh目录
      
    • 查看磁盘情况 df -h

      主要为查看磁盘的使用情况以及挂载情况。如果创建文件不能时,优先使用此命令。

    • 逻辑卷管理 LVM

      • 什么是LVM

        LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。

      • LVM出现的目的

        在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。

      • LVM操作流程:

        • ①创建pv

          pvcreate /dev/sda       #事例,将sda创建为pv
          pvcreate /dev/sdb       #事例,将sdb创建为pv
          pvscan                  #查看当前的pv情况
          
        • ②创建vg

          vgcreate datavg /dev/sda    #事例,将pv sda创建为vg
          vgextend datavg /dev/sdb    #事例,将pv sdb添加到vg中
          vgscan                  #查看当前vg情况
          
        • ③创建lv

          lvcreate -L 200M -n lv1 datavg  #事例,创建lv 命名为lv1,指定大小200MB,从于datavg
          lvremove /dev/datavg/lv1            #事例,移除datavg下的lv1。
          
    • LVM的优缺点

      • 优点:实现跨磁盘存储文件,可以将多块磁盘作为一块磁盘使用,可以更加自由的分盘。

      • 缺点:无冗余机制。(企业中用处不大)

    • 创建不了文件

      • ①容量不足 ②inode使用饱和 ③硬盘损坏 ④系统问题

      • 如若遇到问题第一反应:df -h查看硬盘使用率

      • 如果在ext4文件系统下,磁盘使用率正常,却无法创建,则可以断定为inode饱和(一般出现在海量文件存储的服务器)

      • 解决方法:暂时清空tmp,腾出inode

    • 文件系统修复

      • ①fsck 不能百分百保证文件可以修复

        • 1.机器因为磁盘问题无法启动时
          只适用于ext4文件系统

          fsck /dev/sda       #事例
          
        • 2.Read-Only file system

          导致这种情况的原因:①非正常关机②硬盘故障

          解决方法:①umount ②fsck.ext4 -fy /dev/sda

      • ②xfs文件系统的修复

        xfs_repair /dev/sda     #事例
        

    文件查找及打包

    文件查找

    grep为文件内容过滤,不输入此处的范畴
    
    • 命令

      • 1.按名字:

        find /etc -name "ifcfg*"        #事例,从/etc下查找名字为ifcfg开头的文件
        # !-name    非此名字
        # iname 忽略大小写
        
      • 2.按文件大小查找

        find /etc -size +5M         #事例,在/etc中查找文件大小大于5MB的文件
        #-5M    5M      分别为小于5MB和恰好等于5M的文件
        
      • 3.按文件层数查找

        find / -maxdepth 3 -a -name "ifcfg*"    #事例,查找最大层数为三层以内的以ifcfg开头的文件
        
      • 4.按修改时间查找

        find /tmp -mtime +5         #事例,查找/tmp下修改时间大于五天的文件
        
      • 5.按照权限查找

        find /root -perm 644 -ls        #事例,在/root中查找权限为644的文件,并输出权限
        
        find /root -prem -644 -ls       #事例,在/root中查找包含权限644的文件,并输出权限
        
      • 6.搜索并对搜索到的文件进行操作

        find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;   #事例,在/etc下查找名字以ifcfg开头的文件,并对他们执行复制到/tmp下的操作
        
        find /etc -name "yang*" | xargs rm -rf          #事例,在/etc下查找名字以yang开头的文件,并执行删除命令
        

    文件打包及压缩

    • 1.打包

      • tar压缩

        tar -czf etc1.tar.gz /etc       #事例,将/etc打包成gz格式
        
        tar -cjf etc2.tar.bz2 /etc      #事例,将/etc打包成bz2的包
        
        tar -cJf etc3.tar.xz /etc       #事例,将/etc打包成xz的包
        
    • 2.解压

      • tar解压

        tar -xvf etc1.tar.gz            #事例,无需指定文件格式自动匹配解压,tar包万用
        
      • zip解压

        unzip xxx.zip
        

    软件包管理

    • 软件的的类型:

      • ①.源码包 tar 需要编译。
      • ②.二进制包 rpm 已编译
    • RPM包管理

      • 主要获取RPM包的途径:

        • 1.官方网站
        • 2.rpmfind.net
        • 3.相应软件的官方网站
      • RPM包安装

        • 安装及卸载的命令

          rpm -ivh local_path
          rpm -ivh url_path
          rpm -e name --force --nodeps        #事例,强制忽略依赖关系的卸载name
          
        • 额外参数:

          -e                    #erase,删除
          --nosignature             #不检验文件包签名
          --force               #强制安装
          --nodeps          #忽略依赖关系
          
        • 查询:

          rpm -q ntfs-3g        #查询指定包是否安装
          rpm -qa           #查询全体包安装,可以管道符过滤
          
    • 源码包管理

      • 获取源码包的方式:
        - 1.官方网站
        - 2.传输

      • 源码包安装

        准备工作:1.编译环境如编辑器gcc、make 2.准备软件 tengine-2.2.0.tar.gz

      • 源码包安装三部曲

        ./configure --prefix=/usr/local/niginx      #在解压开的源码包目录内prefix后为安装的目录
        make        #编译
        make install        #按照Makefile定义的文件路径安装
        
      • 源码包安装错误的事例

        • error1:

          ./configure:error:the HTTP gzip module requires the **zlib** library.
          You can either disable the module by using --without-http_gzip_module
          option, or install the zlib library into the system, or build the zlib library
          statically from the source with nginx by using --with-zlib=<path> option.
          

          解决方法,安装提示中需要的包

          yum -y install zlib-devel
          
        • error2:

          ./configure: error: SSL modules require the **OpenSSL** library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=<path> option.
          

          安装所需包

          yum -y install openssl-devel
          
        • error3:

          checking for C compiler ... not found ./configure: error: C compiler cc is not found
          

          未安装gcc编译器

          解决方法:

          yum -y install gcc gcc-c++ make
          
        • error4:

          ./configure: error: the HTTP rewrite module requires the **PCRE** library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.
          

          解决方法,安装所需的包:

          yum -y install pcre-devel
          
      • 源码包卸载

        直接到相应路径,删除文件。

    • yum源

      • yum源配置文件存放位置:

        cd /etc/yum.repos.d
        
      • 修改yum源后,需要晴空下yum原信息,并更新yum源仓库信息,执行命令:

        yum clean all
        
        yum makecache
        

        也需要下载下epel-release源

        yum -y install epel-release
        

        并修改epel源,之后投入使用。

    计划任务

    • 一次性调度执行at

      yum -y install at           #安装at服务
      systemctl start atd     #启动
      systemctl enable atd        #开机自启动
      
      • 语法格式

        at now +1min
        at>useradd uuu
        at> <EOT>
        job 1 at Sat Mar 21 22:34:00 2015
        
    • 循环调度执行cron 用户级

      • cron的作用方式:crond进程会每分钟处理一次计划任务

      • cron存放的位置:/var/spool/cron

      • 管理方式:

        crontab -l      #列出当前用户的计划任务
        
        crontab -r      #移除当前用户的计划任务
        
        crontab -e      #编辑当前用户的计划任务
        
      • cron编辑过程中的格式:

        a b c d e command

        a:分 b:时 c:日 d:月 e:周

      • 特殊语法

        */5 * *  *  * /mysql_back.sh    #每隔五分钟执行一次脚本mysql_back.sh
        0 2 1,4,6 * * /mysql_back.sh    #每月的1,4,6号执行脚本mysql_back.sh
        00 02 1-8 * * ls                #每月的1-8号
        

    系统日志 rsyslog

    不同的服务有自身的日志记录(httpd、nginx、mysql)

    • 重要的日志有以下几种

      /var/log/message OS主日志(记录硬件问题,服务等)

      /var/log/secure 认证安全日志(登录报错等)

      /var/log/cron cron、at的进程日志

      /var/log/dmesg 和系统启动相关的日志

    • 日志报错的级别

      • LOG-EMERG 紧急、致命(如配置文件丢失)

      • LOG-ALERT 报警、需立即处理(如磁盘空间使用过高)

      • LOG-CRIT 致命

      • LOG-ERR 错误

      • LOG-WARNING 警告

      • LOG-NOTICE 普通提醒

      • LOG-INFO 标准信息

      • LOG-DEBUG 报错反馈(不建议在实际中使用)

    日志轮转 logrotate

    • 针对任何日志文件(rsyslog、Nginx访问或错误日志等)

    • 日志轮转的意义

      如果没有日志轮转,日志文件会越来越大,查看起来繁琐。日志轮转之后可以丢弃最久的日志文件,以节省空间。

    • logrotate本身不是系统守护进程,它是通过计划任务crond每天执行的

      cat /etc/cron.daily/logrotate  #一下为文件显示的内容
      
      !/bin/sh/usr/sbin/logrotate -s
      /var/lib/logrotate/logrotate.status
      /etc/logrotate.conf #日志轮转规则按照/etc/logrotate.conf
      
    • 相关的文件

      /etc/logrotate.conf #决定每个日志文件如何轮转

      /etc/logrotate.d/* #决定每个日志怎么轮转

      vim /etc/logrotate.conf 
      #=========全局设置==========#
      weekly                                       #轮转的周期,一周轮转
      rotate 4                                         #保留4份
      create                                       #轮转后创建新文件
      dateext                                      #使用日期作为后缀
      compress                                 #是否压缩
      include /etc/logrotate.d             #包含该目录下的文件
      
      /var/log/wtmp {                      #对该日志文件设置轮转的方法
          monthly                                  #一月轮转一次
          minsize 1M                           #最小达到1M才轮转
          create 0664 root utmp            #轮转后创建新文件,并设置权限
          rotate 1                                     #保留一份
      }
      
      /var/log/btmp {
          missingok                               #丢失不提示
          monthly                                 #每月轮转一次
          create 0600 root utmp           #轮转后创建新文件,并设置权限
          rotate 1                                    #保留一份
      }
      
      #例子:轮转文件/var/log/yum.log
      
      
      vim /etc/logrotate.d/yum
      
      /var/log/yum.log{
      missingok                   #丢失不提醒
      notifempty              #空文件不轮转
      size 30k                    #轮转大小
      yearly
      daily                           #每天轮转一次
      rotate 3                    #保留最新的三份
      create 0777 root root
      }
      

    Linux网络管理

    • 网卡位置

      /etc/sysconfig/network-script/ifcfg-eth0

    • 网卡内容

      vim /etc/sysconfig/network-script/ifcfg-eth0            #打开网卡
      
      NAME="eth0"                     #网卡名
      DEVICE="eth0"                   #设备名
      TYPE=Ethernet                   #以太网类型
      ONBOOT=yes                      #开机启动
      BOOTPROTO=none              #IP获取方式,也可以是dhcp自动获取,若为dhcp则不需要自己设置ip
      IPADDR=10.18.42.20      #IP地址
      PREFIX=24                           #子网掩码,也可以写为 NETMASK=255.255.255.0
      GATEWAY=10.18.2.1           #网关
      DNS1=8.8.8.8                    #DNS1
      DNS2=114.114.114.114    #DNS2
      
      
    • DNS服务器填写位置

      /etc/resolv.conf

      vim /etc/resolv.conf
      
      Generated by NetworkManager
      nameserver  114.114.114.114     #格式
      

    相关文章

      网友评论

          本文标题:Linux入门(尚未完成)

          本文链接:https://www.haomeiwen.com/subject/kaehcqtx.html