day001-007-每日内容与重点

51次阅读
没有评论

– linux规则,命令行,命令,目录,常用目录,绝对路径vs相对路径,linux组成.

– 核心指令::star::star::star::star::star:

– 创建目录mkdir,创建文件touch

– 查看: ls,cd,pwd

– ip,telnet,ping检查类命令

远程连接排障流程

https://www.processon.com/v/68ac314132c2e61323edbaca?cid=68ac1669687a3f3e21d349ad

1.检查两个ip间道路是否畅通 —> ping命令,查看连接是否通畅

2.检查是否有被劫持情况 —-> selinux与防火墙等

3.检查端口是否存在及运行 —> xshell中运行 :telnet 检查端口是否连接正常,Linux系统中:ss -Intup 检查系统端口是否存在及正常运行

day001-007-每日内容与重点

Linux规则

Linux组成

https://www.processon.com/v/68ac4d06a287c4059f004dc0?cid=68ac4c732b55687a564ec994

由应用程序 shell命令解释器 kernel内核 三部分组成

命令行格式

[root@oldboy-kylin-v10 ~]#

用户名@主机名 ~位置为当前所在位置 ~代表家目录 #为root用户 $为普通用户

命令格式

mkdir -p /oldboy/01/02/aa.txt

命令 选项 参数

选项:命令下的不同操作

参数:操作对象

Linux目录

https://www.processon.com/v/68ac4e6d687a3f3e21d3bb3e?cid=68ac4c09687a3f3e21d3b7b2
https://www.processon.com/v/68ac3e0ee585275ee8889c95

绝对路径与相对路径

绝对路径:从根目录开始

相对路径:从当前目录开始

核心命令

增加类命令

mkdir 创建目录 -p 创建多层目录

ls 查看目录中内容 -l详细显示 -a全部显示 -t 按时间排序 -r 倒序显示

在Linux中以 .开头的目录及文件为隐藏显示,ls -a可以全部显示出来

touch 创建文件 ,修改时间戳

查看类

cd 改变目录,进入目录里

cd 直接回到家目录

cd..返回上一级目录

pwd 显示当前所在目录(查看定位)

day003-vim及其他查看移动删除指令

– **linux快捷键,ctrl+a/e/l/c tab键 必会** esc+., ctrl+r

– **重启,关机指令(shutdown -h/-r/-c) 必会** halt ,reboot….

– **vim基本使用 必会** ,vim快捷键 逐渐掌握.

– **命令补充: cat,rm,cp,mv,echo ,>> ,> , 必会**

Linux快捷键

ctrl + a :将光标移动到最前面

ctrl + e:将光标移动到最后面

ctrl + I :清屏

ctrl + c :终止命令运行状态

tab : 补齐命令

esc + . :填入上一个命令的参数

ctrl + r : 搜索使用过的命令 ,如果不是可以继续按ctrl + r 搜索下一个

重启 关机命令

在正式工作环境中非必要不关机,关机需要检查ip对不对

shutdown -h 时间/(0/now立即关机) :将在”时间内“关机

shutdown -r 时间/(0/now立即关机) :重启

shutdown -c :取消关机或重启,只有shutdown命令可以取消,其他关机/重启命令无法取消

vim基础命令及补充命令

vim基础命令

i 进入编辑(插入)模式
:q 退出编辑器
:w 保存
:wq 保存并退出
:wq! 强制保存并退出

vim快捷键命令模式下

:set nu 显示行号
:set nonu 不显示行号
yy 复制当前所在行
pp 粘贴当前所在位置下一行 可以在前面加数字表示粘贴几次
dd 剪切(删除当前所在行) 同上
G 光标移动到文件末尾
gg 光标移动到最前面
V 可视化行,可批量操作行
ctrl + v 可视化列,可批量操作列 选择完,按大写I进行编辑操作,操作完成按esc退出,即可操作成功
u 撤销
/内容 +回车 搜索内容 N向上搜索,n向下搜索

Linux补充命令

