我的Linux学习笔记(2)

前言

此文章为本人自学Linux的学习笔记,供自己和小白学习参考,如有错误和问题,欢迎各位评论,一起进步。自学课程为韩顺平老师的《2021图解Linux全面升级》,笔记为参考韩老师的教学笔记综合个人情况进一步总结。特别注意:指令中的符号均为纯英文符号,在记录过程中可能误将中文符号记进去,为了方便阅读识别,指令中还不同数的多加了空格,学习时请读者自行识别。


目录

前言

8.1 crond 任务调度

8.1.1 概述

8.1.2 基本语法

8.1.3 快速入门

8.1.4 五个占位符说明

8.1.5 特殊符号说明

 8.1.6 应用实例

8.2 at定时任务

 8.2.1 概述

 8.2.2 相关指令

8.2.3 at时间定义

九、磁盘分区,挂载

9.1 Linux分区

9.1.1 原理介绍

 9.1.2 硬盘说明

9.1.3 查看所有设备挂载情况

 9.2 分区、格式化和挂载

9.2.1 分区

 9.2.2 格式化磁盘

9.2.3 挂载与解除

9.3 磁盘情况查询

9.3.1 查询系统整体磁盘使用情况

9.3.2 查询指定目录磁盘使用情况

9.4 磁盘情况-工作实用指令

十、网络配置

10.1 网络环境配置

10.1.1 指令

10.1.2 网络环境配置

10.2 设置主机名和hosts映射

10.3 主机名解析过程

10.3.1 Hosts 是什么

10.3.2 DNS是什么

10.3.3 解析过程

十一、进程管理

11.1 基本介绍

11.2 显示系统执行的进程

11.2.1 ps命令基本介绍

11.2.2 常用选项

11.2.3 System V页面介绍(ps -aux)

11.2.4 BSD页面介绍(ps -ef)

11.3 终止进程命令kill和killall

11.3.1 基本语法

11.3.2 常用选项

11.4 查看进程树pstree

11.4.1 基本语法

11.4.2 常用选项

11.5 服务(service)管理

11.5.1 介绍

11.5.2 service管理指令

 11.5.3 chkconfig指令

11.5.4 systemctl管理指令

11.5.5 systemctl设置服务的自启动状态

11.5.6 firewall指令

11.6 动态监控进程top

11.6.1 指令

11.6.2 常用选项

11.6.3 交互操作说明

11.7 监控网络状态

11.7.1 查看系统网络情况netstat

11.7.2 常用选项

 十二、rpm与yum

12.1 rpm包的管理

12.1.1 介绍

12.1.2 基本指令

12.2 yum

12.2.1 介绍

12.2.2 基本语法

十三、日志管理

13.1 基本介绍

13.2 系统常用的日志

 13.3 日志管理服务rsyslogd

13.3.1 基本语法

13.3.2 日志配置文件介绍

13.3.3 添加日志文件

 13.3.4 日志记录的内容

 13.4 日志轮替

13.4.1 基本介绍

13.4.2 日志轮替文件命名

13.4.3 /etc/logrotate.conf 配置文件

13.4.4 添加日志轮替文件

13.4.5 日志轮替机制

13.5 查看内存日志

 十四、内核升级

十五、备份与恢复

15.1 基本介绍

15.2 安装dump和restore

15.3 使用dump完成备份

15.3.1 基本介绍

15.3.2 基本语法

15.3.3 dump应用案例

15.3.4 dump -W

15.3.5 查看备份时间文件

 15.3.6 dump备份文件或目录

15.4 使用restore完成恢复

15.4.1 基本介绍

15.4.2 restore基本语法

总结


八、定时任务调度

8.1 crond 任务调度

8.1.1 概述

任务调度:是指系统在某个时间执行的特定的命令或程序

8.1.2 基本语法

  • crontab 选项
  •  service crond restart 重启任务调度

