目录
基本命令
1.云计算? 相关职位
开源软件和linux起源:
- 自由软件之父:理查德.斯托曼
- linux之父:林纳斯.本纳第克特.托瓦兹
linux发行版
- RHEL:Red Hat Enterprise Linux 红帽linux商业公司
- CentOS:Community Enterprise Operating System 社区企业操作系统 免费的商业软件
- Ubuntu:桌面应用为主的开源GUN/Linux操作系统
- Debian
RHCE:红帽认证工程书
- RHCSA:红帽认证系统管理员
- RHCE:红帽认证工程师
- RHCA:红帽认证架构师
服务器分类:
- 塔式服务器
- 机架式服务器
- 刀片服务器
VMware-真机服务器
启动分区 交换分区 系统分区
处理Centos7/8系统输入用户名密码后界面卡住故障记录:设置用户名有限制
注销设置的用户-以超级管理员root登录
设置网卡-网络连接
XShell链接虚拟机
一次性创建多个文件touch file{yufeng,a,c}
拍摄快照
文件管理
cd /到根目录
bin:普通用户使用,二进制 boot:启动 dev:硬件 etc:设备文件 home:用户主目录 root:root用户的HOME run:临时 sbin:特权
tmp:临时 usr:应用程序 var:日志,邮件
文件类型
- 普通文件(文本文件,二进制文件,压缩文件,电影,图片)
d 目录文件(蓝色)
命令 选项 参数 ls / ls -l /
ctrl+l清屏
yum install tree
touch 路径和名字
mkdir -p 路径文件 :连续创建
cp 源文件路径 目标文件 :复制
table键补齐目录 两次tab键列出所有
cp -r 源文件 目标文件 :是否将源文件夹下的所有都拷贝
cd ~:进入根目录下的root文件夹
cd /进入根目录
mv 源文件路径 目标文件路径:移动
mv /home/a1/b1/c1/d1 /home/a1/b1/ 将d1移动到b1的文件夹下
mv /home/a1/b1/c1/d1 /tmp/d222移动并将d1改名为d222
mv /tmp/d222 /tmp/d333只改名
ctrl+shift++:屏幕放大
cat 文件 :查看全部内容
head -3 文件:查看前三行
tail
more 文件:翻页 空格翻篇回车换行
grep c /1.txt:过滤
ls 路径 >文件名:将路径下的目录信息放入文件中
gedit 文件名:打开文件
vim 文件名 i :wq yy复制,p粘贴 dd删除 5dd一下删除5行 u撤销 x删除一个字
文件和用户管理
用户
创建用户
/etc/passwd(冒号分割为7列字段)root:x:0:0:root:/root:/bin/bash
用户名:x:uid:gid:描述:HOME:shell
x密码占位符,具体的内容不在这里
uid用户的身份证号 0特权用户 1~499系统用户 1000+普通用户
gid组号
root:描述:比如经理
/root:家目录:登录系统时所在目录
/bin/bash:登录shell:命令解释器
/etc/shadow(8列):密码加密后
/etc/group的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户
(User)
用户创建:useradd 用户名
查询用户命令:id 用户名
修改密码:passwd 用户名
普通用户上述命令显示权限不够
指定uid: useradd user01 -u 1503
指定家目录:useradd user02 -d /aaa
useradd --help
查看所有创建的用户:cat /etc/passwd
删除用户
userdel -r 用户名 -r删除主目录文件夹
修改用户属性
禁用:usermod -s /sbin/nologin 用户名 (路径ke'yi'sui'yi)
用户组
创建组
groupadd hr(用户名和组名不能用纯数字)
groupadd net01 -g 2000(指定组号)
groupdel 组名
-u指定用户的UID
-g指定用户的基本组
-G指定用户的附加组
/etc/passwd 可以查看的是用户的基本组
/etc/group可以查看用户的附加组
创建用户AAA,同时生成基本组AAA
useradd AAA
grep AAA /etc/passwd
修改用户AAA的基本组为CCC
usermod AAA -g CCC
修改用户BBB的附加组为CCC
usermod BBB -G CCC
查看BBB的基本组
grep BBB /etc/passwd
查看BBB的附加组
grep CCC /etc/group
id AAA
gpasswd -d A GROUP
A是用户 GROUP是组名
把A从GROUP移除
指定组的gid:groupmod -g 1512 DDD
组的类型
基本组:随用户创建的组,同用户名
附加组:
提权
永久提权su
- 普通用户没有特权
- 尽量少用root
- 需要执行特殊指令时使用su,切换到超管身份
切换用户:su - root
退出root的登陆身份:exit
临时提权sudo
- 使用普通登录服务器时
- 完成部分特权指令
以root身份授权普通用户xulei
vim /etc/sudoers
%wheel ALL=(ALL) NOPASSWD:ALL
第107行:允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
useradd xulei -G wheel
在xulei用户下:sudo useradd guoguo(无sudo不能创建)
用户的权限
基本权限UGO
权限的三类对象
- 属主:u
- 属组:g
- 其他人:o
- 所有人:a(u+g+o)
权限的三种类型
- 读:r=4
- 写:w=2
- 执行:x=1
设置权限
更改权限:
- 使用符号
- 使用数字
更改属主,属组
使用符号
语法:
- 使用符号:u用户 g组 o其他 r读 w写 x执行
- 语法:chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x)文件/目录
chmod (-R) u+r 1.txt(如果是文件夹加-R)
ls -l file1与ll file1 相同
给file授予。其他用户没有读写执行的权力
chmod o= file
chmod o-rwx file
chmod o=--- file
查看文件夹权限:ls -l -d /tmp/
使用数字
chmod 000(数字代表) file.txt
编写程序
file.txt
echo "hello world" read -p "请输入姓名:" name echo "$name是主题"
增加执行权限
chmod u+x file.txt
./file.txt
更改属主,属组
chown命令:
设置一个文件属于谁,属主
语法:chown 用户名.组名 文件
groupadd hr
chown user01.hr /tmp/file.txt
chown alice file1//只改属主
chown .hr file1只改属组
chogrp命令
语法:chgrp 组名 文件 -R是递归的意思
基本权限ACL(access control list)
ACL是UGO的补充
ACL文件权限管理:设置不同用户,不同的基本权限(rwx)对象数量不同
UGO设置基本权限:只能一个用户,一个组和其他人
语法
setfacl -m u:alice:rw /home/test.txt
命令 设置 用户或组:用户名:权限 文件对象
设置
准备文件:
- touch /home/test.txt
- ll /home/test.txt
设置ACL:
- 查看文件有哪些ACL权限:getfacl /home/test.txt(ll会出现权限叠加现象)
- 设置用户alice.jack权限
useradd alice useradd jack
setfacl -m u:alice:rw /home/test.txt
setfacl -m u:jack:r /home/test.txt
请思考命令中的o是什么作用:
setfacl -m o::rw /home/test.txt
删除权限:setfacl -x u:alice /home/test.txt
setfacl -b /home/test.txt擦除所有信息
watch -n1 'ls -l file.txt':每隔1秒查看
特殊权限
特殊位suid
1.suid是针对文件所设置的一个特别的权限
功能:使调用文件的用户,临时具备属主的能力
文件属性
lsattr:查看文件的属性
chattr +i file1(无法操作此文件包括删除)
chattr -i file1
进程掩码(umask)
chmod 0777 file9999(四位第一位为特殊位,4代表suid)
系统为什么创建文件夹时,权限是755(0777-0022)
文件的权限是644,系统为了保护自己,所以在创建的文件上,去掉了所有的执行(0755-0111)
可以这只umask 0000创建的文件权限相应变换
进程管理
什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
- 一个文件
- 被分配的的地址空间
- 有权限限制
- 程序代码的一个或多个副本(也叫执行线程)
像人一样拥有状态
1.什么是程序
具有执行代码和执行权限的文本文件
2.什么是进程
是运行起来的程序。获得计算机各方面的资源(CPU,MEM,DISK,NETWORK,PID)
3.进程的生命周期
由系统程序,fork出来的子程序。具备一定父的资源(权利,内存空间,PID),直到运行完毕,退出系统。
4.进程又那些状态?
静态查看进程ps
ps aux:查看进程
ps a:显示现行终端机下的所有程序
ps u:以用户为主的格式来显示程序的状况
ps x:不以终端机来区分
ps aux|head -3查看前三行
字段含义:
user:运行进程的用户
pid:进程id
%cpu:cpu占用率
%MEM:内存占用率
VSZ:占用虚拟内存
RSS:占用实际内存
TTY:进程运行的终端
STAT:进程状态
time:进程占用cpu总时间
COMMAND:选择文件,进程名
stopped running sleeping zombie
进程排序
ps aux --sort -%cpu(加-是降序)
进程的父子关系
ps -ef
自定义显示字段
ps axo user,pid,ppid,%mem,command|head -3
动态查看进程top
top 按q退出
top -d 1 每一秒刷新
使用信号控制进程
信号种类
给进程发送信号(kill -l列出所有支持的信号)
tty显示当前窗口的名称
编号 信号名
1.sighup 重新加载配置
2.sigint键盘中断ctrl+c
3.sigquit键盘退出ctrl+\
9.sigkill 强制终止,无条件
15.sigterm 终止(正常结束),缺省信号
18.sigcont继续
19.sigstop 暂停
20sigtstp 键盘暂停ctrl+z(扔到后台)
ps aux命令展示了进程的哪些方面的命令
user:用户
PID:进程的编号
%CPU:占用cpu时间的百分比
%MEM:占用内存时间的百分比
VSZ RSS:虚拟内存和实际内存占用的大小
TTY:终端的类型
STAT:运行,睡眠。。。
START:进程启动的时间
command:程序的路径和名称
进程优先级nice
简介
linux进程调度及多任务,每个cpu在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序
查看进程的nice级别
ps axo pid,command,nice --sort=-nice | head -5
启动具有不同nice级别的进程
默认情况:启动进程时,通常会继承父进程的nice级别,默认为0
更改现有进程的nice级别
1.创建一个睡眠示例程序
sleep 7000 &
2.查看进程号
ps axo pid,command,nice | grep sleep
3.renice -20 2669
2669进程id,旧优先级为0,新优先级为-20,观察修旧的nice值
作业 控制jobs
简介
作业控制是一个命令行功能,也叫后台运行
关键词介绍:foregroud前台进程是在终端中运行的命令,占领终端
backgroud后台进程没有控制终端,它不需要终端的交互。看不见,但是在运行
jobs查看后台进程
jobs
把后台程序调回前台
当一个后台程序运行停止时
bg 4(上面ctrl+z前台程序放到后台停止运行)后台程序继续运行
消灭后台进程
kill %4(%是后台进程)
虚拟文件系统proc
虚拟文件系统
采用服务器自身内核,程序运行的状态信息
cpu
/proc/cpuinfo
内存
/proc/meminfo
内核
/proc/cmdline
重定向
date > time.txt
输出重定向:进程产生的信息。存放到文件中
输入重定向:以文本内容作为进程的标准输入
FD简介(文件描述符)
file descriptors,FD,文件描述符,文件句柄进程使用文件描述符来管理打开的文件
fd是访问文件的标识,即链接文件。省去了冗长的绝对路径
- 0 是键盘只读
- 1,2是终端可以理解是屏幕
- 3+ 是文件,可读可写
示例
1.通过一个终端,打开一个文本 vim 1.txt
2.通过另一个终端,查询文本程序的进程号
3.在/proc目录中查看文本程序的FD
ls /proc/5912/fd
> 覆盖 >>追加
2>:专门引导错误输出
把正确的和错误的放在一起:
分开存放:
ls /home/ /aaaaaaa 1> yes.txt 2> no.txt
&> /dev/null 将生成的内容丢入垃圾桶
编写邮件
mail -s "ssss" alice(sssss为标题)
输完内容后.退出
查看:
- 切换账号 su - feng
- mail之后按1查看内容
- 按q退出
利用重定向快速创建邮件
- 准备文件内容vim 。。。
- mail -s "fsfa" feng < 文件名
- 原理:利用输入重定向,把文件内容代替人为的输入
管道
管道命令可以将多条命令组合起来,一次性完成复杂的处理任务
tee管道
cat /etc/passwd|tee file88.txt|tail -1(teee接收的是cat的内容)
参数传递Xargs
cp rm一些特殊命令就是不服其他程序
案例
- 环境准备,准备一些文件。touch /home/file{1..5}生成五个文件
- vim files.txt:/home/file1 /home/file3/ /home/file5
切割cut
cat /etc/passwd | grep ntp | cut -d: -f1 (以:进行分割,切取第一列)
存储管理
基本分区
磁盘简介
- 名词:磁盘、硬盘、disk是同一个东西,不同于内存的是容量比较大。
- 原理分区:机械硬盘即是传统普通硬盘,主要由盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成
- 固态:固态驱动器,俗称固态硬盘,固态硬盘是由固态电子存储芯片而制成的硬盘
- 命名:kernel对不同接口硬盘命名方式(RHEL7/centos7)IDE并口
sata(串口): 1. /dev/sda:/dev设备文件目录 s代表sata就是串口 d代表磁盘 a第一块
第二块:、dev/sdb
- 分区方式:MBR和GPT MBR支持最大的磁盘容量是<2TB.设计时分配4个分区如果希望超过四个分区,需放弃主分区,改为扩展分区和逻辑分区
管理磁盘流程三部曲
新硬盘:分区(MBR或者GPT)——》格式化/文件系统Filesystem——》挂载mount
查看磁盘信息
ll /dev/sd*
lsblk
创建分区
MBR:把房子分成我是和客厅
- 启动分区工具:fdisk /dev/sdb
- Select(default p):p 敲击数字1 (选择分区号)
- 分区号(1-4,默认1):1起始扇区(2048-10485759,默认为2048)
- 输入w保存分区信息,自动退出分区工具
- 刷新分区表:partprobe /dev/sdb
- 查看分区结果:fdisk -l /dev/sdb
创建文件系统
文件系统:房子里的格子柜
mkfs.ext4 /dev/sdb1或者mkfs -t ext4 /dev/sdb1
挂载mount
创建挂载点,一个分区一个挂载点
- mkdir /mnt/disk1
- mount -t ext4 /dev/sdb1 /mnt/disk1
- df -hT查看
只能创建四个主分区,之后创建不了
- 一块硬盘使用MBR,划分分区。数量上只能有如下选择:4主或3主+1扩展(N个逻辑)
删除分区命令:d
按n创建主分区,按e扩展分区
扩展分区包含三个逻辑分区
交换分区管理Swap
简介
作用:‘提升容量’,防止OOM(Out of Memry)
推荐:设置交换分区大小为内存的2倍
重启:init 6或者reboot
查看内存状态:free -m
将sde2挂到虚拟内存上:
- 分区:
- 格式化:mkswap /dev/sde2
- 挂载:swapon /dev/sde2
dd if=/dev/zero of=/mnt/disk4/1.txt bs=1M count=1000将一个文件抄到另一个文件(大小,抄多少次)
逻辑卷LVM
目的:管理磁盘的一种方式,性质与基本磁盘无异
特点:随意扩张大小
术语:
- PV物理卷
- VG:卷组
- LV:逻辑卷
创建物理卷:pvcreate /dev/sdf
创建卷组:vgcreate name /dev/sdf
创建逻辑卷:lvcreate -L 200M -n lv2 vg1 (在卷组中抽调空间制作逻辑卷-分区)
指定大小,单位M,G -L大小 -n卷名 vg1组名
创建文件系统并挂载
mkfs.ext4 /dev/vg1/lv1 注意:/dev/卷组名/逻辑卷名 创建挂载点:mkdir /mnt/lv1 挂载:mount /dev/vg1/lv1 /mnt/lv1
卷组扩容:
环境:/dev/vg1 容量由4G扩容到6G
步骤一:创建PV。而后使用第二步,将PV增加到VG中。 pvcreate /dev/sdd1
步骤二:扩展VG,同时包含方法一
vgextend vg1 /dev/sdd1
pvs:查看卷组信息
LV扩容:
- lv扩容:lventend -L +200M /dev/vg1/lv1
resize2fs /dev/vg1/lv2 扩容磁盘
高级课程
文件系统详解
windows:FAT16 FAT32 NTFS
LINUX:EXT3/4 XFS文件系统
- 类型:索引(index)文件系统
- 系统限制:
- 磁盘空间的限制根据inode和block两方面
block:
- 存储文件的实际数据
- 实际存储文件的内容,若文件较大,会占用多个block
- block大小默认为4K
inode
- 记录文件的属性(文件的元数据metadata) 元数据包括:文件的属性,大小,权限等
- 一个文件占用一个inode,同时记录此文件数据所在的block number
- inode大小为128bytes
superblock
- block与inode的总量
- 未使用与已使用的inode/block数量
ls -l | wc -l 文件的个数
文件链接
符号链接:(软链接)
- 创建一个文件,并输入内容。 echo 111 > /file1
- 创建一个软连接 ln -s /file1 /home/file11
- 观察软链接 ll /home/file11(类型不同l链接,权限提高)
- 删除链接文件内容在?在的 删除源文件? 不在
- 软连接像快捷方式,可以对文件和目录做软连接
- 软连接记录的只是源文件的绝对路径
- 软连接失去源文件不可用
硬链接:
- echo 222 > /file2
- ln /file2 /file2-h1
- 硬链接只能针对文件做。不能对目录做
- 硬链接只能在同分区做
RAID
- 简介:廉价磁盘冗余阵列
- 作用:容错、提升读写速率
- 类型:RAID0,RAID1,RAID5
- RAID1镜像集2块磁盘,容量50%
- RAID5,至少三块等大小的硬盘(数据盘 数据盘 校验盘 热备盘)
- 不同场景RAID的使用
- 硬RAID:需要RAID卡,有自己的CPU,处理速度快,有电池和无电池
- 软RAID:通过操作系统实现,如Windows,Linux
- 软RAID示例:
- 准备四块硬盘:RAID(3块数据盘)+1块热备
- 创建RAID:mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{b,c,d,e}
- 格式化挂载:
- mkfs.ext4 /dev/md0
- mkdir /mnt/raid5
- mount /dev/md0 /mnt/raid5
- cp -rf /etc /mnt/raid5/etc1
mdadm -D /dev/md0
mdadm /dev/md0 -f /dev/sdb -r /dev/sdb(模拟一块硬盘损坏,并移除)
- -C 创建RAID
- /dev/md0 第一个RAID设备
- -l5 RAID5
- -n RAID成员数量
- -x 热备磁盘数量
查找和压缩
文件查找
简介
- which:命令查找
- find:文件查找,针对文件名
- locate:文件查找,依赖数据库(updatedb)
命令文件查找
查找ls命令的位置:which ls
alias ls='ls --color=auto -l'起别名
find
find [path] [options] [expression] [action]
命令 路径 选项 表达式 动作 例:find /etc -name '77551.txt'
- iname 不区分大小写
- find /etc/ -size +5M 文件大小在5M以上
- find / -maxdepth 2 -a -name ifcfg- en* 两级目录
- find /home -user jack//属主是jack的文件
- find /home -group hr//属主是hr的文件
- find /dev -type f 按文件类型
- find /dev -type d
- find . -perm 714 -ls 按文件权限
- find /etc -name "111*" -delete 找到后删除
- find /etc/ -name ifcfg* -ok cp -rvf {} /tmp \; 找到后复制
打包压缩
简介
tar命令是Unix、Linux系统中备份文件的可靠方法
几乎可以工作于任何环境中,它的使用权限是所有用户。建议针对目录
打包,压缩
- 语法:tar 选项 压缩包名称 源文件 tar -cf 1.tar /etc(-cf 创建文件 -czf 打包并压缩,z是gzip) -cjf j是bzip -cJf J是xzip
- 压缩原理:去重法(文件的体积小,缺点无法直接使用)
- 解压缩:tar -xf 111 -C 路径
软件安装
RPM包管理
简介
- RPM Package Manager(原Red Hat Package Manager,现在是一个递归缩写)
- 由Red Hat公司提出,被众多Linux发行版所采用
- 也称二进制无需编译,可以直接使用
- 无法设定个人设置,开关功能
- 软件包示例(注意示例):mysql-community-common-5.7.12-1.el7.x86_64.rpm
YUM工具
是一个在Fedora和RedHat以及CenOS中的Shell前端软件包管理器
基于RPM包管理器,能够从指定的服务器自动下载RPM包并安装,安装
可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须频繁的一次次下载
YUM本地源:系统安装光盘
- 目的:通知linux服务器,通过本机的系统光盘获得软件包,并安装软件
- 观察YUM核心配置目录:
- 记住这个目录/etc/yum.repos.d/
- 打开一个*.repo
- 观察国外地址(下载慢)
删除官方yum库: mv /etc/yum.repos.d/* /tmp
编写本地YUM库配置文件
vim /etc /yum.repos.d/dvd.repo
[dvd]——name=dvd——baseurl=file:///mnt/cdrom——gpgcheck=0
mkdir /mnt/cdrom(装载软件包)
挂载mount /dev/cdrom /mnt/cdrom/(光盘 挂载点)要有光盘而且要插上电
init 6重启后挂载失效
vim /root/.bashrc(开机自动执行)——写入之前挂载的命令
systemctl start httpd(127..0.0.1)
systemctl stop firewalld
systemctl disable firewalld(证明程序安装成功)
- 请理原有的yum配置
- 下载阿里巴巴开源镜像站官网配置
- 更新YUM仓库
- 执行安装
查看下载源:yum repolist
使用YUM管理RPM
安装
- 全新安装:yum -y install httpd vsftpd(-y yes自动确认 软件包1 软件包2)
- reinstall 重新安装
- 升级安装: yum -y update httpd
查询
- 查看是否安装;yum list httpd
卸载
- yum -y remove httpd
yum makecache更新yum源
RPM工具
先找到包
- cd /mnt/cdrom/Packages检查包是否存在
- rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm(ivh 安装可视百分比)
- rpm -q wget 查询,看到软件包的名字,就说明rpm -q查询成功,已经安装软件
- 卸载:rpm -evh wget-....后面不要加后缀.rpm
缺点:
RPM无法处理依赖
源码包
- source code需要经过GCC,C++编译环境编译才能运行
- 可以设定个人设置,开关功能
- 软件包示例:nginx-1.8.1..tar.gz
- 认识源码包
- 配置复杂
- 认识源码包:nginx 包名 -1.8.1版本号 .tar.gz压缩格式
获得源码包
官方网站可以获得最新的软件包
- Apache:www.apache.org
- Nginx:www.nginx.org
- Tengine:tengine.taobao.org
- 直接浏览器下载
- 命令下载——wget 网址
- yum install -y wget
- wget 下面网址
- 准备编译环境如解释器——yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
- useradd www
- tar xf tengine-2.3.3.tar.gz
- cd tengine-2.3.3
- ./configure --user=www --group=www --prefix=/usr/loca/ngimx(指定路径)
- 编译make
- 安装 make install
启动测试
- 可能之前的实验,安装过httpd服务,如果直接使用nginx会与冲突,请确保关闭httpd
- systemctl stop httpd
- /usr/loca/ngimx/sbin/nginx
- systemctl stop firewalld
- 使用浏览器访问本机的IP,127.0.0.1,如果能看到NGINX网页,说明部署成功
计划任务
一次性调度执行at
语法格式
at <TIMESPEC>
<TIMESPEC>示例
now +5min
teatime tomorrow
at now +2min——>useradd uuu——>ctrl+d退出
atq查看
循环调度执行cron
- cron的概念和crontab是不可分割的
- crontab是一个命令,常见于Unix和Linux的操作系统中
- 用于设置周期性被执行的指令
- 该命令从标准输入设备读取指令,并将其存放再“crontab”文件中,以供之后读取和执行
查看进程状态
- systemctl status crond.service
- ps aux|grep crond
- ls /var/spool/cron
- crontab -e
- 分 时 日 月 周 命令或执行脚本(六个部分用空格隔开)
- * * * * * 命令
日志管理
简介
任务一(rsyslog系统日志管理):关心问题:哪类程序——产生什么日志——放到什么地方
任务二(logrotate日志轮转):将大量的日志,分割管理,删除旧日志
任务一详解
处理日志的进程
第一类:
- rsyslogd:系统专职日志程序
- 处理绝大部分日志记录
- 系统操作有关的信息,如登录信息,程序启动关闭信息
第二类:
- httpd/nginx/mysql:各类应用程序,可以以自己的方式记录日志、讲解对应程序时会逐步介绍
观察rsyslogd程序
- ps aux|grep rsyslogd
常见的日志文件(系统、进程、应用程序)
- tail -10 /var/log/messages 系统主日志文件
- tail -f /var/log/messages 动态查看日志文件的尾部
- tailf /var/log/secure 认证安全
- tail /var/log/yum.log //yum
- tail /var/log/maillog 根邮件postfix相关
rsyslogd配置
1.相关程序
- yum install rsyslog logrotate(默认已安装)
2.启动程序
- systemctl start rsyslog.service
3.相关文件
rpm -qc rsyslog(查询软件包的安装情况,c配置文件)
- /etc/rsyslog.conf——rsyslogd的主配置文件(关键)
- /etc/rsysconfig/rsyslog——rsyslogd的相关文件
- /etc/logrotate.d/syslog——和日志办轮转(切割)相关(任务二)
主配置文件:
- 告诉rsyslogd进程什么日志,应该存在哪里
- vim /etc/rsyslog.conf(:set nu显示全部)
- 设备——级别——路径
man rpm(查看咋用)
特性:rsyslog程序 /etc/rsyslog.conf ssh程序 /etc/ssh.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{ days}这里为什么出现了,用户登录日志文件。在配置文件中,书写日志的名字和大括号。就可以独立的设定该日志的轮转规则
- minsize 1M //最小达到1M才轮转,monthly and minsize
- create 0664 root utmp //轮转后创建新文件,并设置权限(权限 属主 属组)
- missingok //丢失不提示
- notifempty //空文件不论转
- maxsize 30K //达到30k轮转 daily or size
- date 04011000 修改时间
- /usr/sbin/logrotate(命令) -s /var/lib/logrotate/logrotate/logrotate.status(时间戳) /etc/logrotate.conf