rm 删除文件 -f强制删除-r 递归删除 删除目录必备(慎重选择,删除目录)
cp 复制文件-r复制目录(必选)递归复制-p保持属性不变-a == -rpd(软连接)
echo 内容 输出一次内容 通常和 > 或>>一起使用
> 重定向。 >文件 将文件内容清除再写入当前内容
>> 追加重定向 将内容写到文件末尾
cat 文件1 文件2 > 文件3 将前两个文件1,2内容写到后面文件3内

day004-Linux优化

今日重点

{}生成序列

echo {1..10} >/oldboy.txt 将输出写入到文件
echo {1..10} >>/oldboy.txt 将输出追加到文件尾
touch /oldboy/old{1..10}.txt mkdir -p /old/ol{1..5} 批量创建文件及目录

补充

{}整个数组为一行

[root@oldboy-kylin-v10 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@oldboy-kylin-v10 ~]# echo {1..10..2} #从一开始到十,每次增加2
1 3 5 7 9
[root@oldboy-kylin-v10 ~]# 

seq命令,生成数字序列,每个数字为一行

[root@oldboy-kylin-v10 ~]# seq 10 #生成十个数
1
2
...
9
10
[root@oldboy-kylin-v10 ~]# seq 5 20 #生成2-20范围的数
5
...
20
[root@oldboy-kylin-v10 ~]# seq 5 2 20 #生成5-20范围的数,每次增加2
5
7
...
17
19
[root@oldboy-kylin-v10 ~]# 

Linux下载加速与工具安装

物理机,虚拟化环境必做,云服务器可以不用配置

1.linux下载安装软件默认从官网下载,改为国内

2.麒麟增加下载软件包地址

详细操作命令:

https://www.yuque.com/lidao996/sre/abffhheqc7e7qgex?singleDoc#

红帽类系统中下载安装软件命令:yum install -y tree

红帽中yum下载地址存放在/etc/yum.repos.d/目录下,以.repo结尾

[root@oldboy-kylin-v10 ~]# cd /etc/yum.repos.d/
[root@oldboy-kylin-v10 /etc/yum.repos.d]# ls -l
总用量 8
-rw-r--r-- 1 root root 664  8月  4  2022 epel.repo
-rw-r--r-- 1 root root 701  9月  8  2022 kylin_x86_64.repo
[root@oldboy-kylin-v10 /etc/yum.repos.d]# 
repo文件的核心 baseurl的行

麒麟系统还需要增加yum源,增加可以下载安装软件的数量,添加的脚epel.repo

mirrors.aliyun.com
https://mirrors.tuna.tsinghua.edu.cn/

Debian/ubt中下载安装软件的命令:apt install -y tree

配置apt下载地址/源

apt源的配置文件/etc/apt/sources.list

命令行颜色

区分测试环境和正式环境

关闭防火墙

day001-007-每日内容与重点
 使用systemctl指令管理.
 system control
 linux服务管理指令(服务管理:开,关,重启,开机自启动,不开机自启动)
 1.当前的开,关,重启(start|stop|restart|status)
 start  #开启
 stop   #关闭
 restart #重启
 status  #状态
 2.开机是否自动运行(linux重启/开机软件/服务是否运行)
 #麒麟系统的
#1.查看服务状态
systemctl status  firewalld
#2.关闭防火墙(当前运行的)
systemctl stop   firewalld
 #3.关闭开机自启动
systemctl disable  firewalld
#2+3合并
 systemctl disable  --now firewalld

#ubt系统防火墙ufw关闭
 systemctl disable  --now ufw

Openssh

远程连接服务 openssh-server

openssh就是远程服务。服务名字叫sshd
1.修改远程连接端口
2.ubt系统root,禁止root远程登陆

openssh-server服务配置文件在/etc/ssh/sshd_config

Port端口 端口范围推荐10000+以上 如52113

端口范围1-65535,1-1024系统服务占用

day005-Linux系统核心文件与系统巡检

  • 检查linux版本信息,内核信息:hostnamectl ,/etc/os-release
  • 检查与修改主机名信息.
  • cpu架构:x86,arm区别
  • 查看和修改网卡信息:麒麟,ubt.
  • 日志文件secure,auth.log 检查是否有密码失败.
  • proc下面内容,cpu硬件信息,内存信息,负载信息 (lscpu,free,w)
  • 了解: motd,issue
  • 书写脚本执行脚本(bash执行)

