linux执行命令的日志 linux 命令日志

Linux的日志文件放在哪个目录下 RedHat Linux常见的日志文件详述如下
◆/var/log/boot.log
该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息 。
◆/var/log/cron
该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作 。
CMD的一个动作是cron派生出一个调度进程的常见情况 。
REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度 。
RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存 。
该文件可能会查到一些反常的情况 。
◆/var/log/maillog
该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动 。
它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统 。
该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号、一个冒号和一个空格,最后是消息 。
该文件有一个不足,就是被记录的入侵企图和成功的入侵事件,被淹没在大量的正常进程的记录中 。
但该文件可以由/etc/syslog文件进行定制 。
由/etc/syslog.conf配置文件决定系统如何写入/var/messages 。
有关如何配置/etc/syslog.conf文件决定系统日志记录的行为,将在后面详细叙述 。
◆/var/log/syslog
默认RedHat Linux不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件 。
它和/etc/log/messages日志文件不同,它只记录警告信息 , 常常是系统出问题的信息 , 所以更应该关注该文件 。
要让系统生成该日志文件 , 在/etc/syslog.conf文件中加上:*.warning /var/log/syslog 该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息 。
该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成 。
在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间 。
如果某用户从来没有登录过,就显示为"**Never logged in**" 。
该命令只能以root权限执行 。
系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录,如果发现这些账户已经登录,就说明系统可能已经被入侵了 。
若发现记录的时间不是用户上次登录的时间,则说明该用户的账户已经泄密了 。
◆/var/log/wtmp
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件 。
【linux执行命令的日志 linux 命令日志】 因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数 。
该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息 , 并以反序从后向前显示用户的登录记录,last也能根据用户、终端 tty或时间显示相应的记录 。
命令last有两个可选参数:
last -u 用户名 显示用户上次登录的情况 。
last -t 天数 显示指定天数之前的用户登录情况 。
◆/var/run/utmp
该日志文件记录有关当前登录的每个用户的信息 。
因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录 。
系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件 。
该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的 。
以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况 。
这些文件的所有记录都包含了时间戳 。
这些文件是按二进制保存的 , 故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看 。
其中,utmp和wtmp文件的数据结构是一样的 , 而lastlog文件则使用另外的数据结构 , 关于它们的具体的数据结构可以使用man命令查询 。
每次有一个用户登录时,login程序在文件lastlog中查看用户的UID 。
如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录 。
该记录一直用到用户登录退出时删除 。
utmp文件被各种命令使用,包括who、w、users和finger 。
下一步 , login程序打开文件wtmp附加用户的utmp记录 。
当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中 。
wtmp文件被程序last使用 。
◆/var/log/xferlog
该日志文件记录FTP会话 , 可以显示出用户向FTP服务器或从服务器拷贝了什么文件 。
该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用 。
该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII , b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模式(a:匿名 , g:输入口令 , r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或"*" 。
RedHat Linux默认没有记录该日志文件 。
要启用该日志文件 , 必须在/etc/syslog.conf文件中添加一行:kern.* /var/log/kernlog。
这样就启用了向/var/log/kernlog文件中记录所有内核消息的功能 。
该文件记录了系统启动时加载设备或使用设备的情况 。
一般是正常的操作,但如果记录了没有授权的用户进行的这些操作,就要注意 , 因为有可能这就是恶意用户的行为 。
该日志文件记录了X-Window启动的情况 。
另外,除了/var/log/外,恶意用户也可能在别的地方留下痕迹,应该注意以下几个地方:root和其他账户的shell历史文件;用户的各种邮箱 , 如.sent、mbox,以及存放在/var/spool/mail/ 和 /var/spool/mqueue中的邮箱;临时文件/tmp、/usr/tmp、/var/tmp;隐藏的目录;其他恶意用户创建的文件,通常是以"."开头的具有隐藏属性的文件等 。
linux后台自动执行命令nohup与日志查看在linux上执行脚本,当退出页面或电脑锁屏后,脚本就停止执行了 。对需要长时间运行的脚本非常不友好 。
nohup(no hang up):可以让程序不挂断执行 。
:可以让程序在后台执行 。
“ nohup.log”: 表示将日志输出到nohup.log文件上 。
21:表示将正确日志、错误日志都输出到正确日志指定的文件(nohup.log文件)上 。
4-9 Linux 中的日志分析日志:系统、软件 和 用户操作交互信息的记录文件 。用于系统审核,日常故障快速定位和排错 。
日志文件保存在 /var/log 和 /var/run 目录下 。在 RedHat 7 中,系统日志消息由两个服务负责处理 , 它们是 systemd-journald 和 rsyslogd 。
日志的保存时间系统默认是4周,可以通过 cat /etc/logrotate.conf 里面的一项参数查到 。rotate 可以修改 。
主要日志文件介绍:
/var/log/messages:系统日志,主要记录内核和公共消息 。
/var/log/cron:计划执行任务日志 。
/var/log/dmesg:系统引导日志 。
/var/log/maillog:邮件日志 。
/var/log/lastlog:用户登录日志 。(用 lastlog 命令)
/var/log/boot.log:系统启动日志 。
/var/log/secure:安全和身份验证日志。
/var/log/wtmp:记录所有用户登录的详细信息 。(用 last 命令)
/var/log/btmp:记录失败的登录记录(用 lastb 命令)
/var/run/utmp:用户登录、注销及系统开、关等事件 。(用 w / who 命令)
(wtmp、btmp 和 utmp 是二进制文件,不能用cat、vi、tail、more这些命令打开查看)
1、/var/log/messages:系统日志,主要记录内核和公共消息 。
1)、messages 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志 。
2)、红色下划线:systemctl restart sshd 重启 sshd 服务 。
黄色下划线:tail /var/log/messages 查看 messages 日志 。
蓝色方框:messages 日志已经可以查到重启 sshd 服务的记录 。
绿色下划线:每个动作都记录得很清楚 。暂停中(Stopping)、已暂停(Stopped)、启动中(Starting) 和 已启动(Started)
2、/var/log/cron:计划执行任务日志 。
1)、cron 信息项包括:事件发生的日期和时间、主机,终端名、进程 和 事件日志 。
2)、cron 保存的是计划任务的日志,我们也可以通过特定输出查看计划进程的一些规律 。从中也可以梳理一下计划任务的概念 。好像 run-parts(/etc/cron.hourly) 进程,基本都是从开机开始 , 整点 1 个小时就执行一次 。一次由两个事件为一组 , 一条 starting 0anacron ,另一条 finished 0anacron 。
输入 grep run-parts'('/etc/cron.hourly')' 的时候,()括号需要用单引号引起来 。
CROND进程,基本上也是从开机开始,整点 1 个小时就执行一次 。
run-parts(/etc/cron.daily) 进程每天开机执行一次 。一次由四个事件为一组,四个事件里面有两个事件是对应关系 。starting man-db.cron 对应 finished man-db.cron,starting logrotate 对应 finished logrotate 。
从 cron 日志知道系统的计划任务什么时候触发,执行了什么事件,产生了什么信息 。
3、/var/log/dmesg:系统引导日志,显示硬件相关的信息 。
head -20 dmesg | nl 列出开头 20 行信息 。
4、/var/log/maillog:邮件日志 。
红色下划线:tail maillog 查看 maillog 后 10 行信息 。
黄色下划线:starting the Postfix mail system 启动 Postfix 邮件系统 。daemon started 守护进程启动完成 。
maillog 记录的信息都是和邮件有关 。
5、/var/log/lastlog:记录所有用户登录最后一次登录本系统的时间信息 。用 lastlog 读取信息 。lastlog 的几列内容:Username(用户名)、Port(端口)、From(登录IP)、Latest(最后登录时间) 。
系统用户是调用系统当中一些特殊服务的用户,不能登录系统(所以它们的登录状态都是显示“**Never logged in**”从来没有登录) 。能够登录系统的只有 root 和 新建的普通用户 。
6、/var/log/boot.log:系统启动日志 。
head /var/log/boot.log 列出头 10 条系统启动的信息(内容较长,里面记录了多次启动的信息) 。
通过 3 次的重启,查看 boot.log 大小 。每重启一次文件的容量就会增大 。也证明了每次启动都会往 boot.log 这个文件写信息 。
7、/var/log/secure:安全和身份验证日志。
tail secure 列出 secure 文件最后 10 行信息 。通过 secure 的信息可以发现记录的是安全相关的信息,记录最多的是哪些用户登录服务器的相关日志 。
黄色下划线:Failed password for root —— root 的密码错误 。
红色下划线:Accepted password for root —— 密码正确,root 用户接受的密码 。
绿色下划线:pam_unix(sshd:session): session opened for user root—— 为 root 用户建立会话 。
8、/var/log/wtmp:记录所有用户登录的详细信息 。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看 。用 last 命令查看 。last 作用是显示近期用户或终端登录的情况(包括:登录、注销及系统的启动、停机的事件 。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,)
last -n 10 —— -n 跟一个数字,指定显示最近登录的数据 。(或者 last -10 一样效果)
显示的内容有六列:
第一列:用户名 。
第二列:终端位置 。(pts/0 伪终端 , SSH 或 telnet 等工具远程连接的用户 , tty0 直接连接到计算机或本地连接的用户,后面的数字代表连接编号) 。
第三列:登录 IP 或 内核 。(如果是 0.0 或者 什么都没有,意味着用户通过本地终端连接,除了启动活动,内核版本会显示在状态中) 。
第四列:开始时间 。
第五列:结束时间 。(still、login in 尚未推出,down 直到正常关机,crash 直到强制关机) 。
第六列:持续时间 。
9、/var/log/btmp:记录失败的登录记录,主要查看错误的登录信息 。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看 。用 lastb 命令查看 。
lastb -n 10 —— -n 跟一个数字,指定显示最近登录的数据 。(或者 lastb -10 一样效果)
显示的内容有六列:
第一列:用户名 。
第二列:终端位置 。(连接失败:notty) 。
第三列:登录 IP 。
第四列:开始时间 。
第五列:结束时间 。
第六列:持续时间 。
10、/var/run/utmp:用户登录、注销及系统开、关等事件 。一个二进制文件,不能用cat、vi、tail、more这些命令打开查看 。用 w / who 命令查看 。
w 命令:查看登录者的信息及行为 。
第一行:系统当前时间、系统没有中断持续性的运行时间、当前登录用户数、CPU在之前 1 分钟、5分钟、15分钟的平均负载 。
USER: 登录用户名 。
TTY:登录后系统分配的终端号 。(tty:物理机本机终端、pts:远程终端)
FROM:远程主机名 IP 。(tty 物理机本机不显示、pts 远程终端会显示 IP)
LOGIN@ :登录时间 。
IDLE:用户闲置时间。这是个计时器,用户执行任何操作,计时器就会被重置 。(这里显示的时间是距离上次命令操作后多久没有进行操作的闲置时间)
JCPU:执行命令进程所消耗的总时间 。终端连接的所有进程占用时间,包括当前正在运行作业占用的时间 。
PCPU:当前进程所消耗 CPU 的时间 。
WHAT:用户正在运行的进程 或 命令 。(-bash 进程是终端进程)
who 命令:显示关于当前在本地系统上的所有用户信息 。who 和 w 差不多,who 显示的内容更为简洁 。who 命令显示以下内容:登录名、tty、登录日期 和 时间 。如果用户是从远程终端登录的,那么该终端的 IP 也会显示出来 。
11、whoami:显示自己的登录用户 。
Linux查看系统日志的一些常用命令last
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行 。
-d 指定记录文件 。指定记录文件 。将IP地址转换成主机名称 。
-f 记录文件 指定记录文件 。
-n 显示列数或-显示列数 设置列出名单的显示列数 。
-R 不显示登入系统的主机名称或IP地址 。
-x 显示系统关机 , 重新开机,以及执行等级的改变等信息
以下看所有的重启、关机记录
last | grep reboot
last | grep shutdown
history
列出所有的历史记录:
[zzs@Linux] # history
只列出最近10条记录:
[zzs@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[zzs@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[zzs@linux] #!!
执行最后一次以rpm开头的'命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行 。)
[zzs@linux] #!rpm
逐屏列出所有的历史记录:
[zzs@linux]# history | more
立即清空history当前所有历史命令的记录
[zzs@linux] #history -c
cat, tail 和 watch
系统所有的日志都在 /var/log 下面自己看(具体用途可以自己查,附录列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方 , -n表示多少秒刷新一次 。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容 ,
这一特性,对于查看日志是非常有效的 。如果想终止输出,按 Ctrl C 即可 。
除此之外还有more, less ,dmesg|more,这里就不作一一列举了,因为命令太多了,关键看个人喜好和业务需求.个人常用的就是以上那些
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志 , 是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
linux日志 audit 我们知道在Linux系统中有大量的日志文件可以用于查看应用程序的各种信息,但是对于用户的操作行为(如某用户修改删除了某文件)却无法通过这些日志文件来查看,如果我们想实现监管企业员工的操作行为就需要开启审计功能,也就是audit 。
1、首先执行以下命令开启auditd服务
|1|service auditd start|
2、接着查看看auditd的服务状态,有两种方法可以实现,使用auditctl命令时主要看enabled是否为1,1为开启,0为关闭
[root@ns-master-c01 ~]``# service auditd status` |
`auditd (pid20594) is running...
[root@ns-master-c01 ~]``# auditctl -s
|5|AUDIT_STATUS: enabled=1 flag=1 pid=20594 rate_limit=0 backlog_limit=320 lost=0 backlog=0|
3、开启了autid服务后,所有的审计日志会记录在/var/log/audit/audit.log文件中,该文件记录格式是每行以type开头 , 其中红框处是事件发生的时间(代表从1970年1月1日到现在过了多久,可以用date命令转换格式) , 冒号后面的数字是事件ID,同一个事件ID是一样的 。
4、audit可以自定义对指定的文件或命令进行审计(如监视rm命令被执行、/etc/passwd文件内容被改变) , 只要配置好对应规则即可,配置规则可以通过命令行(临时生效)或者编辑配置文件(永久生效)两种方式来实现 。
命令行语法(临时生效****)****:
|1|auditctl -w /bin/``rm-p x -k removefile ``#-w指定所要监控的文件或命令|
|2|#-p指定监控属性 , 如x执行、w修改|
|3|#-k是设置一个关键词用于查询|
编辑配置文件(****永久生效)****:
auditd的配置文件为/etc/audit/audit下的auditd.conf 和audit.rules,auditd.conf 主要是定义了auditd服务日志和性能等相关配置,audit.rules才是定义规则的文件 , 下面是一个例子,其实就是把auditctl的命令直接拿过来即可,auditctl里支持的选项都可以在这个文件里指定
修改完后重启服务
|1|service auditd restart|
5、如果直接使用tailf等查看工具进行日志分析会比较麻烦,好在audit已经提供了一个更好的事件查看工具—— ausea****rch,使用auserach -h查看下该命令的用法:
这里列出几个常用的选项:
-a number#只显示事件ID为指定数字的日志信息,如只显示926事件:ausearch -a 926
-ccommond#只显示和指定命令有关的事件,如只显示rm命令产生的事件:auserach-crm
-i#显示出的信息更清晰,如事件时间、相关用户名都会直接显示出来 , 而不再是数字形式
-k#显示出和之前auditctl -k所定义的关键词相匹配的事件信息
通过下图可以看到每个事件被虚线分开,用户名和执行的操作也都能清晰的看到了:
6、使用auditctl还可以查看和清空规则
查看源码
embed width="16" height="16" id="highlighter_638828_clipboard" type="application/x-shockwave-flash" title="复制到剪贴板" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_638828" menu="false" src="" style="margin: 0px; padding: 0px; outline: 0px; zoom: 1; max-width: 96%;"
摘自
|1|auditctl -l 查看定义的规则|
|2|auditctl -D 清空定义的规则|
关于linux执行命令的日志和linux 命令日志的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读