常用选项:

  • -e  编辑crontab定时任务
  • -l  查询crontab任务
  • -r  删除当前用户所有的crontab任务

8.1.3 快速入门

  • 设置任务调度文件:/etc/crontab
  • 设置个人任务调度:crontab -e

编辑任务文件:

如:*/1 * * * * ls -l /etc/ > /tmp/to.txt

意思是每小时的每分钟执行ls -l /etc/ > /tmp/to.txt命令

8.1.4 五个占位符说明

8.1.5 特殊符号说明

 8.1.6 应用实例

8.2 at定时任务

 8.2.1 概述

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。
  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
  3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
  4. 在使用at命令的时候,一定要保证atd进程的启动,相关指令:ps -ef | grep atd
  5. 示意图:

 8.2.2 相关指令

  • at 选项 时间 进入at任务编辑
  • atq 查询at任务列表
  • atrm 编号 删除编号的任务
  • Ctrl + D (按两次)结束at命令的输入

常用选项:

  • -m:当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
  • -I:atq的别名
  • -d:atrm的别名
  • -v:显示任务将被执行的时间
  • -c:打印任务的内容到标准输出
  • -V:显示版本信息
  • -q <队列>:使用指定的队列
  • -f <文件>:从指定文件读入任务而不是从标准输入读入
  • -t <时间参数>:以时间参数的形式提交要运行的任务

8.2.3 at时间定义

at 指定时间的方法:

  1. 接受在当天的hh:mm(小时:分钟)式的时间指定。若该时间已过去,则放在第二天执行。eg:04:00
  2. 使用midnight,noon(中午),teatime(一般是下午四点)等比较模糊的词语来指定时间。
  3. 采用12小时计时制,即在时间后面加上am或pm来说明是上午还是下午。eg:12pm
  4. 指定命令执行的具体日期,指定格式为month day或mm/dd/yy(月/日/年),或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。
  5. 使用相对计时法。指定格式为:now+count time-unitsnow是当前时间,time-units是时间单位,可以为:minutes,hours,days,weekscount是时间的数量。eg:now + 5 minutes
  6. 直接使用today,tomorrow来指定完成命令的时间。

九、磁盘分区,挂载

9.1 Linux分区

9.1.1 原理介绍

  1. Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构, Linux中每个分区都是用来组成整个文件系统的一部分。
  2. Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
  3. 示意图:

 9.1.2 硬盘说明

  1. Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
  2. 对于IDE硬盘,驱动器标识符为hdx~,其中hd表明分区所在设备的类型,这里是指IDE硬盘。x为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),~代表分区,前四个分区用数字1到4表示,它们是主分区或拓展分区,从5开始就是逻辑分区。
  3. 对于SCSI硬盘则标识为sdx~,SCSI硬盘是用sd来表示分区所在的设备类型,其余则和IDE硬盘的表示方法一样。

9.1.3 查看所有设备挂载情况

  • lsblk
  • lsblk -f

 9.2 分区、格式化和挂载

9.2.1 分区

fdisk  /dev/sdb  开始对/sdb分区

m:显示命令列表

p:显示磁盘分区(同fdisk -l)

n:新增分区

d:删除分区

w:写入并退出

  • 说明:开始分区后输入n,新增分区,然后选择p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q.

 9.2.2 格式化磁盘

分区指令:mkfs -t ext4 /dev/sdb1

其中ext4是分区类型

9.2.3 挂载与解除

挂载:将一个分区与另一个目录联系起来。

mount  设备名称  挂载目录 

eg:mount /dev/sdb1 /newdisk

umount  设备名称 或者 挂载目录

eg:umount /dev/sdb1  或者  umount /newdisk

  • 注意:用命令行挂载,重启后会失效!
  1. 永久挂载:通过修改/etc/fstab 实现挂载
  2. 修改完成后,执行mount -a 即可生效

9.3 磁盘情况查询