二、核心文件

(一)/etc/ 下的核心内容

  1. 系统版本信息文件 /etc/os-release
  • 该文件仅可查看,不可修改。
  • 包含关键信息:
  • VERSION_ID:版本号码
  • ID:发行版本的精简名字
  • NAME:详细的发行版本名字
  1. 主机名的配置文件 /etc/hostname
  • 不推荐直接修改此文件,修改后需重启 Linux 系统才能生效。
  • 相关命令:
  • hostnamectl:可查看和修改主机名,修改后会同步更新 /etc/hostname 文件,且当前命令行立即生效。
  • 查看主机名与其他信息示例:
[root@devops-~]#hostnamectl
Static hostname:devops #主机名
Virtualization: vmware #虚拟化技术(使用的什么虚拟机软件)
Operating System:Kylin Linux Advanced Server V10(Lance)#系统版本
Kernel:Linux 4.19.90-52.22.v2207.ky10.x86_64 #内核版本
Architecture:x86-64 #cpu架构
麒麟系统 V10SP3:内核 4.19
Ubuntu 22.04:内核版本 5.15
Rocky 9.3:内核版本 5.14
Linux 内核官网:https://kernel.org/
Architecture作为扩展现在尽可能理解
cpu架构(指令集):
x86-64/amd64:使用广泛(个人、企业),主要搭配 Intel、AMD 的 CPU,属于复杂指令集(CISC)。
ARM(aarch64)架构:常用于手机(移动设备),功耗较低且性能可观,也可用于服务器,属于精简指令集(RISC)。
day001-007-每日内容与重点
day001-007-每日内容与重点

修改主机名

hostnamectl set-hostname  develop-kilin
hostnamectl命令也会修改/etc/hostname文件同时当前命令行失效

主机名修改规则

看见主机名能知晓服务器作用
考虑未来主机名与网站服务共享需求。share01.oldboy.cn。
可采用其他规则功能缩写

hostname命令(临时修改主机名,重启linux后失效,查看主机名)

hostname一般用于查看主机名

查看内核

查看内核
uname -r
查看cpu架构
uname -m
查看所有
uname -a
  1. 网卡信息查看与修改

麒麟nmtui–>/etc/sysconfig/network-scripts/ifcfg-ens33

/etc/系统配置
/etc/sysconfig/系统配置
/etc/sysconfig/network-scripts/网络脚本/配置
/etc/sysconfig/network-scripts/ifcfg-ens33
if-->interface网卡/接口
cfg-->configure配置
ens33

ensxxxxx
ethxxxxx
#1. 网卡获取 ip 的方式 2 种
##1.1 自动获取 dhcp
##1.2 手动设置 (固定 ip) manual 手动 (安装系统,nmtui 中)
## 详细配置
#BOOTPROTO=dhcp 自动获取 ip,
#BOOTPROTO=none 或 static ip 手动 / 固定.
BOOTPROTO=none
#2. NAME,DEVICE 网卡名字
NAME=ens33
DEVICE=ens33
#3. ONBOOT 网卡是否开机自启动
ONBOOT=yes
#4. IPADDR IP 地址 10.0.0.3 - 254 不同 Linux 系统 ip 不能冲突.
IPADDR=10.0.0.200
#5. 网关 (网络流量出入口 类似于大门.)
GATEWAY=10.0.0.2
#6. DNS
DNS1=223.5.5.5
DNS2=223.6.6.6

#dns 配置文件
1) 主要在网卡配置文件中写
2)/etc/resolv.conf 可以用于检查当前使用的 DNS.

[root@oldboy-kylin-101~]#cat /etc/resolv.conf
#Generated by NetworkManager
nameserver 223.5.5.5
nameserver 223.6.6.6

DNS:域名解析服务   域名jd.com /taobao.com/12306.com  -DNS->ip
网卡配置文件:DNS服务器的ip(公共DNS服务器)
阿里云 DNS:223.5.5.5、223.6.6.6
114            114.114.114.114、114.114.115.115
https://dnsdaquan.com/
  • 修改麒麟网卡配置文件并生效:
修改 IP 后,重启指定网卡
ifdown ens33&&ifup ens33

使用systemctl重启网卡

