Linux基础二

文章目录

Linux基础二

1.回归网卡传统命名机制

1.1 传统网卡命名机制

  • 传统命名
  • 以太网eth[0,1,2,…]
  • wlan[0,1,2,…]

1.2 网卡命名策略

systemd对网络设备的命名方式

  • 规则1:如果Firmware或者BIOS提供的设备索引信息可用就用此命名。比如eno1。否则使用规则2
  • 规则2:如果Firmware或Bios的PCI-E扩展插槽可用就用此命名。比如ens1,否则使用规则3
  • 规则3:如果硬件接口的位置信息可用就用此命名。比如enp2s0
  • 规则4:根据MAC地址命名,比如enx7d3e9f。默认不开启。
  • 规则5:上述均不可用时回归传统命名方式
  • 上面的所有命名规则需要依赖于一个安装包:biosdevname

1.3 回归传统命名

操作实例:

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33  ifdown-ppp       ifup-eth     ifup-sit
ifcfg-lo     ifdown-routes    ifup-ippp    ifup-Team
ifdown       ifdown-sit       ifup-ipv6    ifup-TeamPort
ifdown-bnep  ifdown-Team      ifup-isdn    ifup-tunnel
ifdown-eth   ifdown-TeamPort  ifup-plip    ifup-wireless
ifdown-ippp  ifdown-tunnel    ifup-plusb   init.ipv6-global
ifdown-ipv6  ifup             ifup-post    network-functions
ifdown-isdn  ifup-aliases     ifup-ppp     network-functions-ipv6
ifdown-post  ifup-bnep        ifup-routes
[root@localhost network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@localhost network-scripts]# vi ifcfg-eth0 
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33 //换成eth0
DEVICE=ens33 //换成eth0
ONBOOT=yes
IPADDR=192.168.200.10
GATEWAY=192.168.200.2
PREFIX=24
DNS1=114.114.114.114
~ 
编辑内核参数  在GRUB_CMDLINE_LINUX中添加 net.ifnames=0 biosdevname=0
[root@localhost ~]# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

编辑完grub配置文件以后不会立即生效,需要生成配置文件
[root@localhost ~]# grub2-mkconfig -o /etc/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-85fa2687aad64722b6e263b08260f5ad
Found initrd image: /boot/initramfs-0-rescue-85fa2687aad64722b6e263b08260f5ad.img
done
[root@localhost ~]# 

重启系统
[root@localhost ~]# reboot

2. 网络管理常用命令

2.1 ifconfig

命令功能:查看和配置网络状态

命令实例:

