如何查看Linux下的shell操作日志文件? (linux 查看shell记录日志文件)

在Linux系统中,shell操作日志文件作为一种重要的系统日志,记录了用户和管理员在Linux终端下执行的各种命令和操作,对系统维护和安全监控非常关键。因此,了解如何查看Linux下的shell操作日志文件是一项必备的技能。本篇文章将为你介绍多种方法查看shell操作日志文件,并讲解如何分析日志内容。

一、查看系统的默认shell操作日志文件

系统的默认shell操作日志文件路径通常为/var/log下的auth.log或者secure文件。这些文件记录了通过登录认证的用户在系统中执行的命令,包括登录和退出信息。系统管理员可以查看这些日志文件来了解用户活动。

查看auth.log日志文件:

1. 转到/var/log目录下。

2. 执行以下命令:

sudo nano auth.log

或者

sudo tl -f auth.log

* sudo表示以管理员权限执行命令,nano和tl是两种查看文件的命令工具,-f参数表示实时监控文件内容变化。

3. 如果您想搜索日志中特定的内容,例如搜索关于sudo命令执行的日志记录,可以使用以下命令:

sudo grep ‘sudo’ auth.log

* grep命令是用于在文件中搜索特定内容的命令,‘sudo’是要搜索的内容。

查看secure日志文件:

与auth.log类似,secure日志文件也记录了用户在系统中执行命令的活动。但是,secure日志文件还包括对系统安全进行的更多详细记录,例如防火墙规则变更日志。因此,secure日志文件通常需要管理员权限才能查看。

1. 转到/var/log目录下。

2. 执行以下命令:

sudo nano secure

或者

sudo tl -f secure

* sudo表示以管理员权限进行命令,nano和tl是两种查看文件的命令工具,-f参数表示实时监控文件内容变化。

3. 如果您想搜索日志中特定的内容,例如搜索关于ssh登录的日志记录,可以使用以下命令:

sudo grep ‘sshd’ secure

* grep命令是用于在文件中搜索特定内容的命令,‘sshd’是要搜索的内容。

二、为bash shell配置操作日志

Linux系统的bash shell默认不会记录用户输入的命令。但是,通过在.bashrc文件中添加命令,可以方便地启用bash shell操作日志的记录功能。

1. 打开.bashrc文件。

sudo nano ~/.bashrc

2. 添加以下行来启用bash shell操作日志记录:

export HISTFILE=/var/log/bash_history.log

export PROMPT_COMMAND=“history -a;$PROMPT_COMMAND”

* HISTFILE变量定义bash shell操作日志的保存路径,PROMPT_COMMAND变量定义在用户执行命令后自动保存日志。

3. 保存并退出文件。

4. 重新启动bash shell或重新登录系统以使更改生效。

5. 查看bash shell操作日志。

sudo nano /var/log/bash_history.log

三、使用系统日志记录程序操作日志

除了默认的auth.log和secure系统日志文件外,您还可以使用系统日志记录程序来记录用户的操作日志。更流行的是syslog-ng和rsyslog程序。

1. 安装syslog-ng或rsyslog。

sudo apt-get install syslog-ng

或者

sudo apt-get install rsyslog

2. 配置syslog-ng或rsyslog以记录bash shell操作日志。

sudo nano /etc/rsyslog.d/bash.conf

* 在rsyslog中,可以通过创建一个bash.conf文件来定义bash shell操作日志的保存路径。

3. 添加以下内容:

# bash shell log

:syslogtag, contns, “bash:” /var/log/bash.log

& ~

* 该配置文件将bash shell操作日志记录在/var/log/bash.log文件中。

4. 保存并退出文件。

5. 重新启动syslog-ng或rsyslog。

sudo systemctl restart syslog-ng

或者

sudo systemctl restart rsyslog

6. 查看bash shell操作日志。

sudo nano /var/log/bash.log

以上介绍了在Linux系统中查看shell操作日志文件的多种方法,涵盖了默认日志文件、自定义bash shell操作日志和通过系统日志记录程序记录操作日志等多种情况。查看日志文件不仅有利于系统维护和安全监控,还有助于分析和排除操作问题。因此,学习如何查看shell操作日志文件是每个Linux系统管理员必备的技能。

相关问题拓展阅读:

编辑一个linux 的shell脚本,达到查找系统中的log文件并删除

find dir -iregex “.*\.log” | xargs rm -rf.

先用find命令找到指定目录下以兄明log结尾的所有文件的全路径,然后用xargs把结羡悔告果传递给rm命令的输入参数,然前哗后用rm命令删除就可以了。

求解答Linux下的一个shell脚本

贴成一锅粥,没有功夫仔细看,好好排排版先

1 syslogd的配置文件

syslogd的配置文件/etc/syslog.conf规定了系统中需要监视的事件和相应的日志的保存位置

cat /etc/syslog.conf

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*/dev/console

# Log anything (except mail) of level info or higher.

# Don’t log private authentication messages!

