linux(日志管理、磁盘/内存管理、scp)

笔记

一、linux根据内容搜索指定文件

假设存在日志文件 hrun.log,查询的关键字为"新增用户":

  1. 根据关键字查看日志 : cat hrun.log | grep "新增用户"

  2. 根据关键字查看后10行日志: cat hrun.log | grep "新增用户" -A 10

  3. 根据关键字查看前10行日志: cat hrun.log | grep "新增用户" -B 10

  4. 根据关键字查看前后10行日志,并显示出行号: cat -n hrun.log | grep "新增用户" -C 10

  5. 查看日志前 50 行: cat hrun.log | head -n 50

  6. 查看日志后 50 行,并显示出行号:cat -n hrun.log | tail -n 50

说明:
-A 表示关键字之后,After
-B 表示关键字之前,Before
-C 表示关键字前后,Context

二、六种查看日志的命令

1、tail

1.1 命令功能

tail 命令从指定点开始将文件写到标准输出。

1.2 命令格式

tail[必要参数][选择参数][文件]

1.3 命令参数

命令说明
-f循环读取
-q不显示处理信息
-v显示详细的处理信息
-c显示的字节数
-n显示行数

-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

1.4 使用实例tail -n 10 file.log 查询日志尾部最后10行的日志;

tail -n +10 file.log 查询第10行之后的所有日志;

tail -fn 100 file.log 循环实时查看最后100行记录tail一般还会配合着grep用tail -fn 1000 file.log | grep '关键字’如果查询的数据量太大,Ctrl + F 或者 空格键可以翻页查看tail -n 5000 file.log |more -1000

2、head

2.1 命令功能

head跟tail是相反,用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。head -n 10 file.log 查询日志文件中的头10行日志;

head -n -10 file.log 查询日志文件除了最后10行的其他所有日志;

2.2 命令格式

tail[必要参数][选择参数][文件]

2.3 命令参数

参考tail

3、cat

**3.1 命令功能一次显示整个文件:**cat filename

从键盘创建一个文件(只能创建新文件,不能编辑已有文件):cat > filename

将几个文件合并为一个文件:cat file1 file2 > file

3.2 命令格式

cat [选项] [文件]…

3.3 命令参数

命令说明
-A, --show-all等价于 -vET
-b, --number-nonblank对非空输出行编号
-e等价于 -vE
-E, --show-ends在每行结束处显示 $
-n, --number对输出的所有行编号,由1开始对所有输出的行数编号

-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行

-t 与 -vT 等价

-T, --show-tabs 将跳格字符显示为 ^I

-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

3.4 使用实例把 file1.log 的文件内容加上行号后输入
file2.log 这个文件里cat -n file1.log file2.log把 file1.log 和 file2.log 的文件内容加上行号(空白行不加)之后将内容附加到 file.log 里cat -b file1.log file1.log file.log把 file1.log 的文件内容加上行号后输入 file.log 这个文件里cat -n file1.log > file.logtac 是将 cat 反写过来,所以他的功能就跟 cat 相反

4、more

4.1 命令功能

more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

4.2 命令语法
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file … ]

4.3 命令参数后加n

从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能

-l 忽略Ctrl+l(换页)字符

-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

-s 把连续的多个空行显示为一行

-u 把文件内容中的下画线去掉

4.4 常用操作命令Enter 向下n行,需要定义,默认为1行

Ctrl + F 向下滚动一屏

空格键 向下滚动一屏

Ctrl + B 返回上一屏

= 输出当前行的行号

:f 输出文件名和当前行的行号

V 调用vi编辑器

!命令 调用Shell,并执行命令

q 退出more

4.5 使用示例显示文件中从第3行起的内容
more +3 file.log
从文件中查找第一个出现test字符串的行,并从该处前两行开始显示输出more +/test file.log
设定每屏显示行数
more -5 log2012.log

5、less

5.1 命令功能

less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而 less 既可以向前移动,也可以向后移动。

5.2 命令格式
less [参数] 文件

5.3 命令参数

-b 设置缓冲区的大小

-e 当文件显示结束后,自动离开

-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件

-g 只标志最后搜索的关键词

-i 忽略搜索时的大小写

-m 显示类似more命令的百分比

-N 显示每行的行号

-o 将less 输出的内容在指定文件中保存起来

-Q 不使用警告音

-s 显示连续空行为一行

-S 行过长时间将超出部分舍弃

-x 将“tab”键显示为规定的数字空格

5.4 常用操作命令/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

b 向后翻一页

d 向后翻半页

h 显示帮助界面

Q 退出less 命令

u 向前滚动半页

y 向前滚动一行

空格键 滚动一行

回车键 滚动一页

[pagedown]: 向下翻动一页

[pageup]: 向上翻动一页

5.5 less命令在查询日志时
一般流程是这样的less file.log
shift + G 命令到文件尾部 然后输入 ? 加上你要搜索的关键字例如:?test
按 n 向上查找关键字
shift + n 反向查找关键字

6、sed

6.1 命令功能

这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询

6.2 使用示例按照行号:
只查看文件的第5行到第10行:sed -n ‘5,10p’ file.log
按照时间段:sed -n ‘/2019-12-17 16:17:20/,/2019-12-17 16:17:36/p’ file.log

三、 Linux磁盘/内存管理

1、linux查看磁盘空间

参考:菜鸟教程

(1)df(Display Filesystem)查看文件系统

df: 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,空间单位默认为K。

-h :(human),数字大小可读性,显示为如1M,1G单位
-TType 显示文件系统类型
-t :--type=Type 显示类型为Type的文件系统