9.3.1 查询系统整体磁盘使用情况

指令:df  -h

9.3.2 查询指定目录磁盘使用情况

du -h  目录  默认为当前目录

tree 目录  以树状显示目录结构

常用选项:

-s:指定目录占用大小汇总

-h:带计量单位

-a:含文件

--max-depth=数字:子目录深度

-c:列出明细的同时,增加汇总值

实例:

查询/opt目录的磁盘占用情况,深度为1

du -hac --max-depth=1 /opt

9.4 磁盘情况-工作实用指令

(1)统计/opt文件夹下文件的个数

         ls -l /opt | grep "^-" | wc -l

(2)统计/opt文件夹下目录的个数

         ls -l /opt | grep "^d" | wc -l

(3)统计/opt文件夹下文件的个数,包括子文件夹里的

         ls -lR /opt | grep "^-" | wc -l

(4)统计/opt文件夹下目录的个数,包括子文件夹里的

         ls -lR /opt | grep "^d" | wc -l

(5)以树状显示目录结构tree目录

十、网络配置

10.1 网络环境配置

10.1.1 指令

  • ifconfig  查看网络配置
  • ping ip  测试主机之间网络连通性

10.1.2 网络环境配置

  • 第一种方式(自动获取):登陆后,通过界面的设置自动获取ip,特点:linux启动后会自动获取ip,缺点是每次自动获取的ip地址不一样
  • 第二种方式(指定ip):

说明:直接修改配置文件来指定ip,并可以连接到外网

操作:编辑 /etc/sysconfig/network-scripts/ifcfg-ens33

ifcfg-ens33  文件说明:
TYPE="Ethernet"        #网卡类型(通常是Ethemet以太网)
PROXY_METHOD="none"    #代理方式:为关闭状态
BROWSER_ONLY="no"    #只是浏览器:否
BOOTPROTO="static"    #网卡的引导协议【static:静态IP  dhcp:动态IP   none:不指定,不指定容易出现各种各样的网络受限】
DEFROUTE="yes"        #默认路由
IPV4_FAILURE_FATAL="no"        #是否开启IPV4致命错误检测
IPV6INIT="yes"        #IPV6是否自动初始化:是(现在还未用到IPV6,不会有任何影响)
IPV6_AUTOCONF="yes"    #IPV6是否自动配置:是(现在还未用到IPV6,不会有任何影响)
IPV6_DEFROUTE="yes"    #IPV6是否可以为默认路由:是(现在还未用到IPV6,不会有任何影响)
IPV6_FAILURE_FATAL="no"        #是否开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE="stable-privacy"    #IPV6地址生成模型
NAME="ens33"        #网卡物理设备名称
UUID="ab60d501-535b-49f5-a76b-3336a4120f64"#通用唯一识别码,每一个网卡都会有,不能重复,否则两台linux机器只有一台可上网
DEVICE="ens33"        #网卡设备名称,必须和‘NAME’值一样
ONBOOT="yes"        #是否开机启动,要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
IPADDR=192.168.137.129        # 本机IP
NETMASK=255.255.255.0        #子网掩码
GATEWAY=192.168.137.2        #默认网关
DNS1=8.8.8.8        #域名解析器
DNS2=8.8.8.5        #域名解析器
ZONE=public#

service network restart  重启网络服务生效

10.2 设置主机名和hosts映射

hostname  查看主机名

  • 修改主机名:修改/etc/hostname后重启生效
  • /etc/hosts  文件指定主机名映射:ip  名字

10.3 主机名解析过程

10.3.1 Hosts 是什么

一个文本文件,用来记录IPHostname(主机名)的映射关系

10.3.2 DNS是什么

DNS就是Domain Name System的缩写,翻译过来就是域名系统,是互联网上作为域名和IP地址相互映射的一个分布式数据库

10.3.3 解析过程

(1)浏览器先检查浏览器缓存中有没有该域名解析P地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为本地解析器缓存