*.info;mail.none;authpriv.none;cron.none /var/log/messages #除了mail/news/authpriv/cron以外,将info或更高级别的消息送到/var/log/messages,其中*是通配符,代表任何设备;none表示不对任何级别尺李的信息进行记录

# The authpriv file has restricted access.

authpriv.* /var/log/secure #将authpirv设备的任何级别的信息记录到/戚祥var/log/secure文件中,这主要是一些和认证,权限使用相关的信息.

# Log all the mail messages in one place.

mail.*/var/log/maillog #将mail设备中的任何级别的信息记录到/var/log/maillog文件中, 这主要是和电子邮件相关的信息.

# Log cron stuff

cron.*/var/log/cron #将cron设备中的任何级别的信息记录到/var/log/cron文件中, 这主要是和系统中定期执行的任务相关的信息.

# Everybody gets emergency messages

*.emerg* #将任何设备的emerg级别或更高级别的消息发送给所有正在系统上的用户.

# Save news errors of level crit and higher in a special file.

uucp,news.crit/var/log/spooler #将uucp和news设备的crit级别或更高级别的消息记录到/var/log/spooler文件中.

# Save boot messages also to boot.log

local7.* /var/log/boot.log #将和本地系统启动相关的信息记录到/var/log/boot.log文件中.

2. syslogd语法

该配置文件的每一行的格式如下:

facility.priority action 设备.级别 动作

3. Syslogd设备字段

设备字段用来指定需要监视的事件.它可取的值如下:

authpriv cron daemon kern lpr syslog user uucp mail news

报告认证活动通常,口令等私有信息不会被记录 报告与cron和at有关的信息 报告与xinetd有关的信息 报告与内核有关的信息 报告与打印服务有关的信息 由syslog生成的信息 报告由用户程序生成的任何信息由UUCP生成的信息 报告与邮件服务有关的信息 报告与网络新陵仔迟闻服务有关的信息

4. syslogd级别字段

级别字段用于指明与每一种功能有关的级别和优先级:

alert crit err warning notice info debug none * emerg

需要立即引起注意的情况 危险情况的警告 除了emerg,alert,crit的其他错误 警告信息需要引起注意的情况 值得报告的消息 由运行于debug模式的程序所产生的消息 用于禁止任何消息 所有级别,除了none 出现紧急情况使得该系统不可用

5. syslogd动作字段

动作字段用于描述对应功能的动作

file username device @hostname

指定一个绝对路径的日志文件名记录日志信息 发送信息到指定用户,*表示所有用户 将信息发送到指定的设备中,如/dev/console将信息发送到可解析的远程主机hostname,且该主机必须正在运行syslogd并可以识别syslog的配置文件

6. 查看日志文件

常见的日志文件日志文件通常存放在/var/log目录下.在该目录下除了包括syslogd 记录的日志之外,同时还包含所有应用程序的日志. 为了查看日志文件的内容必须要有root权限.日志文件中的信息很重要,只能让超级用户有访问这些文件的权限.

7. log

cups/ httpd/ mail/ news/ boot.log dmesg maillog messages secure wtmp

存储CUPS打印系统的日志目录 记录apache的访问日志和错误日志目录 存储mail日志目录 存储INN新闻系统的日志目录 记录系统启动日志记录系统启动时的消息日志 记录邮件系统的日志 由syslogd记录的info或更高级别的消息日志 由syslogd记录的认证日志 一个用户每次登录进入和退出时间的永久记录

8. 查看文本日志文件

绝大多数日志文件是纯文本文件,每一行就是一个消息.只要是在Linux下能够处理纯文本的工具都能用来查看日志文件.可以使用 cat,tac, more,less,tail和grep进行查看文件中每一行表示一个消息,而且都由四个域的固定格式组成: 时间标签(Timestamp):表示消息发出的日期和时间. 主机名(Hostname):表示生成消息的计算机的名字. 生成消息的子系统的名字:可以是”Kernel”,表示消息来自内核或者 是进程的名字,表示发出消息的程序的名字. 在方括号里的是进程的PID. 消息(Message),即消息的内容.

syslog发出的消息,说明了守护进程已经在 Dec 16,03:32:41 重新启动了. Dec 16 03:32:41 cnetos5 syslogd 1.4.1: restart. # 在 Dec 19,00:20:56 启动了内核日志 klogd Dec 19 00:20:56 cnetos5 kernel: klogd 1.4.1, log source = /proc/kmsg started. # 在 Dec 19,00:21:01 启动了xinetd Dec 19 00:21:01 cnetos5 xinetd: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in.

9. 查看非文本日志文件Lastlog

也有一些日志文件是二进制文件,需要使用相应的命令进行读取.

使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog 的内容

rpc **从未登录过** rpcuser **从未登录过** sshd **从未登录过** pcap **从未登录过** haldaemon **从未登录过** xfs **从未登录过** gdm **从未登录过** boobooke **从未登录过** baobao pts/1 192.168.1.2 三 11月 26 12:44:32 +abc **从未登录过** test pts/1 192.168.1.5 四 11月 27 17:30:53 +test01 **从未登录过**

