目录
一、linux文件系统1、inode表结构
inode表记录得信息如下:
查看inode号的命令
ls-i文件名或则stat文件名
硬碟上最小的储存单位为磁道(512字节)
文件储存的最小单位为块8个磁道组成为4k
2、复制(cp),删掉(rm),联通文件(mv),inode号的变化cp(复制)rm(删掉)mv(联通)3、三种时间戳ModifyTime
文件近来一次更改的时间
AccessTime
文件最后被查看的时间
ChangeTime
文件权限最后变动的时间
4、问题:删掉文件空间不释放
缘由:文件正在被使用
解决办法:1)使用lsof命令,找到已被删掉却被进程占用的文件,将其关掉。
2)在同一目录下创建一个同名的空文件夹。
二、日志文件
Linux操作系统本身和大部份服务器程序的日志文件都默认置于目录/var/log/下
1、常见的日志文件日志文件位置日志文件说明
/var/log/messages内核和公共日志
它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O错误、网络错误和其他系统错误就会记录到此文件中。其他信息如何安装LINUX,例如某个人的身分切换为root,已及用户自定义安装软件的日志,也会在这儿列举。
/var/log/cron计划任务日志
记录与系统定时任务相关的曰志
/var/log/dmesg系统引导日志
记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/maillog电邮日志
记录电邮信息的曰志
用户日志
/var/log/lastlog
记录系统中所有用户最后一次的登陆时间的曰志。这个文件也是二补码文件.不能直接用Vi查看。而要使用lastlog命令查看
/var/log/secure
记录验证和授权方面的倍息,只要涉及帐户和密码的程序就会记录,例如系统的登陆、ssh的登陆、su切换用户,sudo授权,甚至添加用户和更改用户密码就会记录在这个日志文件中
/var/log/wtmp
永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机风波。同样,这个文件也是二补码文件.不能直接用Vi查看,而要使用last命令查看
/var/tun/ulmp
记录当前早已登陆的用户的信息。这个文件会随着用户的登陆和注销而不断变化,只记录当前登入用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看
2、日志文件的格式
日志文件的格式包含以下4列:
3、内核日志、公共日志和用户日志
内核日志优先级(数字等级越小,优先级越高,消息越重要)
级别
解释
0EMERG(紧急)
会造成主机系统不可用的情况
1ALERT(警告)
必须马上采取举措解决的问题
2CRIT(严重)
比较严重的情况
3ERR(错误)
运行出现错误
4WARNING(提醒)
可能影响系统功能,须要提醒用户的重要风波
5NOTICE(注意)
不会影响正常功能linux修改文件时间戳,而且须要注意的风波
6INFO(信息)
通常信息
7DEBUG(调试)
程序或系统调试信息等
公共日志储存位置:/var/log/messages
内核及大多数系统消息被记录到公共日志文件/var/log/messages中,/etc/rsyslog.conf文件是日志储存位置的配置文件,通过更改/etc/rsyslog.conf文件内容,可以修改日志储存位置
用户日志:在wtmp、btmp、lastlog等日志文件中,保存了系统用户登入、退出等相关的风波消息。须要使用who、w、users、last和lastb等用户查询命令来获取日志信息
命令
解释
who
用于报告当前登入到系统中的每位用户的信息。使用该命令,系统管理员可以查看当前系统存在什么不合法用户,因而对其进行审计和处理。who的默认输出包括用户名、终端类型、登录日期及远程主机。
用于显示当前系统中的每位用户及其所运行的进程信息,比users、who命令的输出内容要丰富一些。
user
只是简单地输出当前登入的用户名称,每位显示的用户名对应一个登入会话。假如一个用户有不止一个登入会话,那他的用户名将显示与其相同的次数
who
user
last
last命令用于查询成功登陆到系统的用户记录,近来的登入情况将显示在最上面。
lastb
lastb命令用于查询登陆失败的用户记录,如登入的用户名错误、密码不正确等情况都将记录在案。
三、修改日志储存位置操作1、将ssh服务的日志文件独立保存
1)更改/etc/rsyslog.conf文件
仅需更改右图中74行内容即可
[root@localhost~]#vim/etc/rsyslog.conf
2)更改ssh服务的配置
[root@localhost~]#vim/etc/ssh/sshd_config
3)重启rsyslog服务和sshd服务
[root@localhostlog]#systemctlrestartrsyslog.servicesshd
4)使用另一台主机远程登录此笔记本,此笔记本运行查看日志命令
[root@localhost~]#tail-f/var/log/ssh.log#查看日志
[root@localhost~]#ssh192.168.3.100#使用另一台主机远程登陆
2、多台服务器与一个日志服务器,实现远程日志功能
使用两台虚拟机进行模拟linux系统安装教程,将虚拟机1的日志存置于虚拟机2上,虚拟机2充当日志服务器。
1)编辑日志服务器(虚拟机2)的配置
[root@Server~]#vim/etc/rsyslog.conf
2)重启服务,并查看端口是否打开
[root@Server~]#systemctlrestartrsyslog#重启rsyslog服务
[root@Server~]#netstat-ntap|grep514#查看514端口是否开启
3)顾客端(虚拟机1)配置,更改日志文件配置
[root@PC~]#vim/etc/rsyslog.conf
4)重启rsyslog服务,并查看514端口是否打开
[root@PC~]#systemctlrestartrsyslog#重启rsyslog服务
[root@PC~]#netstat-ntap|grep514#查看514端口是否开启
5)实时查看日志服务器的/var/log/secure日志文件
[root@Server~]#tail-f/var/log/secure
6)在顾客端做些操作,之后去服务端查看日志信息
[root@PC~]#
[root@PC~]#logger"thisistestlogfrom192.168.91.1012"
#测试,写日志进去
四、日志管理工具journalctl
CentOS7之后版,借助Systemd统一管理所有Unit的启动日志。带来的用处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。
工具配置位置:/etc/systemd/journald.conf
使用journalctl--help查看关于journalctl工具的使用:
简单举出一部份,详尽自己去查
-b[ID][±offset],--boot=[ID][±offset]
显示特定于某次启动的日志,这相当于添加了一个"_BOOT_ID="匹配条件。
假如参数为空(也就是ID与±offset都未指定),则表示仅显示本次启动的日志。
假如省略了ID,这么当±offset是负数的时侯,将从日志头开始正向查找,
否则(也就是为正数或零)将从日志尾开始反响查找。举例来说,"-b
1"表示按时间次序排列最早的那次启动,"-b2"则表示在时间上第二早的那次启动;"-b
-0"表示最后一次启动,"-b-1"表示在时间上第二近的那次启动,以这种推。假如
±offset也省略了linux修改文件时间戳,这么相当于"-b-0",除非本次启动不是最后一次启动(比如用
--directory指定了另外一台主机上的日志目录)。
倘若指定了32字符的ID,这么表示借此ID所代表的那次启动为基准
估算偏斜量(±offset),估算方式同上。换句话说,省略ID表示以本次启动为基准
估算偏斜量(±offset)。
--list-boots
列举每次启动的序号(也就是相对于本次启动的偏斜量)、32字符的ID、
第一条日志的时间戳、最后一条日志的时间戳。
-k,--dmesg
仅显示内核日志。蕴涵了-b选项以及"_TRANSPORT=kernel"匹配项。
--no-pager
不将程序的输出内容管线(pipe)给分页程序
#查看所有日志(默认情况下,只保存本次启动的日志)
journalctl
#查看内核日志(不显示应用日志)
journalctl-k
#查看指定时间的日志
journalctl--since"20minago"
#日志默认分页输出,--no-pager改为正常的标准输出
journalctl--no-pager
文章评论