(2)一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录),如在cmd窗口中输入

ipconfig /displaydns   DNS域名解析缓存

ipconfig /flushdns   清理DNS缓存

(3)如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。

(4)如果本地DNS解析器缓存 和 hosts文件中均没有找到对应的IP,则到域名服务DNS进行解析域

(5)示意图:

十一、进程管理

11.1 基本介绍

  1. 在Linux中,每个执行的程序都被称为一个进程。每一个进程都分配一个ID号(pid)。
  2. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  3. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。

11.2 显示系统执行的进程

11.2.1 ps命令基本介绍

ps命令是用来查看目前系统中有哪些正在执行,以及它们执行的状况。

ps 选项  查看进程列表

11.2.2 常用选项

  • -a  显示当前终端的所有进程信息
  • -u  以用户的格式显示进程信息
  • -x  显示后台进程运行的参数
  • -e  显示所有进程
  • -f  全格式

11.2.3 System V页面介绍(ps -aux)

  • USER: 用户
  • PID:进程号
  • %CPU:进程占用CPU百分比
  • %MEM:进程占用物理内存的百分比
  • VSZ:进程占用的虚拟内存大小(单位:KB)
  • RSS:进程占用的物理内存大小(单位:KB)
  • TTY:终端名称,缩写
  • STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
  • START:进程的启动时间
  • TIME:进程使用CPU的总时间
  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

11.2.4 BSD页面介绍(ps -ef)

  •  UID:用户ID
  • PID:进程ID
  • PPID:父进程ID
  • C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高。
  • STIME:进程启动的时间
  • TTY:完整的终端名称
  • TIME:进程在CPU运行的时间、
  • CMD:启动进程所用的命令和参数

11.3 终止进程命令kill和killall

11.3.1 基本语法

kill 选项 进程号  通过进程号终止进程

killall 进程名称  通过进程名称终止进程,也支持通配符

11.3.2 常用选项

  • -9:强制终止进程

11.4 查看进程树pstree

11.4.1 基本语法

pstree 选项  查看进程树

11.4.2 常用选项

  • -p:显示进程的PID
  • -u:显示进程的所属用户

11.5 服务(service)管理

11.5.1 介绍

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd防火墙等),因此我们又称为守护讲程。

11.5.2 service管理指令

service  服务名  start | stop | restart | reload | status   

在CentOS7.0后,很多服务不再使用service,而是用systemctl

service指令管理的服务在/etc/init.d 查看

 11.5.3 chkconfig指令

  1. 通过chkconfig指令可以给服务的各个运行级别设置自启动或关闭
  2. chkconfig指令管理的服务可以在/etc/init.d查看
  3. 注意:Centos7.0后,很多服务使用systemctl管理。
  4. 使用chkconfig重新设置服务自启动或关闭后,需重启机器生效

chkconfig --list  查看服务

chkconfig 服务名 --list

chkconfig --level 数字 服务名 on/off  设置自启动/关闭

11.5.4 systemctl管理指令

systemctl  start | stop | restart | status  服务名

systemctl指令管理的服务在 /usr/lib/systemd/system 查看

11.5.5 systemctl设置服务的自启动状态

systemctl list-unit-files  查看服务的开机启动状态

systemctl enable/disable 服务名  设置/关闭服务开机启动

systemctl is-enabled 服务名  查询服务是否是自启动的

11.5.6 firewall指令

firewall-cmd --permanent --add-port=端口号/协议  开放端口

firewall-cmd --permanent --remove-port=端口号/协议  关闭端口

firewall-cmd --reload  重载防火墙服务(开放,关闭重启才生效)

firewall-cmd --query-port=端口/协议  查看端口是否开放

11.6 动态监控进程top

11.6.1 指令

top 选项  

11.6.2 常用选项

-d:指定top命令每隔几秒更新,默认为3秒