last命令往回搜索/var/log/wtmp来显示自从文件之一次创建以来登录过用户

root pts/.226.69.195 Fri Aug 31 15::37 (02:49)

10. 查看非文本日志文件lastb

lastb命令搜索/var/log/btmp来显示登录未成功的信息.

root ssh:notty.143.27.97 Thu Sep 6 19::43 (00:00)

11. 查看非文本日志文件who

who命令查询wtmp文件并报告当前登录的每个用户.who命令的缺省输出包括用户名,终端类型,登录日期及远程主机.

# who

root pts/:18 (116.226.69.195)

# w

10:41:31 up 212 days, 20:19, 1 user, load average: 0.21, 0.16, 0.14

USER TTY FROMLOGIN@ IDLE JCPU PCPU WHAT

root pts/.226.69.:.00s 0.09s 0.00s w

12.日志滚动

为什么使用日志滚动所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成磁盘空间的不必要的浪费.同时也 加快了管理员查看日志所用的时间,因为打开小文件的速度比打开大文件的速度要快.

Logrotate 其命令格式为: logrotate

-d:详细显示指令执行过程,便于排错或了解程序执行的情况.

-f:强行启动记录文件维护操作,即使logrotate指令认为无需要亦然 -m command:指定发送邮件的程序,默认为 /usr/bin/mail. -s statefile:使用指定的状态文件. -v:在执行日志滚动时显示详细信息.

13. 日志滚动

logrotate 默认的主配置文件是 /etc/logrotate.conf /etc/logrotate.d 的目录下的文件,这些文件被 include 到主配置文件 /etc/logrotate.conf 中

# see “man logrotate” for details # 每周清理一次日志文件

weekly #保存过去四周的日志文件

rotate 4 #清除旧日志文件的同时,创建新的空日志文件

create #若使用压缩的日志文件,请删除下面行的注释符

#compress #包含/etc/logrotate.d目录下的所有配置文件

include /etc/logrotate.d #设置/var/log/wtmp的日志滚动

/var/log/wtmp {

monthly

minsize 1M

create 0664 root utmp

rotate 1

}

可以使用ls命令显示/etc/logrotate.d目录:

# ls /etc/logrotate.d

mgetty psacct rpm setroubleshoot snmpd syslog yum

每个文件的基本格式均相同

# cat /etc/logrotate.d/syslog

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { #对日志文件

sharedscripts #调用日志滚动通用函数sharedscripts

postrotate #在日志滚动之后执行语句括号postrotate和endscript之间的命令postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true #重新启动syslogd

endscript

}

logrotate是由crond运行的,在默认配置中,可以发现在/etc/cron.daily目录中有一个名为logrotate的文件

# cat /etc/cron.daily/logrotate

#!/bin/sh

/usr/in/logrotate /etc/logrotate.conf

EXITVALUE=$?

if ; then

/usr/bin/logger -t logrotate “ALERT exited abnormally with “

fi

exit 0

linux+日志保存在哪里?密码文件是什么?

NIX/Linux的密码文件原来采用/etc/passwd,共有7个字段。用户的密码加密后放在每一行的第二个字段里,这个 /etc/passwd文件在一般情况下是所有用户可读,只有root用户可写的,这样不良用户就可能读取加密后的密码字串来取得段肆密码。握纯轿因为这个安全原因,设置一个/etc/shadow文件专门用于保存密码且它的权限一般是root可读,没有其他权限。裤悔这样加密后的密码文件就不能被普通用户读取。做法是把/etc/passwd对应的密码字段用*号表示,在/etc/shadow里对应的一行,有用户名和真正的密码加密字串,其他的字段一般留空。

原始建立起来的系统,只有/etc/passwd文件,使用useradd,passwd命令也只能把密码写入/etc/passwd

在 Linux 系统中,日志文件通常保存在

/var/log

目录下。不同的日志文件记录着不同的系统事件,例如登录记录、系统启动记录、应用程序日志等等。下面是一些常见的日志文件:

/var/log/messages

:记录系统的警告和错误信息。

/var/log/auth.log

:记录系统的认证和授权信息,例如登录和 sudo 命令的使用。

/var/log/syslog

:记录系统的一般信息,包括内核和应用程序日志。

/var/log/dmesg

:记录系统启动时的内核信息或袜纤。

另外,密码文件通常是

/etc/passwd

文件。它包含了系统上所有用户的基本信息,例如用户名衫仿、UID、GID、登录 Shell 和主目录等等。但是,密码本身并不保存在这个文件中,而是保存在/etc/shadow

文件中,只有 root 用户才能访问该文件。/etc/passwd

文件中的好渣每个用户条目都包含一个指向/etc/shadow

文件中相应用户的密码哈希值的指针。

关于linux 查看shell记录日志文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何查看Linux下的shell操作日志文件? (linux 查看shell记录日志文件)