yum install -y network-scripts
然后
systemctl restart network
  • 故障案例:
day001-007-每日内容与重点

Ubuntu /etc/netplan/00-installer-config.yaml

plaintext

#ubt网卡配置文件中,注意缩进,注意缩进,注意缩进
[root@oldboy-ubt ~]#cat /etc/netplan/00-installer-config.yaml
#This is the network config written by 'subiquity"
network:
  ethernets:
    ens33:
      addresses:
        - 10.0.0.211/24 #ip
      nameservers:
        addresses:
          - 223.5.5.5 #dns
          - 223.6.6.6 #dns
      search:[]
      routes:
        to:default
        via:10.0.0.2 #网关
  version:2
#ubt网卡配置文件生效
netplan apply #结果警告忽略
#networkctl reload 如果不生效在执行
  • 小结:
  • 麒麟、Ubuntu 网卡核心指标:IP(自动获取 / 手动设置)、网关、DNS。
  • 麒麟系统:可通过systemctl重启,ifup/ifdown作为备用方式。
  • Ubuntu 系统:使用netplan apply生效配置。
  • Rocky 系统:用nmcli管理网卡,麒麟、Ubuntu 等系统也支持nmcli管理网卡。

  1. /etc/motd 与 /etc/issue
  • 两者均用于显示系统基本信息,具体区别如下表:
文件 说明 应用建议
/etc/issue 文件内容在用户登录系统之前显示,一般用于本地连接 清空文件
/etc/motd 文件内容在用户登录系统后输出 配置系统基本信息(一般是固定不变的信息)

(二)/var/log/ 目录

log 日志:服务软件,系统运行的记录.
日志默认在 /var/log/ 目录存放

日志查看关键提示:关注 “Failed Password”“failure” 等关键词,

ssh 命令,ssh 服务的客户端远程连接工具 (命令)
ssh -p 端口号 用户名 @ip
tail 查看文件末尾的信息 默认看 10 行.
tail -f 查看文件末尾的实时更新,看日志好帮手.
系统类型 系统用户登录日志 系统日志(启动、服务默认日志)
红帽类系统 /var/log/secure /var/log/messages
Ubuntu/Debian 系统 /var/log/auth.log /var/log/syslog
day001-007-每日内容与重点

(三)/proc/ 目录

  • process 进程信息.
  • /proc/ 存放的是各种服务软件进程信息,内核信息 (配置)
  • /proc/ 目录相当于是给内存开了个入口。进程的内存信息.
  • 虚拟目录,不占用磁盘空间。仅仅入口.
  • /proc/ 展示的是内存中的信息,目录本身不占用磁盘空间.
  • 一切皆文件.
  • 内存:运行内存,运行程序软件的地方.
  • 磁盘 / 硬盘:永久存放数据.
/proc/ 目录内容 说明 命令
数字命名的目录(仅数字) 进程信息,数字为进程的编号(PID)
/proc/cpuinfo 文件 CPU 硬件信息 lscpu
/proc/meminfo 文件 内存信息 free
/proc/loadavg 文件 负载信息(Linux 系统繁忙程度) w

  • CPU 硬件信息
processor:第几个核心
physical id:第几颗 CPU

[root@devops--kylin ~]#lscpu
架构:								 x86_64
CPU运行模式: 				32-bit, 64-bit
字节序: 							Little Endian
Address sizes:				 45 bits physical, 48 bits virtual
CPU: 								1 		#cpu核心数
在线CPU列表:					 0
每个核的线程数:				 1
每个座的核数: 						1
座:										 1 #cpu颗数

mem 内存信息 使用情况.

CPU–> 内存 –> 硬盘

loadavg 平均负载 linux 系统繁忙程度

[root@devops-kylin ~]# w
16:53:23 up 39 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 16:14 3.00s 0.09s 0.00s w
[root@devops--kylin ~]#
load average: 0.00, 0.00, 0.00
最近 1 分钟 最近 5 分 最后 15 分钟
忙?不忙?
与 cpu 核心总数对比。接近和超过 cpu 核心总数就是忙了.

三、书写系统巡检脚本(自动输出系统基本信息)

(一)系统巡检常用命令

