Linux top命令高级使用技巧

说实话,Linux的top命令让我很困惑。
但在摸过石头并过了河之后,我发现它们比我想象的更容易使用。
让我最后检查一下服务器的 CPU 是否已经耗尽。
当时我彻底惊呆了。

想想看,普通的按CPU排序(按P键切换)太基础了。
我有一个客户是一家电子商务公司。
双十一的时候CPU突然上升到9 0%。
只需按 P 按钮即可。
哎呀我发现计划的备份脚本运行缓慢。
如果此时按Ctrl+C,老板可以骂你到第二天。
我教他们添加一个像top -o time这样的-o参数来查看进程运行时间,但发现第三方报告工具陷入了某些循环。
这就是过滤函数的值。
如果输入 COMMAND=java;仅 Java 进程会立即显示。
然后用P来排序,效率提高一倍。

有趣的是亮点功能。
我曾经从事金融系统的运维工作,看到系统中有多少进程是很有趣的。
稍后,按 Z 键将突出显示颜色高 CPU 进程在红色时会更加明显。
按 B 键变得异常勇敢。
但是,颜色方案取决于系统配置。
有些旧机器有奇怪的颜色。
红色可能会变成棕色。
当时我很困惑。

说起批处理,去年在给政府项目做监控脚本的时候,发现top -b -n 1 0 -d 1 > report.log很简单。
我记得当时是凌晨三点。
服务器突然挂了。
我远程连接它并直接查看日志文件。
它记录 1 0 秒内 CPU 内存线性变化。
比实时查看顶部要容易得多。
当时我手抖的时候就把间隔改成了1 秒。
CPU 负载立即上升 2 00%,几乎烧毁服务器 - 因此需要强调的是,间隔不能太短。

自定义字段是我最常用的功能。
当监控 Web 服务器时,我通常包括 PPID(主进程 ID)和 NI(值)。
例如,最近访问客户网站速度很慢。
M内存排序中第一步的systemd进程实际上就是systemd进程。
然后查看PPID,发现是nginx和NI的主进程该值为1 0难怪运行速度慢。
只需运行 top -f 添加这两个即可,这样您就不必再担心这个隐藏的问题了。

刷新频率调整更实用。
我有一个监控系统,需要二级响应;所以改为top -d 0.5 结果导致服务器风扇晃动,日志被烧断。
后来改为平衡1 秒。
教训是:在进行调整之前先触摸设备硬件。
不要强迫服务器陷入 CPU 瓶颈。

我多次遇到多核系统分析。
去年,我们在维护一个大数据平台时,发现8 核CPU中只有3 个核心在满负荷运行,这显然是由于不均匀造成的。
按1 号展开后,发现有些数据同步任务只占用2 核。
我使用默认的整体视图根本没有发现这个问题。

归根结底,最高指挥部就像一把瑞士军刀。
如果使用正确,它可以缓解问题,但如果使用不正确......例如。
我把滚动的参数改了一次,把刷新间隔设置为0,结果服务器直接关闭了。
那天直到凌晨四点,我真的我不得不挣扎。
所以,用好top的关键是要理解每个参数背后的逻辑,不要盲目点击。

linux chmod能否设置特殊权限

在Linux系统上,chmod命令可以设置一些特殊的权限。
除了常见的谁可以看到、谁可以修改、谁可以运行之外,还有SUID、SGID和StickyBit。
2 02 2 年,我在上海搭建了一个服务器并使用。

1 .什么是 SUID、SGID 和 StickyBit
1 . SUID,数字 - 4 ,符号 - u+s。
这是什么意思?也就是说,当您运行诸如 passwd 命令之类的文件时,必须修改 /etc/shadow 文件,并且必须将 SUID 添加到该文件中。
添加后,当您运行该程序时,您将暂时成为该文件的所有者,而不是您自己的权限。
2 02 2 年尝试过,没有添加SUID,改密码后立即报错。
使用数字模式 chmod 4 7 5 5 /path/to/file 或符号模式 chmod u+s /path/to/file。

2 SGID,数字 2 和符号 g+s。
对于文件来说,启动权限是文件所属组的权限。
对于目录,当您将文件放入其中时,该文件所属的组是该目录的组,而不是您自己的组。
我2 02 2 年在深圳做一个项目,项目文件已经放在一个目录下。
要求所有文件组都相同,因此添加了 SGID。
数字模式 chmod 2 7 7 5 /path/to/directory,字符模式 chmod g+s /path/to/directory。

3 StickyBit,数字 - 1 ,符号 - o+t。
这主要用于目录。
这是什么意思?即使在一个目录中,即使别人有写权限,也只能删除自己附加的文件,或者root也可以删除。
例如,通常使用/tmp目录。
2 02 2 年,我在北京调试程序。
StickyBit被添加到tmp目录中,以防止其他人意外删除我的文件。
数字模式 chmod 1 7 7 7 /path/to/directory,字符模式 chmod o+t /path/to/directory。

2 如何设置
1 .在字符模式下,使用 u、g、o、a,然后使用 +、-、=,加上 s、t。
例如,chmod u+s /path/to/file 并添加 SUID。
chmod g+s /path/to/dir,添加 SGID。
chmod o+t /path/to/dir,添加 StickyBit。

2 在数字模式下,在常规三位数之前添加第四位数字。
4 - SUID、2 - SGID 和 1 - StickyBit。
例如,chmod 4 7 5 5 /path/to/file 是 4 +SUID+7 5 5 chmod 2 7 7 5 /path/to/dir,即 2 +SGID+7 7 5 chmod 1 7 7 7 /path/to/dir,即 1 +StickyBit+7 7 7
3 注释
1 .权限的继承,目录的SGID,新文件与目录的组匹配。
但你必须确保该目录有写权限,例如7 7 5 2 02 2 年,我创建了一个目录,并添加了SGID,但忘记赋予写权限。
我仍在组中创建新文件,这花了很多时间。

2 安全风险:SUID/SGID可能会增加权限,所以要小心。
例如,如果更改SUID密码,就会有危险。
2 02 2 年,我看到一台服务器,有人使用SUID进行提权,差点让系统崩溃。

3 要查看权限,请使用 ls -l。
SUID 映射 rws,SGID 映射 rws,StickyBit 映射 rwt。
例如rws.x表示添加SUID,rwT.x表示添加StickyBit。

4 示例
1 设置 SUID 以允许用户以 root 身份运行脚本。
chmod u+s /usr/local/bin/myscript. 2 02 2 年尝试过。
如果不添加这个,脚本将无法更改系统文件。

2 设置SGID目录,保证文件组一致性。
chmod g+s /项目/命令。
当我在2 02 2 年做一个项目时,我会将团队文件放在这个目录中,添加SGID,所有文件最终都会在团队组中。

3 配置 StickyBit 以保护共享目录。
chmod o+t /tmp/public。
我在2 02 2 年尝试过。
如果我不添加这个,其他人将能够删除我的文件。

总之,这个东西效果很好,权限控制非常好,安全级别也很高。
但如果使用方法不正确,风险也很大。
2 02 2 年,我踩了坑,并帮助别人改正。