-i:使top不显示任何闲置或僵死进程

-p:通过指定监控进程ID来仅仅监控某个进程的状态

11.6.3 交互操作说明

 u :监控某个命令的进程

k:结束某个进程

11.7 监控网络状态

11.7.1 查看系统网络情况netstat

netstat 选项

11.7.2 常用选项

-an:按一定顺序排列输出

-p:显示哪个进程在调用

 十二、rpm与yum

12.1 rpm包的管理

12.1.1 介绍

  1. rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.rpm拓展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
  2. Linux的分发版本都有采用(suse,redhat,centos等等),可以算是公认的行业标准了。

12.1.2 基本指令

rpm -qa  查看已安装的所有rpm软件包

rpm -qa | grep xxx  

rpm -q 软件包名  查询软件包是否安装

rpm -qi 软件包名  查询软件包信息

rpm -ql 软件包名  查询软件包中的文件

rpm -qf 文件全路径名  查询文件所属的软件包

rpm -e 软件包名  卸载rpm包

rpm -ivh rpm包全路径名称  安装rpm包(i=install安装,v=verbose提示,h=hash进度条)

注意:

  1. 如果要卸载的软件包被其他软件包依赖,卸载时会产生错误信息,如果要强制删除可以加上参数--nodeps,删除后可能依赖该包的程序无法运行

12.2 yum

12.2.1 介绍

yum是一个Shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载rpm包并安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包。

12.2.2 基本语法

yum list | grep xxx  查询yum服务器是否有需要安装的软件

yum install xxx  下载安装指定的yum包

rpm -e xxx  卸载xxx

十三、日志管理

13.1 基本介绍

  1. 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
  2. 日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。
  3. 可以这样理解日志是用来记录重大事件的工具。

13.2 系统常用的日志

  • /var/log/ 目录就是系统日志文件的保存位置

  • 系统常用的日志

 13.3 日志管理服务rsyslogd

CentOS7.6日志服务是rsyslogd,CentOS6日志服务是syslogd。rsyslogd的使用、日志文件的格式,和syslogd服务兼容的。

13.3.1 基本语法

ps aux | grep rsyslog | grep -v grep  查询rsyslogd服务是否启动

systemctl list-unit-files  查询rsyslogd服务的自启动的状态

13.3.2 日志配置文件介绍

配置文件:/etc/rsyslog.conf

介绍:

文件中格式为 *.* 

第一个*代表日志类型,第二个*代表日志级别

  • 日志类型

*:所有

auth:pam产生的日志

authpriv:ssh、ftp等登录信息的验证信息

corn:时间任务相关

kern:内核

lpr:打印

mail:邮件

mark(syslog)-rsyslog:服务内部的信息,时间标识

news:新闻组

user:用户程序产生的相关信息

uucp:unix to nuix copy主机之间的相关通信

local 1-7:自定义的日志设备

  •  日志级别

*:所有

none:什么都不记录

debug:有调试信息的,日志通信最多

info:一般信息日志,最常用

notice:最具有重要性的普通条件的信息

warning:警告级别

err:错误级别,阻止某个功能或者模块不能正常工作的信息

crit:严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert:需要立刻修改的信息

emerg:内核崩溃等重要信息

注意:从上到下,级别从低到高,记录信息越来越少

13.3.3 添加日志文件

 13.3.4 日志记录的内容

  1. 事件产生的时间
  2. 产生事件的服务器的主机名
  3. 产生事件的服务名或程序名
  4. 事件的具体信息

 13.4 日志轮替

13.4.1 基本介绍

日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除。

