小编Bra*_*ley的帖子

如何在 Linux 中找到硬件型号?

我使用系统信息实用程序来获取系统和主板的型号。

DMI System Manufacturer     LENOVO
DMI System Product          2306CTO
DMI System Version          ThinkPad X230
DMI Motherboard Product     2306CTO  
Run Code Online (Sandbox Code Playgroud)

在这种情况下2306CTO,有没有办法在 Linux 中获取型号?

linux hardware system-information smbios dmidecode

127
推荐指数
7
解决办法
34万
查看次数

无法缩进 heredoc 以匹配代码块的缩进

如果脚本编写存在“第一世界问题”,那就是它。

我正在更新的脚本中有以下代码:

if [ $diffLines -eq 1 ]; then
        dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g')

        mailx -r "Systems and Operations <sysadmin@[redacted].edu>" -s "Warning Stale BB Data" jadavis6@[redacted].edu <<EOI
        Last Change: $dateLastChanged

        This is an automated warning of stale data for the UNC-G Blackboard Snapshot process.
EOI

else
        echo "$diffLines have changed"
fi
Run Code Online (Sandbox Code Playgroud)

该脚本发送电子邮件没有问题,但 mailx 命令嵌套在 if 语句中,因此我似乎有两个选择:

  1. EOI一个新的生产线,打破花纹或
  2. 保持缩进,但使用类似 echo 语句的东西让 mailx 接收我的电子邮件。

我对heredoc的替代品持开放态度,但如果有办法解决这个问题,这是我的首选语法。

shell bash shell-script here-document

92
推荐指数
3
解决办法
4万
查看次数

确定负责高 I/O 的特定文件

这是一个简单的问题,但我第一次不得不真正解决它:找到哪些特定文件/inode 是大多数 I/O 的目标。我希望能够获得一般系统概述,但如果我必须提供 PID 或 TID,我可以接受。

我想不用strace对弹出的程序做任何操作iotop。最好使用与iotop按文件逐项列出的工具相同的工具。我可以lsof用来查看邮递员打开了哪些文件,但它不指示哪个文件正在接收 I/O 或接收了多少。

我在其他地方看到有人建议使用它,auditd但我不想这样做,因为它会将信息放入我们的审计文件中,我们将其用于其他目的,这似乎是我应该能够研究的问题通过这种方式。

我现在遇到的具体问题是 LVM 快照填充太快。我已经解决了这个问题,但希望能够以这种方式修复它,而不是仅仅ls对所有打开的文件描述符进行分析/proc/<pid>/fd以查看哪个增长最快。

linux monitoring io profiling

45
推荐指数
2
解决办法
5万
查看次数

在 LVM 中添加磁盘的最佳实践是什么

根据 Linux 联机帮助页,您可以将原始磁盘和分区添加到卷组。

在其他文档(RedHat、CentOS 或 openSUSE)中,所有示例都是指将分区添加到 VG 而不是原始磁盘。什么是常见(最佳)实践?

storage linux lvm

27
推荐指数
3
解决办法
4万
查看次数

pdflush、kjournald、swapd 等如何互操作?

最近看到一个问题,引发了这个想法。无法在这里或通过 Google 机器真正找到​​答案。基本上,我很想知道内核 I/O 架构是如何分层的。例如,是kjournald派遣到pdflush还是相反?我的假设是pdflush(对于大容量存储 I/O 更通用)将位于较低级别并触发 SCSI/ATA/实际执行写入所需的任何命令,并kjournald在写入之前处理更高级别的文件系统数据结构。不过,我也可以反过来看,kjournald直接与文件系统数据结构和pdflush时不时醒来,通过以下方式将脏页缓存页面写入设备kjournald. 也有可能由于其他原因,两者根本不互动。

基本上:我需要某种方式来可视化(图形或只是解释)用于将 I/O 分派到 Linux 内核中的大容量存储的基本架构。

storage linux kernel kjournald

17
推荐指数
1
解决办法
9711
查看次数

TCP_DEFER_ACCEPT 的实际使用?

我在网上仔细阅读了Apache httpd 手册,并遇到了启用它的指令。在手册页中找到了一个描述tcp

   TCP_DEFER_ACCEPT (since Linux 2.4)
          Allow a listener to be awakened only when data arrives on the
          socket.  Takes an integer value (seconds), this can bound the
          maximum number of attempts TCP will make to complete the
          connection.  This option should not be used in code intended
          to be portable.
Run Code Online (Sandbox Code Playgroud)

然后我找到了这篇文章,但我仍然不清楚这对什么样的工作负载有用。我假设如果httpd有一个专门用于此的选项,它必须与 Web 服务器有一些相关性。我还假设这是一个选项,而不仅仅是httpd网络连接如何,在某些用例中您需要它,而其他用例则不需要。

即使在阅读了这篇文章之后,我也不清楚等待三路握手完成的好处是什么。httpd通过在握手仍在进行时这样做来确保不需要交换相关实例,而不是在连接形成后可能导致延迟,这似乎是有利的。

对于这篇文章,在我看来,无论TCP_DEFER_ACCEPT套接字的状态如何,您仍然需要四个数据包(在每种情况下先握手,然后是数据)。我不知道他们是如何将计数减少到三个的,也不知道这如何提供有意义的增强。

所以我的问题基本上是:这只是一个旧的过时选项还是这个选项有实际用例?

linux networking webserver tcp

15
推荐指数
1
解决办法
1万
查看次数

为什么在 stdin 上压缩文件会产生比作为参数给出的相同文件更小的输出?

当我做:

# gzip -c foo > foo1.gz 
# gzip < foo > foo2.gz
Run Code Online (Sandbox Code Playgroud)

为什么foo2.gz最终的尺寸小于foo1.gz

gzip

13
推荐指数
1
解决办法
920
查看次数

在 bash 中打印系统剪贴板内容

有一种方法可以将一些命令输出通过xclip.

some-command | xclip -selection clipboard
Run Code Online (Sandbox Code Playgroud)

我想执行反向任务 - 将系统剪贴板打印到终端。怎么做?

bash xorg clipboard

10
推荐指数
2
解决办法
7761
查看次数

远程系统日志命令行客户端

logger经常使用,但是是否有用于通过网络远程提交系统日志消息的 FOSS 命令行工具?

现在,我必须配置一个设施/优先级对以提交到rsyslogd侧面的远程服务器。我想去掉中间人,而不必修改我的本地 syslog 守护进程的配置。

有这样的工具吗?

syslog logger

10
推荐指数
1
解决办法
3万
查看次数

mount.cifs 不能使用 smbclient 使用的相同凭证文件

我正在尝试将 NetApp CIFS 共享挂载到我们的一台服务器上,但我不断将“权限被拒绝”打印到 stderr 并NT_STATUS_WRONG_PASSWORD打印到正在运行的dmesg.

root@xxxehpvld05 ~ $ mount.cifs -vv //zhp-nas.xxx.com/perspectives /mnt/secure/cifs -o credentials=/etc/cifs.creds
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
root@xxxehpvld05 ~ $ dmesg | tail
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13 …
Run Code Online (Sandbox Code Playgroud)

linux samba cifs smb

10
推荐指数
1
解决办法
4万
查看次数