[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.10  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::20c:29ff:fe3e:6fd4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3e:6f:d4  txqueuelen 1000  (Ethernet)
        RX packets 22225  bytes 17776424 (16.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 18787  bytes 2147002 (2.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.10  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::20c:29ff:fe3e:6fd4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3e:6f:d4  txqueuelen 1000  (Ethernet)
        RX packets 29815  bytes 2348300 (2.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 43976  bytes 5523236 (5.2 MiB)        
[root@localhost ~]# ifconfig lo down 
[root@localhost ~]# ifconfig lo
lo: flags=8<LOOPBACK>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ifconfig lo up 
[root@localhost ~]# ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ifconfig eth0 192.168.200.20 netmask 255.255.255.0

2.2 ip

命令语法:ip [ OPTIONS ] OBJECT { COMMAND | help }

常用对象的取值含义:

  • link:网络设备
  • address:设备上的协议(IP或IPv6)地址
  • addrlabel:协议地址选择的标签配置
  • route:路由表条目
  • rule:路由策略数据库中的规则

常用选项:

  • -V:显示命令的版本信息;
  • -s:输出更详细的信息;
  • -f:强制使用指定的协议族;
  • -4:指定使用的网络层协议是IPv4协议;
  • -6:指定使用的网络层协议是IPv6协议;
  • -0:输出信息每条记录输出一行,即使内容较多也不换行显示;
  • -r:显示主机时,不使用IP地址,而使用主机的域名。

命令实例:

查看网卡
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 
查看某一个网卡
[root@localhost ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link 
       valid_lft forever preferred_lft forever 
显示网络设备运行状态       
[root@localhost ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
显示更加详细的设备信息
[root@localhost ~]# ip -s link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    5916       68       0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    5916       68       0       0       0       0       
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    589343     7464     0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    1432889    10926    0       0       0       0       
[root@localhost ~]# 
禁用或启用网络接口
[root@localhost ~]# ip link set lo down ; ip link set lo up
添加IP地址
[root@localhost ~]# ip addr add 192.168.200.20/24 dev eth0
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 192.168.200.20/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 
删除ip地址
[root@localhost ~]# ip addr del 192.168.200.20/24 dev eth0
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:3e:6f:d4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.10/24 brd 192.168.200.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe3e:6fd4/64 scope link 
       valid_lft forever preferred_lft forever
显示核心路由表
[root@localhost ~]# ip route list
default via 192.168.200.2 dev eth0 proto static metric 100 
192.168.200.0/24 dev eth0 proto kernel scope link src 192.168.200.10 metric 100 
[root@localhost ~]# 

2.3 ss

命令功能:查看网络状态

常用参数:

  • -V, –version 显示版本号 -
  • t, –tcp 显示 TCP 协议的 sockets
  • -u, –udp 显示 UDP 协议的 sockets
  • -x, –unix 显示 unix domain sockets,与 -f 选项相同
  • -n, –numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”
  • -l, –listening 只显示处于监听状态的端口
  • -p, –processes 显示监听端口的进程(Ubuntu 上需要 sudo)
  • -a, –all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
  • -r, –resolve 把 IP 解释为域名,把端口号解释为协议名称

命令实例:

[root@localhost ~]# ss -antl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128     *:22                  *:*                  
LISTEN     0      100    127.0.0.1:25                  *:*                  
LISTEN     0      128    :::22                 :::*                  
LISTEN     0      100       ::1:25                 :::*                  
[root@localhost ~]# ss -antlp
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128     *:22                  *:*                   users:(("sshd",pid=1142,fd=3))
LISTEN     0      100    127.0.0.1:25                  *:*                   users:(("master",pid=1430,fd=13))
LISTEN     0      128    :::22                 :::*                   users:(("sshd",pid=1142,fd=4))
LISTEN     0      100       ::1:25                 :::*                   users:(("master",pid=1430,fd=14))
[root@localhost ~]# 

常见端口:

  • http 80/tcp
  • https 443/tcp
  • ssh 22/tcp
  • ftp 20,21/tcp
  • mysql 3306/tcp
  • rsync 873/rsync
  • redis 6379/tcp

3. 网络配置文件详情

配置文件路径 /etc/sysconfig/network-scripts/ifcfg-eth0

[root@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.200.10
GATEWAY=192.168.200.2
PREFIX=24
DNS1=114.114.114.114                  

配置信息:

  • TYPE //接口类型。常见的接口类型有:Ethernet,Bridge
  • IPADDR=192.168.200.10 //固定IP地址
  • PREFIX=24 //子网掩码
  • NETMASK=255.255.255.0 //子网掩码
  • GATEWAY=192.168.200.2 //默认网关
  • DNS1=114.114.114.114 //第一个DNS服务器指向
  • DNS2 //第二个DNS服务器指向
  • DNS3 //第三个DNS服务器指向
  • DEVICE=eth0 //关联的设备名称,要与文件名的后半部"INTERFACE_NAME"保持一致
  • NAME=eth0 //连接名称
  • ONBOOT=yes //在系统引导时是否自动激活此网络接口,可选值有{ yes | no }

4. 磁盘

4.1 硬盘命名

命名方式:

  • 传统IDE接口硬盘:/dev/hd[a-z]
  • SCISI接口硬盘:/dev/sd[a-z]
  • 虚拟化硬盘:/dev/vd[a-z]

4.2 MBR与GPT

MBR分区

  • 最多只能有四个主分区

  • 最大支持2TB磁盘

GPT分区

  • GPT对磁盘大小没有限制
  • 最多可以创建128个分区

4.3 分区

fdisk分区

[root@localhost ~]# fdisk /dev/nvme0n2
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xf3363699 创建新的 DOS 磁盘标签。

 //创建硬盘
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

 //列出硬盘
命令(输入 m 获取帮助):p  

磁盘 /dev/nvme0n2:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf3363699

        设备 Boot      Start         End      Blocks   Id  System
/dev/nvme0n2p1            2048    10487807     5242880   83  Linux

 //保存退出
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  4.2G  0 rom  
nvme0n1         259:0    0  100G  0 disk 
├─nvme0n1p1     259:1    0    1G  0 part /boot
└─nvme0n1p2     259:2    0   99G  0 part 
  ├─centos-root 253:0    0   50G  0 lvm  /
  ├─centos-swap 253:1    0  3.9G  0 lvm  [SWAP]
  └─centos-home 253:2    0 45.1G  0 lvm  /home
nvme0n2         259:3    0   20G  0 disk 
├─nvme0n2p1     259:4    0    5G  0 part 
└─nvme0n2p2     259:5    0    1K  0 part 
[root@localhost ~]# partprobe /dev/nvme0n2

4.4 格式化

目的:是为了创建文件系统 mkfs(make filesystem)

类型:

  • Fat32 单个文件不能超过4G
  • Ntfs 单个文件可以超过4G 兼容性差
  • Exfat 单个文件可以超过4G 兼容性好
  • ext4
  • xfs
  • vfat

实例:

[root@localhost ~]# mkfs.ext4 /dev/nvme0n2p1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

[root@localhost ~]# 

4.5 临时挂载与永久挂载

临时挂载:

[root@localhost ~]# mkdir /zzz
[root@localhost ~]# mount -t ext4 /dev/nvme0n2p1 /zzz/
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  1.2G   49G    3% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-home   46G   33M   46G    1% /home
/dev/nvme0n1p1          1014M  142M  873M   14% /boot
tmpfs                    378M     0  378M    0% /run/user/0
/dev/nvme0n2p1           4.8G   20M  4.6G    1% /zzz
[root@localhost ~]# 

永久挂载:

[root@localhost ~]# blkid /dev/nvme0n2p1
/dev/nvme0n2p1: UUID="68b056b3-c11a-48c5-9abe-d98c87d8b9fd" TYPE="ext4" 
[root@localhost ~]# vi /etc/fstab 
UUID="68b056b3-c11a-48c5-9abe-d98c87d8b9fd" /zzz ext4 defaults  0 0
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  1.2G   49G    3% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-home   46G   33M   46G    1% /home
/dev/nvme0n1p1          1014M  142M  873M   14% /boot
tmpfs                    378M     0  378M    0% /run/user/0
/dev/nvme0n2p1           4.8G   20M  4.6G    1% /zzz
[root@localhost ~]# 

5. 计划任务

时间配置

  • 分(0-59)*/2 每两分钟 ,1-10 一分钟到10分钟,1,10 一分钟和10分钟
  • 时(0-23)
  • 日(1-31)
  • 月(1-12)
  • 周(0-7)

实例:

[root@localhost ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab

20 11 * * * /usr/bin/echo "woshineidie"
每天的11点20 执行命令
[root@localhost ~]# crontab -l
20 11 * * * /usr/bin/echo "woshineidie"
[root@localhost ~]# 

6. 日志服务rsyslog

6.1 日志系统

  • kernel——> 物理终端(/dev/console)——> /var/log/dmesg 或者 #dmesg 或 cat /var/log/dmesg

6.2 系统日志

  • /var/log/messages:系统标准错误日志信息;非内核产生的引导信息;各子系统产生的信息
  • /var/log/maillog:邮件系统产生的日志信息
  • /var/log/secure:与安全相关的日志信息

6.3 日志详细级别

  • 日志级别:级别越低越详细

6.4 系统日志服务

  • syslog:centos5
  • rsyslog:centos6,是syslog的升级版
    • 特性:
      • 多线程
      • 支持UDP,TCP,SSL,TLS协议
      • 支持使用MySQL,PGSQL,Oracle实现日志存储(默认没启用此功能,需要加载rsyslog支持此类存储方式的模块,并配置其可使用mysql存储日志)
      • 强大的过滤器,可实现过滤系统日志信息中的任何部分
      • 自定义输出格式

6.5 elasticsearch,logstash,kibana = elk

  • elasticsearch:存储,分析日志
  • logstash:日志收集工具
  • kibana:前端展示工具

6.6 日志服务(syslog/rsyslog)

1、syslog和rsyslog服务均有两个进程

  • syslogd:系统,非内核产生的日志信息
  • klogd:内核,专门负责记录内核产生的日志信息

2、日志服务配置文件

  • syslog服务的配置文件:/etc/syslog.conf
  • rsyslog服务的配置文件:/etc/rsyslog.conf

3、配置文件格式定义

  • facility.priority action //设备/来源/服务.日志级别 动作(日志记录到哪)
  • facility可以理解为日志的来源或设备,目前常用的facility有以下几种
auth 认证相关的
authpriv 权限、授权相关的
cron 任务计划相关的
daemon 守护进程相关的
kern 内核相关的
lpr 打印机关的
mail 邮件相关的
mark 标记相关的
news 新闻相关的
security 安全相关的,与auth类似
syslog syslog自己的
user 用户相关的
uucp unix to unix cp相关的
local0到local7 用户自定义使用
***** *表示所有的facility
  • prior (log level) 日志的级别,一般有一下几种级别从低到高 (级别越低信息越详细)
debug 程序或系统的调试信息
info 一般信息
notice 不影响正常功能,需要注意的消息
warning/warn 可能影响系统功能,需要提醒用户的重要事件
err/error 错误信息
crit 紧急,比较严重的
alert 必须马上处理的
emerg/panic 会导致系统不可用的
***** *表示所有的日志级别
none 跟*相反,表示啥也没有
  • action(动作)日志记录的位置
系统上的绝对路径 普通文件,如:/var/log/xxx
| COMMAND 管道,通过管道送给其他的命令处理
终端 终端,如:/dev/console
@HOST 远程主机(远程主机必须要监听在tcp或udp协议514端口上提供服务),如:@10.0.0.1
用户 系统用户,如:root
***** 登录到系统上的所有用户

4、格式定义的例子

  • mail.info /var/log/maillog 表示将mail相关的,级别为infoinfo以上级别的信息同步记录到**/var/log/maillog**文件中
  • mail.* -/var/log/maillog 表示将mail相关的所有日志信息异步记录到**/var/log/maillog**文件中,路径前的“-”表示异步模式
  • auth.=info @10.0.0.1 表示将auth相关的,级别为info的信息记录到10.0.0.1主机上去。前提是10.0.0.1要能接收其他主机发来的日志信息
  • user.!=error 表示记录user相关的,但不包括error级别的日志信息
  • user.!erroruser.error相反
  • .info 表示记录所有的日志信息的info*级别
  • mail.* 表示记录mail相关的所有级别的信息
  • *.* 表示 记录所有级别的所有日志信息
  • cron.info;mail.info 多个日志来源可以用分号隔开
  • cron,mail.infocron.info;mail.info是一个意思
  • mail.*;mail.!=info 表示记录mail相关的所有级别的信息,但是不包括info级别的

5、文件记录(/var/log/message)的日志的格式:

  • 事件产生的日期时间 主机 进程(pid):事件内容
  • 有些日志记录为二进制格式:/var/log/wtmp,/var/log/btmp
    • /var/log/wtmp:当前系统成功登录的日志,可使用last命令查看其内容
    • /var/log/btmp:当前系统失败的登录尝试的日志,可使用lastb命令查看其内容

6、lastlog命令:显示当前系统每一个用户最近一次的登入时间

6.7 实例操作

//配置rsyslog服务器 
//编辑配置文件(/etc/rsyslog.conf),将下列内容前面的注释去掉,然后重启rsyslog服务即可:
#$ModLoad imudp
#$UDPServerRun 514
#$ModLoad imtcp 
#$InputTCPServerRun 514
[root@localhost ~]# vi /etc/rsyslog.conf 
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
//配置使用基于mysql存储日志信息的rsyslog服务器:假定此处的mysql和rsyslog是两台不同的主机
注意:请关闭防火墙和SELINUX
1.确保mysql服务正常

2.在rsyslog服务器上安装rsyslog-mysql模块(yum -y install rsyslog-mysql)
[root@rsyslog ~]# yum -y install rsyslog-mysql
已加载插件:fastestmirror
Determining fastest mirrors

 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn
base                                         | 3.6 kB     00:00     
extras                                       | 2.9 kB     00:00     
updates                                      | 2.9 kB     00:00     
(1/4): extras/7/x86_64/primary_db              | 242 kB   00:00     
(2/4): base/7/x86_64/group_gz                  | 153 kB   00:00     
(3/4): base/7/x86_64/primary_db                | 6.1 MB   00:01     
(4/4): updates/7/x86_64/primary_db             | 8.8 MB   00:02     
正在解决依赖关系
--> 正在检查事务
---> 软件包 rsyslog-mysql.x86_64.0.8.24.0-57.el7_9.1 将被 安装
....

3.在mysql服务器上授权一个用户能够对Syslog数据库有写权限
mysql> GRANT ALL ON syslog.* TO 'syslog'@'192.168.%.%' IDENTIFIED BY
 'syslogpassword';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> 

4.配置mysql服务器,在主配置文件(/etc/my.cnf)中添加下面两行内容,并重启mysql服务
[root@mysql ~]# vi /etc/my.cnf
skip_name_resolve = on
innodb_file_per_table = on

5.在rsyslog服务器上执行sql语句
[root@rsyslog ~]#  mysql -usyslog -h192.168.200.141 -psyslogpassword < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

6.配置rsyslog服务器能使用mysql存储日志。编辑/etc/rsyslog.conf文件并重启rsyslog服务
在### MODULES ###段下面添加如下内容:
$ModLoad ommysql
在### RULES ###段下面添加如下内容:
*.info;mail.none;authpriv.none;cron.none       :ommysql:192.168.200.141,Syslog,syslog,syslogpassword

ommysql:表示使用ommysql模块存储日志至mysql
Syslog:表示mysql中的Syslog数据库
syslog:表示连接mysql的用户
syslogpassword:表示连接mysql的密码

7.配置webserver,支持php
[root@mysql ~]# yum install httpd php php-mysql php-gd
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.nju.edu.cn
base                                         | 3.6 kB     00:00     
extras                                       | 2.9 kB     00:00     
mysql-connectors-community                   | 2.6 kB     00:00     
mysql-tools-community                        | 2.6 kB     00:00     
mysql57-community                            | 2.6 kB     00:00     
updates                                      | 2.9 kB     00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-97.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-97.el7.centos,它被软件包 httpd-2.4.6-97.el7.centos.x86_64 需要
......
[root@mysql ~]# systemctl start httpd
8.配置前端展示界面(loganalyzer软件)
[root@mysql ~]# tar xf loganalyzer-3.6.5.tar.gz
[root@mysql ~]# mv loganalyzer-3.6.5/src /var/www/html/loganalyzer
[root@mysql ~]# cp -a loganalyzer-3.6.5/contrib/*.sh /var/www/html/loganalyzer/
[root@mysql ~]# cd /var/www/html/loganalyzer/
[root@mysql loganalyzer]#chmod +x *.sh
[root@mysql loganalyzer]#./configure.sh
[root@mysql loganalyzer]#./secure.sh
[root@mysql loganalyzer]#chmod 666 config.php
#如果没有此文件则手动touch一个即可
在浏览器上输入:http://IP/loganalyzer/install.php

7. httpd 编译安装 虚拟机配置

编译安装三步:

  • ./configure --prefix=安装目录 --with
  • make
  • make install
//在官网拉取三个包
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.48.tar.gz
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.7.0.tar.gz
//解压
[root@localhost ~]# tar xf apr-1.7.0.tar.gz 
[root@localhost ~]# tar xf apr-util-1.6.1.tar.gz 
[root@localhost ~]# tar xf httpd-2.4.48.tar.gz 
//进入到apr-1.7.0 删除或注释 $RM "$cfgfile"
[root@localhost apr-1.7.0]# vi configure
//开始编译安装
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr 可能会报错需要安装 gcc 
//安装gcc
[root@localhost apr-1.7.0]# yum -y install gcc gcc-c++
//再次编译
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
config.status: executing default commands
//开始make 编译
[root@localhost apr-1.7.0]#make && make install
[root@localhost apr-1.7.0]# make && make install
make[1]: 进入目录“/root/apr-1.7.0”
/bin/sh /root/apr-1.7.0/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I./include -I/root/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/root/apr-1.7.0/include/arch/unix -I/root/apr-1.7.0/include -I/root/apr-1.7.0/include/private -I/root/apr-1.7.0/include/private  -o strings/apr_strings.lo -c strings/apr_strings.c && touch strings/apr_strings.lo
/bin/sh /root/apr-1.7.0/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I./include -I/root/apr-1.7.0/include/arch/unix -I./include/arch/unix -I/root/apr-1.7.0/include/arch/unix -I/root/apr-1.7.0/include -I/root/apr-1.7.0/include/private -I/root/apr-1.7.0/include/private  -o stri
......
//进入到apr-util 开始编译安装
[root@localhost ~]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for working mkdir -p... yes
APR-util Version: 1.6.1
checking for chosen layout... apr-util
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
....
//make编译安装
[root@localhost apr-util-1.6.1]# make && make install
make[1]: 进入目录“/root/apr-util-1.6.1”
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private  -I/usr/local/apr/include/apr-1    -o buckets/apr_brigade.lo -c buckets/apr_brigade.c && touch buckets/apr_brigade.lo
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private  -I/usr/local/apr/include/apr-1    -o buckets/apr_buckets.lo -c buckets/apr_buckets.c && touch buckets/apr_buckets.lo
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private  -I/usr/local/apr/include/apr-1    -o buckets/apr_buckets_alloc.lo -c buckets/apr_buckets_alloc.c && touch buckets/apr_buckets_alloc.lo
/bin/sh /usr/local/apr/build-1/libtool --silent --mode=compile gcc -g -O2 -pthread   -DHAVE_CONFIG_H  -DLINUX -D_REENTRANT -D_GNU_SOURCE   -I/root/apr-util-1.6.1/include -I/root/apr-util-1.6.1/include/private  -I/usr/local/apr/include/apr-1    -o buckets/apr_buckets_eos.l
.....
//进入到httpd里开始编译安装
[root@localhost apr-util-1.6.1]# cd /root/httpd-2.4.48
[root@localhost httpd-2.4.48]# ./configure --prefix=/usr/local/httpd--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure: 
configure: Configuring Apache Portable Runtime library...
configure: 
checking for APR... yes
  setting CC to "gcc"
  setting CPP to "gcc -E"
  setting CFLAGS to " -g -O2 -pthread"
  setting CPPFLAGS to " -DLINUX -D_REENTRANT -D_GNU_SOURCE"
  setting LDFLAGS to " "
configure: 
configure: Configuring Apache Portable Runtime Utility library...
configure: 
checking for APR-util... yes
checking for gcc... gcc
.....
//开始make
[root@localhost httpd-2.4.48]# make && make install
Making all in srclib
make[1]: 进入目录“/root/httpd-2.4.48/srclib”
make[1]: 离开目录“/root/httpd-2.4.48/srclib”
Making all in os
make[1]: 进入目录“/root/httpd-2.4.48/os”
Making all in unix
make[2]: 进入目录“/root/httpd-2.4.48/os/unix”
make[3]: 进入目录“/root/httpd-2.4.48/os/unix”
/usr/local/apr/build-1/libtool --silent --mode=compile gcc -std=gnu99  -g -O2 -pthread      -DLINUX -D_REENTRANT -D_GNU_SOURCE     -I. -I/root/httpd-2.4.48/os/unix -I/root/httpd-2.4.48/include -I/usr/local/apr/include/apr-1 -I/usr/local/apr-util/include/apr-1 -I/root/httpd-2.4.48/modules/aaa -I/root/httpd-2.4.48/modules/cache -I/root/httpd-2.4.48/modules/core -I/root/httpd-2.4.48/modules/database -I/root/httpd-2.4.48/modules/filters -I/root/httpd-2.4.48/modules/ldap -I/root/httpd-2.4.48/modules/loggers -I/root/httpd-2.4.48/modules/lua -I/root/httpd-2.4.48/modules/proxy -I/root/httpd-2.4.48/modules/http2 -I/root/httpd-2.4.48/modules/session -I/root/httpd-2.4.48/modules/ssl -I/root/httpd-2.4.48/modules/test -I/root/httpd-2.4.48/server -I/root/httpd-2.4.48/modules/md -I/root/httpd-2.4.48/modules/arch/unix -I/root/httpd-2.4.48/modules/dav/main -I/root/httpd-2.4.48/modules/generators -I/root/httpd-2.4.48/modules/mappers  -prefer-non-pic -static -c unixd.c && touch unixd.lo
/usr/local/apr/build-1/libtool --silent --mode=link gcc -std=gnu99  -g -O2 -pthread         -o libos.la -static  unixd.lo  
.....
//安装完毕启动
[root@localhost local]# cd httpd/
[root@localhost httpd]# ls
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
[root@localhost httpd]# /usr/local/httpd/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
 [root@localhost httpd]# ss -antl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128     *:22                  *:*                  
LISTEN     0      100    127.0.0.1:25                  *:*                  
LISTEN     0      128    :::80                 :::*                  
LISTEN     0      128    :::22                 :::*                  
LISTEN     0      100       ::1:25                 :::*                  
[root@localhost httpd]# 
//关闭防火墙
[root@localhost httpd]# systemctl stop firewalld
[root@localhost httpd]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost httpd]# setenforce 0
[root@localhost httpd]# 
//访问

host httpd]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :22 :
LISTEN 0 100 127.0.0.1:25 :
LISTEN 0 128 :::80 :::

LISTEN 0 128 :::22 ::

上一篇:Docker基础 - 05网络


下一篇:[leetcode]Search for a Range @ Python