13.4.2 日志轮替文件命名

  1. CentOS7使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过/etc/logrotate.conf配置文件中”dateext“参数。
  2. 如果配置文件中有”dateext“参数,那么日志会用日期来作为日志文件的后缀,例如”secure-20201010”。这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志的个数,删除多余的日志文件即可。
  3. 如果配置文件中没有“dateext”参数,日志文件就需要进行改名了。当第一次进行日志轮替时,当前的“secure”日志会自动改名为“’secure.1”,然后新建“secure”日志,用来保存新的日志。当第二次进行日志轮替时,“’secure.1”会自动改名为“’secure.0”,当前的“’secure”日志会自动改名为“’secure.1”,然后也会新建“’secure”日志,用来保存新的日志,以此类推。

13.4.3 /etc/logrotate.conf 配置文件

  •  说明

# rotate log files weekly   每周对日志文件进行一次轮替

weekly

每周对日志文件进行一次轮替

# keep 4 weeks worth of backlogs  

rotate 4

共保存4份日志文件,当红建立新的时,超过四份的部分被删除

# create new (empty) log files after rotating old ones

create

创建新的空的日志文件,在日志轮替后

# use date as a suffix of the rotated file

dateext

使用日期作为日志轮替文件的后缀

# uncomment this if you want your log files compressed

日志文件是否压缩。如果取消注释,则日志会在转储的同时进行压缩

#compress

# RPM packages drop log rotation information into this directory

include /etc/logrotate.d

包含/etc/logrotate.d目录中所有的子配置文件。也就是说会把这个目录中的所有子配置文件读取进来

下面是单独设置,优先级更高

# no packages own wtmp and btmp -- we'll rotate them here

/var/log/wtmp {

    monthly                 #每月对日志文件进行一次轮替

    create 0664 root utmp        #建立新的日志文件,权限是0664,所有者是root,所属组是utmp

        minsize 1M    #日志文件最小轮替大小为1MB,文化超过1MB才会轮替,否则时间达到一个月也不进行日志轮替

    rotate 1     #仅保留一个日志备份。也就是只有wtmp和twmp.1日志保留

}

/var/log/btmp {

    missingok    #如果日志不存在,则忽略该日志的警告信息

    monthly

    create 0600 root utmp

    rotate 1

}

# system-specific logs may be also be configured here.         

  • 配置文件参数说明

daily:日志轮替在周期是每天

weekly:日志轮替在周期是每周

monthly:日志轮替在周期是每月

rotate 数字:保存的日志文件个数,0指没有备份

compress:日志轮替时,旧的日志惊醒压缩

create mode owner group:建立新日志,同时指定新日志的权限与所有者和所属组

mail address:当日志轮替时,输出内容通过邮件发送到指定的邮件地址

missingok:如果日志不存在,则忽略该日志的警告信息

notifempty:如果日志为空文件,则不进行日志轮替

minsize 大小:日志文件轮替大小的最小值,否则时间达到也不进行日志轮替

seze 大小:日志只有大于指定大小才进行轮替,而不是按照时间轮替

dateext:使用日期作为日志轮替文件的后缀

sharedscripts:在此关键字之后的脚本只执行一次

preotate/endscript:在日志轮替之前执行脚本命令

postrotate/endscript:在日志轮替之后执行脚本命令

13.4.4 添加日志轮替文件

  1. 第一种方法是直接在/etc/logrotate.conf配置文件中写入该日志的轮替策略
  2. 第二种方法是在/etcl/ogrotate.d/目录中新建立该日志的轮替文件,在该轮替文件中写入正确的轮替策略,因为该目录中的文件都会被“include”到主配置文件中,所以也可以把日志加入轮替。
  3. 推荐使用第二种方法,因为系统中需要轮替的日志非常多,如果全都直接写入/etc/logrotate.conf配置文件,那么这个文件的可管理性就会非常差,不利于此文件的维护。

13.4.5 日志轮替机制

日志轮替之所以可以在指定的时间备份日志,是依赖系统定时任务。在letclcron.daily/目录,就会发现这个目录中是有logrotate文件(可执行),logrotate通过这个文件依赖定时任务执行的。

13.5 查看内存日志

journalctl   查看全部内存日志

