企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
这是系列文章第七篇,原来是单独写的,这次加入linux专栏里面 7.1--Forword Linux 系统里面日志无疑是相当重要的,对于我们分析系统故障,解决相关问题是大有裨益的。这篇文章是自己积累一些知识,以做备忘只用。 7.2--Start Linux系统中日志大致有系统日志以及应用日志,前者大多记录在/var/log/下面,而后者则视情况分布在不同目录下,当然也可能写入/var/log下面。 这里我们着重描述一下系统方面的日志: 7.2.1,简单分下类 位置: ~~~ /usr/adm - 早期版本的UNIX /var/adm - 新一点的版本使用这个位置 /var/log - 一些版本的Solaris,linux,BSD,Free BSD使用这个位置 /etc - 多数UNIX版本把utmp放在这里,有些也把wtmp放在这里,syslog.conf在这里 ~~~ 引用一下: 连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。 进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。 错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。 常见的日志文件用途说明: ~~~ acct 或 pacct -- 记录每个用户使用的命令记录 access_log -- 主要当服务器运行NCSA HTTPD时, 记录什么站点连接过你的服务器 aculog -- 保存着你拨出去的MODEMS记录 lastlog -- 记录了用户最近的LOGIN记录和每个用户的最初目的地,有时是最后成功LOGIN的记录 loginlog -- 记录一些不正常的LOGIN记录 messages -- 记录输出到系统控制台的记录,另外的信息由syslog来生成 security -- 记录一些使用UUCP系统企图进入限制范围的事例 sulog -- 记录使用su命令的记录 utmp -- 记录当前登录到系统中的所有用户, 这个文件伴随着用户进入和离开系统而不断变化. utmpx -- UTMP的扩展 wtmp -- 记录用户登录和退出事件 syslog -- 最重要的日志文件,使用syslogd守护程序来获得日志信息: /dev/log -- 一个UNIX域套接字,接受在本地机器上运行的进程所产生的消息 /dev/klog -- 一个从UNIX内核接受消息的设备 **514端口 -- 一个INTERNET套接字,接受其他机器通过UDP产生的syslog消息。 uucp -- 记录的UUCP的信息,可以被本地UUCP活动更新, 也可有远程站点发起的动作修改,信息包括发出和接受的呼叫,发出的请求,发送者, 发送时间和发送主机 lpd-errs -- 处理打印机故障信息的日志 ftp日志 -- 执行带-l选项的ftpd能够获得记录功能 httpd日志 -- HTTPD服务器在日志中记录每一个WEB访问记录 history日志 -- 这个文件保存了用户最近输入命令的记录 vold.log -- 记录使用外接媒介时遇到的错误记录 ~~~ 这里面wtmp和utmp文件都是二进制文件,也就是你不能通过cat或者vi查看的,可以通过系统命令来查看,常用的命令:who,user,w,ac,last 7.2.2,简单介绍一下这些命令: who:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的终端机,登入时间。        ![](https://box.kancloud.cn/2016-05-17_573adb423cc66.png) w:显示的信息比who更多,可以看下命令说明 ~~~ 用户 登录的用户。 tty 用户使用的 tty 名称。 FROM 本地 LOGIN@ 用户登录的日期和时间。 IDLE 自一个程序上次试图从终端读取开始所持续的分钟数。 JCPU 该终端上的所有进程及其子进程使用的系统部件时间。 PCPU 当前活动进程所使用的系统部件时间。 WHAT 当前进程的名称和参数。 ~~~                 ![](https://box.kancloud.cn/2016-05-17_573adb4ececc2.png) user:不解释了,很简单,显示登录用户。 last:显示近期用户或终端的登录情况                ![](https://box.kancloud.cn/2016-05-17_573adb4ee33ce.png) 本日志不断补充中......... 7.3---Appendix 附:常用查看系统信息命令                  ~~~ 系统: # 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 # 查看所有安装的软件包 ~~~