Linux系统,如何知道哪个进程在打印log?
cat /var/log/*.log
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。
在Linux系统中,有三个主要的日志子系统:
连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。
错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。
常用的日志文件如下:
access-log 纪录HTTP/web的传输
acct/pacct 纪录用户命令
aculog 纪录MODEM的活动
btmp 纪录失败的纪录
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
sudolog 纪录使用sudo发出的命令
sulog 纪录使用su命令的使用
syslog 从syslog中记录信息(通常链接到messages文件)
utmp 纪录当前登录的每个用户
wtmp 一个用户每次登录进入和退出时间的永久纪录
xferlog 纪录FTP会话
/var/log/secure与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
utmp、wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键--保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为wtmp.1;第二天后wtmp.1变为wtmp.2等等,直到wtmp.7。
每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了,则把用户上次登录、退出时间和主机名写到标准输出中,然后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后,utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。
下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。
具体命令
wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。
who:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如:who(回车)显示
chyang pts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
ylou pts/8 Aug 18 14:15
如果指明了wtmp文件名,则who命令查询所有以前的纪录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如:w(回车)显示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27。
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash
ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w
lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash
lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/
ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail
ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash
users:users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如:users(回车)显示:chyang lewis lewis ylou ynguo ynguo
last:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如:
chyang pts/9 202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)
cfan pts/6 202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4 202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)
如果指明了用户,那么last只报告该用户的近期活动,例如:last ynguo(回车)显示:
ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)
ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)
ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)
ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12)
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11)
ynguo pts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55)
ac:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 5177.47
ac -d(回车)显示每天的总的连结时间
Aug 12 total 261.87
Aug 13 total 351.39
Aug 14 total 396.09
Aug 15 total 462.63
Aug 16 total 270.45
Aug 17 total 104.29
Today total 179.00
ac -p (回车)显示每个用户的总的连接时间
ynguo 193.23
yucao 3.35
rong 133.40
hdai 10.52
zjzhu 52.87
zqzhou 13.14
liangliu 24.34
total 5178.22
lastlog:lastlog文件在每次有用户登录时被查询。可以使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示"**Never logged**。注意需要以root运行该命令,例如:
rong 5 202.38.64.187 Fri Aug 18 15:57:01 +0800 2000
dbb **Never logged in**
xinchen **Never logged in**
pb9511 **Never logged in**
xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +0800 2000
另外,可一加一些参数,例如,lastlog -u 102将报告UID为102的用户;lastlog -t 7表示限制上一周的报告。
cat
tail -f
日 志 文 件 说 明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
系统:
echo $PATH # 显示系统变量的信息
# uname -a # 查看内核/操作系统/CPU信息
# cat /etc/issue
# cat /etc/redhat-release # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源:
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区:
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络:
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程:
# ps -ef # 查看所有进程
# top # 实时显示进程状态(另一篇文章里面有详细的介绍)
用户:
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务:
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务
程序:
# rpm -qa # 查看所有安装的软件包
连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这
两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下:
w/who/finger/id/last/lastlog/ac 进行查看
[root@xhot ~]# who
root tty1 2010-10-06 22:56
root pts/0 2010-10-06 22:26 (218.192.87.4)
root pts/1 2010-10-06 23:41 (218.192.87.4)
root pts/3 2010-10-06 23:18 (218.192.87.4)
[root@xhot ~]# w
01:01:02 up 2:36, 4 users, load average: 0.15, 0.03, 0.01
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 22:56 1:20m 0.16s 0.16s -bash
root pts/0 218.192.87.4 22:26 2:05m 0.18s 0.18s -bash
root pts/1 218.192.87.4 23:41 0.00s 0.41s 0.00s w
root pts/3 218.192.87.4 23:18 1:38m 0.03s 0.03s -bash
[root@xhot ~]# ac -p //查看每个用户的连接时间
u51 1.23
u55 0.04
root 95.21 //可以看到root连接时间最长吧
xhot 0.06
user1 3.93
total 100.48
[root@xhot ~]# ac -a //查看所有用户的连接时间
total 100.49
[root@xhot ~]# ac -d //查看用户每天的连接时间
Sep 24 total 0.14
Sep 25 total 14.60
Sep 26 total 13.71
Sep 27 total 21.47
Sep 28 total 11.74
Sep 29 total 6.60
Sep 30 total 8.81
Oct 1 total 9.04
Oct 2 total 0.47 //可以看到我国庆3、4、5号出去玩了
Oct 6 total 8.62
Today total 5.29
其他几个命令不做具体介绍了
2. 进程监控日志
进程统计监控日志在监控用户的操作指令是非常有效的。当服务器最近发现经常
无故关机或者无故被人删除文件等现象时,可以通过使用进程统计日志查看:
[root@xhot ~]# accton /var/account/pacct //开启进程统计日志监控
[root@xhot ~]# lastcomm //查看进程统计日志情况
accton S root pts/1 0.00 secs Thu Oct 7 01:20
accton root pts/1 0.00 secs Thu Oct 7 01:20
ac root pts/1 0.00 secs Thu Oct 7 01:14
ac root pts/1 0.00 secs Thu Oct 7 01:14
free root pts/1 0.00 secs Thu Oct 7 01:10
lastcomm root pts/1 0.00 secs Thu Oct 7 01:09
bash F root pts/1 0.00 secs Thu Oct 7 01:09
lastcomm root pts/1 0.00 secs Thu Oct 7 01:09
ifconfig root pts/1 0.00 secs Thu Oct 7 01:09
lastcomm root pts/1 0.00 secs Thu Oct 7 01:09
lastcomm root pts/1 0.00 secs Thu Oct 7 01:09
lastcomm root pts/1 0.00 secs Thu Oct 7 01:09
accton S root pts/1 0.00 secs Thu Oct 7 01:09
[root@xhot ~]# accton //关闭进程统计日志监控
3. 系统和服务日志
系统日志服务是由一个名为syslog的服务管理的,如一下日志文件都是由syslog日志服务驱动的:
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages :记录Linux操作系统常见的系统和服务错误信息
/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/cron :记录crond计划任务服务执行情况
…...
[root@xhot ~]# cat /var/log/lastlog
Lpts/0218.192.87.4
Lpts/1218.192.87.4
Lpts/1218.192.87.4
Lpts/0218.192.87.46
Lpts/0218.192.87.4
lsof或fuser命令查看访问log文件进程
linux系统是怎么回事?可以简单的介绍下吗?
我们可以将 Linux 的系统与使用者的相关性看成底下的图标: 图一、使用者、使用者接口与核心工具、核心、与硬件之相关性 约略了解 Linux 是何物之后,接下来,我们要谈一谈,『为什么说 Linux 是很稳定的操作系统呢?他是如何来的?』 从Unix 到 Linux 这一段历史 为什么大家常常会说, Linux 是很稳定的一套...
如何简单的在已经安装了win10的笔记本电脑上安装linux系统
在已经安装了Windows 10的笔记本电脑上安装Linux系统并生成相关文章,可以按照以下步骤进行操作:1. 选择一个适合初学者的Linux发行版,如Ubuntu、Linux Mint等。在官方网站上下载所选发行版的ISO镜像文件。2. 创建一个可引导的USB安装介质,可以使用第三方软件如Rufus或UNetbootin。将ISO镜像文件写入USB设备...
如何使用U盘安装Linux系统呢?
WinPE是可以通过U盘来安装Linux系统的,下面以U盘WinPE安装Centos6.4版Linux为例。方法如下:在U盘上安装好WinPE(可以选择老毛桃U盘工具、大白菜PE等)2、在U盘根目录建立一个名为LMT的目录,将CentOS-6.4-x86_64-minimal.iso镜像拷入U盘下的LMT目录。3、将U盘插入电脑。重启电脑,进入BIOS选择U盘启动...
深入理解Linux I\/O系统
深入理解Linux I\/O系统,主要关注点在于操作系统如何实现高效的文件数据读写操作。传统系统调用方式通过`write()`和`read()`函数实现数据交互,涉及两次CPU拷贝、两次DMA拷贝,共计四次拷贝及上下文切换。读操作流程:当应用程序调用`read()`系统调用读取数据时,若数据已存在于用户进程的页内存中,直接从...
linux系统ssh
Linux系统下如何配置SSH?如何开启SSH?1、如何查看linux操作系统版本 打开linux终端命令行,输入如下命令即可。lsb_release-a。采用的是实体机服务器,操作系统为redhat6.7,详细请看下图。2、如何查看SSH服务是否已经安装 在终端命令行执行。rpm-qa|grep"ssh"。执行结果请看下图,说明已经安装;其实在...
双系统怎么启动linuxlinux引导双系统
如何修改LINUX和WINDOWS双系统的启动顺序和等待时间啊?1.以root身份登录linux系统,启动终端,输入命令:vibootgrubgrub.conf,文件内容如下:boot=devsdadefault=0(默认启动哪个系统的设置,此处默认启动linux系统)timeout=5(启动系统过程中,等待的时长单位:秒>,让用户可手动选择启动系统)。2.修改后...
如何提高Linux系统安全性
Linux不论在功能上、价格上或性能上都有很多优点,然而,作为开放式操作系统,它不可避免地存在一些安全隐患。关于如何解决这些隐患,为应用提供一个安全的操作平台,本文会告诉你一些最基本、最常用,同时也是最有效的招数。Linux是一种类Unix的操作系统。从理论上讲,Unix本身的设计并没有什么重大的安全...
在Linux系统中,如何运行一个C语言程序?
3、编写完了这个代码。现在开始编译源文件。在终端中输入:gcc test.cgcc是linux自带的c语言编译器。如果是windows则要用ide工具来编译。linux系统一般写C语言用gcc +vim+gdb三个自带的工具就可以了。4、打完gcc test.c编译完C源文件。然后就可以看见a.out的文件。一般linux系统就默认为a.out为编译...
linux下如何删除整个文件夹?
在Linux系统中删除文件使用rm命令,不过在使用命令时需要注意区分目录。以下是详细介绍:1、如果要删除的文件和文件夹在当前目录下,可以输入此命令执行:\\rm -r fileUpload.jsp include res WEB-INF(注意的是文件和文件夹中需要使用空格隔开);2、如果要删除的文件和文件夹不在当前目录下,可以输入此...
Linux如何配置ip地址
1、打开Linux终端系统,然后在系统中输入如下代码。2、然后开始填写ip地址、子网掩码、网关等命令代码,如图所示。3、在终端填写完之后,进行保存然后退出。4、接着把网络服务进行重启,红框代码是进行重启的代码。5、然后进行ping网关操作,进行外网进行测试,通过正常即可。
说贸冻干: 用top命令,可以查看所有进程的运行情况 top命令可以动态的查看所有运行的进程情况(一次显示不全,可以翻页查看). 也可以用下面命令,静态的只显示一次所有的进程: $top -b -n 1
南关区19349735553: linux怎么判断一个进程是否存在 - ?
说贸冻干: pidof + 进程名 如果进程存在,就会打印出该进程的pid.
南关区19349735553: Linux 怎样知道某个进程在哪个CPU上运行 - ?
说贸冻干: 输入命令:# ps -eo pid,args,psr 参数的含义:pid - 进程ID args - 该进程执行时传入的命令行参数 psr - 分配给进程的CPU 有关ps命令的其它信息请查阅ps手册:# man ps 关于更多Linux的学习,请查阅书籍《linux就该这么学》.
南关区19349735553: 如何在Linux中查看所有正在运行的进程 - ?
说贸冻干: 你可以使用ps命令.它能显示当前运行中进程的相关信息,包括进程的PID.Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息.ps命令能提供一份当前进程的快照.如果你想状态可以自动刷新,可以使用top命令.ps命令 输入下面的...
南关区19349735553: linux 如何查看进程运行在哪个cpu - ?
说贸冻干: ps命令的输出格式可以通过-o参数定制,可以使用如下命令显示进程所对应的执行CPU:# ps -eo pid,args,psr 参数的含义:pid - 进程ID args - 该进程执行时传入的命令行参数 psr - 分配给进程的CPU
南关区19349735553: Linux查看进程命令有哪些 - ?
说贸冻干: 首先我们需要打开终端,本经验以Fedora操作系统为例,其他的操作系统可能略有不同.打开终端之后我们输入ps,它就是我们今天的主角,ps是linux操作系统中最基本同时也是非常强大的进程查看命令,如果你对此命令不是十分了解,我们...
南关区19349735553: linux怎么查文件被哪个进程 - ?
说贸冻干: 可以使用:ps -fe|grep filename, 也可以使用:fuser filename查看 然后可以看这个进程跟哪里东西有关联,使用了哪些端口 只查看该进程:ps -ef | grep ID 查看该进程打开的文件:lsof -p ID 查看内存分配:lcat /proc/ID/maps 查看堆栈:pstack 11ID 查看发出的系统调用:strace -p ID 查看调用库函数:ltrace -p ID
南关区19349735553: Linux可是怎么查看各个端口运行的进程 - ?
说贸冻干: Ps命令可以用来查找进程; 在终端上输入:ps aux | grep +过滤字符串 例如:我们想查找一个叫streamclient的程序,则输入:ps aux | grep streamclient 如果系统列出该进程,则找到了; 在Runtime上,可以用该命令确定哪台计算机是主机,因为主机上有一个叫Iosys的进程; 因此,输入:ps aux | grep Iosys 并按回车,如果系统列出该进程,则该机就是主机.
南关区19349735553: linux如何查看进程 - ?
说贸冻干: 首先你打开终端输入ps --help命令来查看,你还可以使用ps aux命令,还可以用ps -lA命令、ps ajxf命令查看.
南关区19349735553: linux 怎样查看进程 历史状态 - ?
说贸冻干: 看进程用命令ps -aux即可,或者用top来监控活跃的、这个要用esc退出.