journalctl  -n  3    查看最新3条

journalctl  --since  19:00  --until  19:10:10   查看时间段内的日志(可加日期)

journalctl  -p  err    报错日志

journalctl  -o  verbose    日志详细内容

journalctl_PID=1245  _COMM=sshd    查看包含这些参数的日志(在详细日志查看)

或者journalctl | grep sshd

 十四、内核升级

uname -a  查看当前的版本内核

yum info kernel -q  检测内核版本,显示可以升级的内核

yum update kernel  升级内核

yum list kernel -q  查看已安装的内核

十五、备份与恢复

15.1 基本介绍

linux的备份和恢复很简单,有两种方式:

  1. 把需要的文件(或者分区)用TAR打包就行,下次需要恢复的时候,再解压开覆盖即可
  2. 使用dump和restore命令

15.2 安装dump和restore

yum -y install dump

yum -y install restore

15.3 使用dump完成备份

15.3.1 基本介绍

dump支持分卷和增量备份(增量备份:备份上次备份后,修改/增加过的文件,也称差异备份)。

15.3.2 基本语法

dump  -数字cu  -f  备份后文件名  -T  日期  目录或文件系统

dump  选项

常用选项:

-数字:0-9:0为最完整备份,会备份所有文件。若指定0以上的层级,则备份至上一次备份以者修改或新增的文件,到9后,可以再次轮替。

-c:创建新的归档文件,并将由一个或多个文件参数所指定的内容写入归档文件的开头。

-f :备份后的文件名:指定开始备份的时间与日期

-j:调用bzlib 库压缩备份文件,也就是将备份后的文件压缩成bz2格式,让文件更小

-T 日期:指定开始备份的时间与日期

-u:备份完毕后,在/etc/dumpdares 中记录备份的文件系统,层级,日期与时间等。

-t:指定文件名,若该文件已存在备份文件中,则列出名称

-W:显示需要备份的文件及其最后一次备份的层级,时间,日期。

-w:与-W类似,但仅显示需要备份的文件。

15.3.3 dump应用案例

  • dump应用案例1

将/boot分区所有内容备份到/opt/boot.bak0.bz2文件中,备份层级为“0”

dump -0uj -f /opt/boot.bak0.bz2 /boot

  • dump应用案例2

在/boot 目录下增加新文件,备份层级为“1”(只备份上次使用层次“0”备份后发生过改变的数据),注意比较看看这次生成的备份文件boot1.bak有多大

dump -1uj -f /opt/boot.bak1.bz2 /boot

提醒:通过dump命令在配合crontab可以实现无人值守备份

15.3.4 dump -W

作用:显示需要备份的文件及其最后一次备份的层级,时间,日期 

15.3.5 查看备份时间文件

cat /etc/dtmpdates

 15.3.6 dump备份文件或目录

前面我们在备份分区时,是可以支持增量备份的,如果备份文件或者目录,不再支持增量备份,即只能使用0级别备份

eg:使用dump备份/etc整个目录

dump -0j -f /opt/etc.bak.bz2 /etc/

#下面这条语句会报错,提示DUMP: Only level 0 dumps are allowed on a subdirectory

dump -1j -f /opt/etc.bak.bz2 /etc/

15.4 使用restore完成恢复

15.4.1 基本介绍

restore命令用来恢复已备份的文件,可以从dumo生成的备份文件中恢复源文件

15.4.2 restore基本语法

restore 模式选择 选项

说明下面四个模式,不能混用,在一次命令中,只能指定一种。

-C:使用对比模式,将备份的文件与已存在的文件相互对比。

-i:使用交互模式,在进行还原操作时,restors指令将依序询问用户

-r:进行还原模式

-t:查看模式,看备份文件有哪些文件

  • 选项

-f 备份的文件:从指定的文件中读取备份数据,进行还原操作


总结

2022/9/17 19:27 完。

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值