ls -i查inode号 stat 文件(123) 文件详细内容
文件存储在硬盘上,最小存储单位“扇区”
block:连续的八个扇区组成一个人block ,4k
文件存储的最小单位
inode:索引节点 i节点 存储文件元信息
atime(accesstime):访问时间
当使用这个文件的时候就会更新这个时间。
mtime(modification time):更改时间
当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。
ctime(status time):最后一次改变时间
当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,
只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。
目录文件结构
文件名1 | inode号 |
文件名2 | inode号 |
用户访问文件 cat 123 linux中先找123的inode号 通过inode号识别不同文件类型(先的身份后文件)
使用vim后(:wq!) inode号会变
unzip 解压zip文件
find /opt -inum inode号 -exec rm -rf {} \;删文件目录
find /opt -inum inode号 -delete 删文件
恢复EXT类型的文件
用extundelete 恢复ext3类型文件
安装依赖包
yum -y install e2fsprogs-devel e2fsprogs-libs
wget下载extundelete
tar -jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4/
yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl
./configure --prefix=/usr/local/extundelete && make && make install #指定路径并安装
ln -s /usr/local/extundelete/bin/* /usr/bin/ #创建快捷方式
进入挂载磁盘ls -ai 发现inode号从2开始
删除实验文件
切换目录extundelete /dev/sdb1 --inode 2
unmount /dev/sdb1 /opt/data
extundelete /dev/sdb1 --restore -all
恢复到当前目录
恢复xfs类型文件
xfsdump 备份 xfsrestore 恢复
rpm 常用命令
1.安装一个包
# rpm -ivh
2.升级一个包
# rpm -Uvh
3.卸载一个包
# rpm -e
4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5.查询一个包是否被安装
# rpm -q < rpm package name>
6.得到被安装的包的信息
# rpm -qi < rpm package name>
7.列出该包中有哪些文件
# rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包
#rpm -qf
9.可综合好几个参数一起用
# rpm -qil < rpm package name>
10.列出所有被安装的rpm package
# rpm -qa
先rpm -qa | grep xfsdump 查看是否安装
xfsdump -f /opt/dump-sdb2 /dev/sdb2 [-L dump-sdb2 -M sdb2]
/dev/sdb2 要备份的已挂载设备
-L 指定标签 -M sdb2 指定设备
日志文件
/var/log/messages 内核及公共消息日志
非独立都写里面(服务开启关闭等)
auth 用户认证时产生的日志
authpriv ssh、ftp等登录信息的验证信息
daemon 一些守护进程产生的日志
ftp FTP产生的日志
lpr 打印相关活动
mark rsyslog服务内部的信息,时间标识
news 网络新闻传输协议(nntp)产生的消息。
syslog 系统日志
uucp Unix-to-Unix Copy 两个unix之间的相关通信
console 针对系统控制台的消息。
cron 系统执行定时任务产生的日志。
kern 系统内核日志
local0~local7 自定义程序使用
mail 邮件日志
user 用户进程
w #显示目前登入系统的用户信息
last #列出截止目前登录过系统的用户信息
lastb #查询登录失败的用户记录
程序自己维护日志记录,httpd 网站服务程序使用两个日志文件:
(查看相对独立的)使用增删改查都会显示)
access_log #记录客户访问事件
error_log #记录错误事件。
日志管理工具journalctl,日志的配置文件是/etc/systemd/journald.conf
查看所有日志
journalctl
journalctl -r #-r表示倒序,从尾部看(推荐)
查看内核日志(不显示应用日志)
journalctl -k
查看系统本次启动的日志
journalctl -b [-0]
查看上一次启动的日志(需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志)
journalctl -b -1
显示尾部指定行数的日志
查看的是/var/log/messages的日志,但是格式上有所调整,如主机名格式不一样而已
journalctl -n 20
#查看某个服务的日志
journalctl -u nginx.service
#查看指定进程的日志
journalctl _PID=1
#查看指定用户的日志
journalctl _UID=0 --since today 今天的日志
journalctl _UID=0 --since yesterday 昨天的日志
journalctl -xe
# -x 是目录(catalog)的意思,在报错的信息下会,附加解决问题的网址
#-e pager-end 从末尾开始看
实验
实验一:将ssh服务日志单独存放
闭服务端和客户端防火墙、selinux
[root@localhost logs]# setenforce 0
[root@localhost logs]# systemctl stop firewalld
[root@localhost logs]# vim /etc/rsyslog.conf
Save boot messages also to boot.log
local7.* /var/log/boot.log
local6.* /var/log/ssh.log
[root@localhost logs]# vim /etc/ssh/sshd_config
Logging
#SyslogFacility AUTH
#SyslogFacility AUTHPRIV #注释掉
SyslogFacility LOCAL6 #添加这一行,可以复制粘贴,必须要大写
重启服务
[root@localhost logs]# systemctl restart sshd
[root@localhost logs]# systemctl restart rsyslog
验证:
另一台:ssh root@192.168.233.21
在192.168.233.21上查看日志 /var/log/ssh.log
配置日志服务器来收集日志 ----------
rsyslog是一个C/S架构,可以通过套接字来进行监听记录工作,可以基于TCP和UDP工作,默认的监听端口是514,只需要在MODULES打开即可。
发送服务器:客户端 192.168.233.21
收集服务器:服务端 192.168.233.22
//关闭服务端和客户端防火墙、selinux
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
配置发送方:
//修改客户端配置文件,并启动服务
vim /etc/rsyslog.conf
#### MODULES ####
#将下面注释取消
$ModLoad imtcp
$InputTCPServerRun 514
#### RULES ####
#*.info;mail.none;authpriv.none;cron.none /var/log/messages --这一行必须注释
*.info;mail.none;authpriv.none;cron.none @@192.168.233.21 #两个@@表示TCP
ip地址表示接受方
systemctl restart rsyslog
netstat -antp | grep 514 #查看端口情况
配置接收方:
//修改服务端配置文件,并启动服务
vim /etc/rsyslog.conf
#将下面四行前的注释取消掉
$ModLoad imtcp
$InputTCPServerRun 514
systemctl restart rsyslog
netstat -antp | grep 514 #查看端口情况
logger "this is ky27"