是否有我可以在终端中打开的所有活动的日志?

Moo*_*key 6 command-line process log

我想打开一个终端并研究经常使用 Ubuntu 时发生的过程和所有事情。我可以使用哪些命令和文件来实时查看日志?

谢谢。

Jac*_*ijm 9

许多事情您根本无法发现,因为它们是在应用程序或进程内部处理的,而无需与“外部世界”进行任何通信。

一些最重要的工具的随机(完全不完整)列表,您可以使用它来监视正在发生的特定部分:

  • top命令:从man top顶部程序提供一个运行的系统的动态实时视图。它可以显示系统摘要信息以及当前由 Linux 内核管理的进程或线程列表。显示的系统摘要信息的类型以及为进程显示的信息的类型、顺序和大小都是用户可配置的,并且该配置可以在重新启动后保持不变。
  • dstat. 来自 man dstatDstat 允许您立即查看所有系统资源,例如,您可以。结合来自 IDE 控制器的中断比较磁盘使用情况,或直接比较网络带宽数字与磁盘吞吐量(在相同的时间间隔内)
  • wmctrl; 尽管wmctrl不提供实时正在进行的信息,但当在脚本中循环使用时,可以很容易地检索几乎实时的报告或记录有关打开/移动/关闭的窗口发生的情况。
  • dbus-monitor其中的命令,@Serg应该能够更告诉你。From man dbus-monitor: dbus-monitor 命令用于监视通过 D-Bus 消息总线的消息。有关全局的更多信息,请参见http://www.freedesktop.org/software/dbus/(简而言之:dbus是应用程序相互通信的一种简单方式。请注意dbus-monitor仅在使用的情况下才有效dbus,而不是@heemayl 提到的通用工具(谢谢!))
  • dconf watch命令(相对未知)。来自man dconf

       watch
           Watch a key or directory for changes.
    
    Run Code Online (Sandbox Code Playgroud)

    尝试例如dconf watch /在编辑系统设置时输出中会发生什么。

最重要的是,有很多很多工具,每一个工具都可以发现正在发生的事情的特定部分。一刀切的答案是不可能的,更不用说一个终端窗口来显示“全貌”的开始了。

哪种工具适合您的目的取决于您特别想要监控的事件。


Bar*_*o85 6

尝试history命令,它显示$HISTSIZE终端中最后(默认为 500)执行的命令。

journalctl命令显示日志消息,如果系统使用systemd.

ps -aux 显示正在运行的进程,可以与

ps -aux|grep xxxx
Run Code Online (Sandbox Code Playgroud)

选择一个特定的过程。


Roc*_*oon 6

要实时查看日志,请使用tail -f -n [number of lines] [file].

  • -f 用于后续,当数据写入文件时,它将通过管道将附加的日志数据传送到标准输出(例如控制台窗口)
  • -n 是要遵循的行数

一个很好的起点是/var/log/syslog. 这是许多系统事件、服务和应用程序的默认日志文件。

sudo tail -f -n 1000 /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

您的目标服务或应用程序可能使用不同的日志文件。某些服务和应用程序具有多个日志文件。例如,Apache Web 服务器具有单独的访问、错误和 SSL 事件日志。此外,某些日志文件被配置为在原始文件达到特定大小(例如 1 KB)后转入存档文件(通常在同一目录中)。检查服务或应用程序的文档(或搜索)以获取特定日志文件位置。

此外,您可能会发现在执行测试时打开多个控制台窗口并同时监视多个日志很有帮助。

例如,如果您正在跟踪运行在 Apache 上并使用 MySQL 数据库的 Web 应用程序中的事件,您可能希望在它们自己的控制台窗口中打开以下两个命令。事实上,您可能希望跟踪这些应用程序日志以及上面的系统日志。

sudo tail -f -n 1000 /var/log/apache2/error_log
sudo tail -f -n 1000 /var/log/mysqld.log
Run Code Online (Sandbox Code Playgroud)

与往常一样,请查看tail man页面以获取完整的选项列表:

man tail