在这里插入图片描述
显示内容参数说明:

  • Filesystem:文件系统
  • Type: 文件系统类型
  • Size: 分区大小
  • Used: 已使用容量
  • Avail: 还可以使用的容量
  • Use%: 已用百分比
  • Mounted on: 挂载点

(2)du (disk usage)磁盘使用情况

du:显示当前磁盘空间的使用情况,用于查看当前目录的下所有目录大小,不显示文件。

-a: 查看包括文件
--max-depth=n:只查看目录深度为n的目录或文件
--threshold=360K : 只查看大于等于指定值的目录或文件
--time:显示目录或文件最后一次修改的时间

2、 Linux系统CPU查看

参考

(1)整机的运行状态查看 top命令

  • top命令
  1. 可以看到整机的系统运行状态和cpu的使用率 。
  2. 主要看load average, CPU, MEN三部分
  3. Linux中top命令参数详解
    在这里插入图片描述
  • uptime命令
    系统性能命令的精简版

(2)linux的cpu查看vmstat命令

  1. cpu查看命令
  2. Linux中vmstat命令参数详解
  3. 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数
    在这里插入图片描述
  • procs
    • r:运行和等待的CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不超过总核数的2倍,否则代表系统压力过大,我们看蘑菇博客测试服务器,能发现都超过了2,说明现在压力过大
    • b:等待资源的进程数,比如正在等待磁盘I/O、网络I/O等
  • cpu
    • us:用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序
    • sy:内核进程消耗的CPU时间百分比
    • us + sy 参考值为80%,如果us + sy 大于80%,说明可能存在CPU不足,从上面的图片可以看出,us + sy还没有超过百分80,因此说明蘑菇博客的CPU消耗不是很高
    • id:处于空闲的CPU百分比
    • wa:系统等待IO的CPU时间百分比
    • st:来自于一个虚拟机偷取的CPU时间比
  1. sar命令
    sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。
    命令示例:
    例如每1秒采集一次CPU使用率,共采集5次。

3、查看内存使用率 free 和 pidstat

  • free命令
  1. 应用程序可用内存数
    free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
  2. 经验
  • 应用程序可用内存l系统物理内存>70%内存充足
  • 应用程序可用内存/系统物理内存<20%内存不足,需要增加内存
  • 20%<应用程序可用内存/系统物理内存<70%内存基本够用
    在这里插入图片描述

4、Linux之磁盘IO查看iostat和pidstat

(1) iostat 磁盘I/O性能评估

磁盘块设备分布

  • rkB/s每秒读取数据量kB;wkB/s每秒写入数据量kB;
  • svctm lO请求的平均服务时间,单位毫秒;
  • await l/O请求的平均等待时间,单位毫秒;值越小,性能越好;
  • util一秒中有百分几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘;
  • rkB/s、wkB/s根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。
  • svctm的值与await的值很接近,表示几乎没有IO等待,磁盘性能好。
  • 如果await的值远高于svctm的值,则表示IO队列等待太长,需要优化程序或更换更快磁盘。

(2)查看额外

mpstat -P ALL 2   #查看所有的cpu核信息
pidstat -u 1 -p 进程编号  #每个进程使用cpu的用量分解信息

5、Linux之网络IO查看ifstat

默认本地没有,下载ifstat

wget http://gael.roualland.free.fr/lifstat/ifstat-1.1.tar.gz
tar -xzvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make
make install

查看网络IO

各个网卡的in、out

观察网络负载情况程序

网络读写是否正常

  • 程序网络I/O优化
  • 增加网络I/O带宽

四、文件相关命令

1、scp远程拷贝文件

scp命令主要用于Linux下进行远程拷贝文件,和cp命令类似,只是cp命令仅在本机进行拷贝而不能跨服务器,scp传输是加密的。

语法:

scp (选项)  (参数)

选项:

\-1:使用ssh协议版本1;

\-2:使用ssh协议版本2;

\-4:使用ipv4;

\-6:使用ipv6;

\-B:以批处理模式运行;

\-C:使用压缩;

\-F:指定ssh配置文件;

\-l:指定宽带限制;

\-o:指定使用的ssh选项;

\-P:指定远程主机的端口号;

\-p:保留文件的最后修改时间,最后访问时间和权限模式;

\-q:不显示复制进度;

\-r:以递归方式复制。

参数:

源文件:要复制的源文件。

目标文件:目标文件,格式为user@host:filename (文件名为目标文件的名称)

一、复制远程机器上文件到本地

将10.10.12.74机器上的/data/xiaoxiong/目录中的test.txt文件复制到本地/data/testdata/目录中。

scp  root@10.10.12.74/data/xiaoxiong/test.txt  /data/testdata

二、复制远程机器上文件夹到本地

将10.10.12.74机器上/data/xiaoxiong/目录中的test文件夹复制到本地的/data/testdata目录中。

scp  -r root@10.10.12.74/data/xiaoxiong/test  /data/testdata

三、复制本地机器上文件到远程机器

将本地机器上/data/testdata/目录中的test.txt文件复制到10.10.12.74机器上的/data/xiaoxiong目录中。scp /data/testdata/test.txt root@10.10.12.74:/data/xiaoxiong

四、复制本地机器上文件夹到远程机器

将本地机器上的/data/xiaoxiong/目录中的test文件夹复制到10.10.12.74机器上的/data/testdata目录中。

scp  -r /data/xiaoxiong/test    root@10.10.12.74/data/testdata

五、其他命令

1、一些常用命令

  • vim下取消文件黄色背景 esc加:nohl

2、win系统下cmd命令

  • cls 清屏
  • netstat -a 查看正在运行的端口
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值