#1. 查看系统发行版本
cat /etc/os-release
#2. 查看主机名信息
hostname
hostnamectl
#3. 查看内核信息
uname -r
lscpu架构
uname -m
#4. 网络信息
cat /etc/sysconfig/network-scripts/ifcfg-ens33
#5. 用户登录情况信息
#分析/var/log/secure 或 /var/log/auth.log
#6. cpu硬件信息
lscpu
#7. 内存信息
free -h
#8. 负载信息
w

(二)脚本文件命名大礼包

脚本命名: xxx.sh xxx.bash结尾

[root@oldboy-kylin-101 ~]# cat /server/scripts/check_sys.sh 
#说明信息
#脚本作用:系统巡检脚本
echo '#####################'
echo '#1. 查看系统发行版本'
cat /etc/os-release
echo '#####################'
echo '#####################'
echo '#2. 查看主机名信息'
hostname 
hostnamectl
echo '#####################'
echo '#####################'
echo '#3. 查看内核信息'
echo '#内核'
uname -r
echo '#cpu架构'
uname -m
echo '#####################'
echo '#####################'
echo '#4. 网络信息'
cat /etc/sysconfig/network-scripts/ifcfg-ens33
echo '#####################'
echo '#####################'
echo '#5. 用户登录情况信息'
echo '#分析/var/log/secure 或 /var/log/auth.log'
echo '#####################'
echo '#####################'
echo '#6. cpu硬件信息'
lscpu
echo '#####################'
echo '#####################'
echo '#7. 内存信息'
free -h
echo '#####################'
echo '#####################'
echo '#8. 负载信息'
w
echo '#####################'

day006-日志与查看指令

  • 故障案例:vim编辑大日志文件导致内存不足.
  • tail/head/less/more
  • grep
  • wc
  • 管道

一、查看日志文件命令组合

1、tail/head

tail:尾巴,查看文件末尾内容,默认10行

head:头,查看文件头部内容,默认10行

tail -n20 /etc/passwd #显示文件末尾20行
tail -20 /etc/passwd #显示文件末尾20行 ,简写
tail -f /etc/passwd #显示文件末尾并实时更新,默认十行
#tail有,head没有
head -20 /etc/passwd #显示文件开头二十行

2、grep在文件中过滤,查找

四剑客:

  1. find
  2. grep
  3. sed
  4. awk
grep命令 说明 只能查看、过滤、无法修改
-i 不区分大小写
-n 显示行号
-v 取反、过滤指定内容的行不显示
–color 给过滤出来的内容添加颜色
grep 'root' /etc/passwd/ #在passwd文件中查找含有root的位置
grep --color 'root' /etc/passwd/ #给查找到的内容添加颜色
grep --color 'port' /etc/ssh/sshd_config 
#查找远程连接配置中的port,严格区分大小写
grep --color 'Port' /etc/ssh/sshd_config #查找端口位置
grep --color -i 'permitrootlogin' /etc/ssh/sshd_config 
#不区分大小写
[root@oldboy-kylin-v10-sp3 ~]# grep --color -in 'permitroot' /etc/ssh/sshd_config 
39:PermitRootLogin yes
91:# the setting of "PermitRootLogin without-password".
#添加行号
[root@oldboy-ubt-2204 ~]# #在/etc/passwd文件中 过滤 不包含'/bin/bash/'
[root@oldboy-ubt-2204 ~]# grep  -i '/bin/bash' /etc/passwd
root:x:0:0:root:/root:/bin/bash
oldboy:x:1000:1000:oldboy-ubt-2204:/home/oldboy:/bin/bash
[root@oldboy-ubt-2204 ~]# grep  -iv '/bin/bash' /etc/passwd
sbin/nologin
fwupd-refresh:x:112:118:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
usbmux:x:113:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false

3、less/more组合

按页查看文件内容,类似于vim,但无法修改文件内容

q 退出
g 移动到第一行
G 移动到最后一行
100g 移动到指定行
ctrl f 下一页
ctrl b 上一页
ctrl f 下一页
ctrl b 上一页
移动到最后自动退出

4、wc

wc 统计信息,通常结合|使用
-l 统计行数

5、|管道

左边加上命令

将左边命令的输出结果输入到管道右边

  1. 统计/etc/passwd文件中命令解释器是/bin/bash的数量
grep '/bin/bash' /etc/passwd
grep '/bin/bash' /etc/passwd | wc -l
  1. 统计系统中进程总数(ps -ef查看所有进程)
ps -ef | wc -l
  1. 统计系统中指定进程的数量例如:/sbin/sshd
ps -ef | grep 'sbin/sshd' | grep -v 'grep' | wc -l
  1. 查看端口,过滤sshd服务的端口
ss -lntup | grep -v 'sshd'

day007-日志与查看指令和再战脚本

  • sort,uniq,awk
  • 目标:分析access.log和secure日志
  • 时间相关命令:date,ntpdate,timedatectl
  • 反引号: 优先执行,加上命令,输出.
  • 重新书写脚本: 变量
  • 目标:书写巡检脚本,跟着课程不断完善巡检脚本.

一、日志处理后续

1、sort

sort 说明
-r 逆序排序
-n 数字排序
-k5 对第五列排序
-h 人类可读

1、使用cat命令一件创建有多行内容的文件

[root@oldboy-kylin-v10-sp3 ~]# cat >/oldboy/sort.txt<<EOF
> 
> 1
> 3
> 5
> 7
> 75
> 3
> 2
> 4
> 5
> 7
> 8
> 9
> 6
> 5
> 42
> 
> EOF
1、标记两边不要有空格
2、结束标记EOF,两边必须一致
3、找个地方写好再复制过来

2、对文件或管道内容进行排序

[root@oldboy-kylin-v10-sp3 ~]# sort /oldboy/sort.txt  #按字符排序
[root@oldboy-kylin-v10-sp3 ~]# sort -n /oldboy/sort.txt   #按数字排序
[root@oldboy-kylin-v10-sp3 ~]# sort -rn /oldboy/sort.txt  #按数字逆序排序

3、对指定列排序

先创建文件
cat >/oldboy/sort-v2.txt<<EOF
a 2
b 56
c 1
EOF

[root@oldboy-kylin-v10-sp3 ~]# sort -rn -k2 /oldboy/sort-v2.txt #按照第二列排序
b 56
a 2
c 1
1、-rnk2 可以写在一起,但k和2不能分开

[root@oldboy-kylin-v10-sp3 ~]# sort -rn -k2 /oldboy/sort-v2.txt | head -2
b 56
a 2
2、可以接管道显示前两行

4、人类可读大小排序

#前面命令有-h 后面排序加上-h
#-h和-n选一个
[root@oldboy-kylin-v10-sp3 ~]# du -sh /* | sort -hrk1
#du -sh 显示磁盘大小
# *显示所有

2、uniq

uniq 说明 只能去重相邻行通常和sort一起使用
-c 去重并统计次数

去重操作

基本和sort一起使用

[root@oldboy-kylin-v10-sp3 ~]# sort -rnk1 /oldboy/uniq-1.txt | uniq -c
      2 ld
      1 c
      2 b
      4 a
      2 
#将内容排序,再去重,因为去重只能去除相邻行
#还可以再次接管道排序,按照重复次数查看次数

3.awk

awk 说明
‘{print $1}’ 取第一列
‘{print $(NF-1)}’ 取倒数第二行 当没有此行会报错
-F’:’ 以冒号分隔 识别以:分隔的列 默认空格/连续空格

管道接column -t 以tap间隔对齐

功能:取列、取行、计算统计

awk取列功能:格式'{print 列/$1}’

取多列:逗号间隔

[root@oldboy-kylin-v10-sp3 ~]# cat /oldboy/awk.txt #创建文件
q 12 34 s
q 14 33 s
q 13 32 s
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $2}' /oldboy/awk.txt #取第二列
12
14
13
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $2}' /oldboy/awk.txt |sort -rn
14
13
12
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $2}' /oldboy/awk.txt |sort -rn | head -2
14
13
[root@oldboy-kylin-v10-sp3 ~]# #取倒数第二行,倒序排序并取前两行
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $(NF-1)}' /oldboy/awk.txt  | sort -rn |head -2
34
33
[root@oldboy-kylin-v10-sp3 ~]#

[root@oldboy-kylin-v10-sp3 ~]# cat /etc/passwd | awk -F':' '{print $1,$3,$NF}' | column -t

root              0      /bin/bash
bin               1      /sbin/nologin
daemon            2      /sbin/nologin

2、日志分析

1、日志分析流程

access.log网站访问日志,用户打开网站/app,查看页面.日志中记录.
客户端ip  时间  访问页面  大小  手机 浏览器 ....

目标:分析access.log 
每个ip访问的次数. 取出ip后uniq去重.
步骤:
1.awk取列(ip列) 第1列
2.对数据加工下,一致的数据(ip)在一起 sort 
3.uniq去重统计次数(每个ip次数)
4.后续加工,对次数排序
5.取出次数最多的5个.

效果:
次数  ip
awk '{print $1}' access.log | sort | uniq -c | sort -rnk1 | head -5

3、时间查看与修改

1、修改时间与自动修改时间

1、手动修改

date 说明
-s 手动修改时间 date -s “年月日 时:分:秒”
+%F 年-月-日 相当于+%Y-%m-%d
+%y 输出年的后两位
+%T 时间 时:分:秒
+%H 小时
+%M 分钟
+%S
+%w

2、ntpdate命令自动修改时间工具(其他工具chrony服务)

ntpdate 时间服务器
ntpdate ntp.aliyun.com

2、查看与修改时区

timedatectl #查看Time Zone 时区
timedatectl set-timezone Asia/Shanghai

3、以指定格式显示时间

年-月-日
[root@oldboy-ubt-2204 ~]# date +%F
2025-09-01
[root@oldboy-ubt-2204 ~]# date +%Y-%m-%d
2025-09-01
[root@oldboy-ubt-2204 ~]# date +%T
15:36:12
[root@oldboy-ubt-2204 ~]# #不同时间连接格式
[root@oldboy-ubt-2204 ~]# date +%H-%M-%S
15-36-34
[root@oldboy-ubt-2204 ~]# date +%H:%M:%S
15:36:55
[root@oldboy-ubt-2204 ~]# date +%w
1
[root@oldboy-ubt-2204 ~]# 
年-月-日_时
年-月-日_周
[root@oldboy-ubt-2204 ~]# date +%F_%H
2025-09-01_15
[root@oldboy-ubt-2204 ~]# date +%F_%w
2025-09-01_1
[root@oldboy-ubt-2204 ~]# 

4、反引号与日期

创建带有日期的文件目录压缩包

``或$() 说明:优先执行,运行命令时先运行反引号里面的命令。命令会把输出留下
创建带有时间、日期的文件
广泛应用于脚本

创建带有日期的文件
touch /lidao`date +%F`.txt

创建带有日期的目录
mkdir /lidao`date +%F-%H:%M`

4、再战脚本

1、变量:

#变量创建 kui="a"
#使用/修改 $kui

[root@oldboy-ubt-2204 ~]# kui="a"
[root@oldboy-ubt-2204 ~]# echo $kui
a
[root@oldboy-ubt-2204 ~]# 

2、变量的名字要求

  • 不能使用数字开头
  • 名字要有意义
  • 使用_连接

3、变量与脚本

[root@oldboy-ubt-2204 ~]# dir=/oldboy/
[root@oldboy-ubt-2204 ~]# file=lidao.txt
[root@oldboy-ubt-2204 ~]# name=`hostname`
[root@oldboy-ubt-2204 ~]# echo $dir
/oldboy/
[root@oldboy-ubt-2204 ~]# echo $file
lidao.txt
[root@oldboy-ubt-2204 ~]# echo $name
oldboy-ubt-2204
[root@oldboy-ubt-2204 ~]# 

4、巡检脚本

输出效果:
########################################
##系统基本信息:
##1.主机名:xxx
##2.内核版本
##3.发行版本
##4.cpu架构
##5.负载信息
##6.ip地址(可选)
########################################

########################################
##用户登录情况:
###用户登录的失败的数量: xxx failures grep+wc 
########################################

########################################
##CPU情况:
###cpu使用率(讲解完成进程管理再加入)
########################################

########################################
##内存情况:
###可用内存: xxx
########################################

正文完
 0
评论(没有评论)

学习网站