小编ase*_*ues的帖子

复杂进程名称的 pgrep/pidof 用法?

我正在尝试使用 pidof 或 pgrep 将 HUP 发送到我系统中的进程。问题是我只想用一个精确的参数来终止进程。

这是'ps awx'的输出

  657 ?        S      0:00 processname software
  658 ?        S      0:00 processname demo
  659 ?        S      0:00 processname test
Run Code Online (Sandbox Code Playgroud)

通过执行以下操作之一:

pidof processname 
pgrep processname
Run Code Online (Sandbox Code Playgroud)

您将获得以 processname 开头的所有进程的列表,但我想执行以下操作:

pidof processname test
pgrep processname test
Run Code Online (Sandbox Code Playgroud)

仅检索我需要的 PID(在本例中为 659)

更新

通过在 pgrep 上使用 -f 标志可以完成我想要的操作:

pgrep -f "processname test"
Run Code Online (Sandbox Code Playgroud)

你会得到正确的答案。

bash command-line-interface process

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

将 Windows 通知事件日志发送到 linux syslog 服务器并编码为 utf8 的软件

我正在尝试设置 Windows 2008 服务器,以便它能够将事件日志消息发送到运行 linux 的 syslog-ng 服务器。我更喜欢本土的东西,但我想这是不可能的。

更新 第一个答案建议使用圈套,到目前为止,它是我找到的最佳解决方案,设置起来完全没有痛苦,并且在不到五分钟的时间内我就登录到了我的 syslog-ng 服务器。唯一的缺点(不是圈套错误)是日志以 windows-1252 字符集编码发送。所以tail -f除非我以某种方式更改字符集,否则我无法使用它们。如果您使用的是 syslog-ng,这可以通过创建新源轻松解决,在我的情况下:

source src_win {
        udp(
                ip("192.168.1.200")
                port(514)
                encoding("WINDOWS-1252"));
};
Run Code Online (Sandbox Code Playgroud)

在此之后(并将新源分配到正确的位置),您将能够正确查看 Windows 日志。

旧内容

环顾四周,我发现了此页面指出的几个解决方案:http : //www.itbuzzer.net/corner/2008/10/how-to-send-windows-events-to-syslog.asp

有没有人有任何这些或其他方面的经验?

linux windows syslog syslog-ng

5
推荐指数
1
解决办法
5967
查看次数

确定块设备大小的最快方法?

我有一个远程脚本,用于检查 lvm 卷中的某些参数。我需要知道的一件事是尺寸。我目前正在使用这个:

lvdisplay /dev/virtuals/volume_name -C -o lv_size

但是最后一个命令可能需要大约一秒钟才能在我的服务器上执行,而且我有多个要检查的卷。我也试过用usin lvs代替lvdisplay,但是速度没有太大的提升。

time lvs -o lv_size /dev/virtuals/volume_name -C -o lv_size
real 0m0.809s
time lvdisplay /dev/virtuals/volume_name
real 0m0.982s
Run Code Online (Sandbox Code Playgroud)

有人知道获取该信息的更快方法,只是卷大小,我对职业不感兴趣。

更新: 使用 blockdev 带来了巨大的改进。我真的建议使用它而不是 lvdisplay(只记得使用 getsize64)

时间块dev --getsize64 /dev/system/home

linux lvm block-device

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

从 postfix 日志中提取发件人活动以供审核用户

我们的 postfix 服务器上有一个邮件用户,他使用公司邮件向我们的竞争对手发送入侵信息。

我被要求报告该用户上次的操作。

有像 pflogsumm 这样的工具可以提取统计数据,但到目前为止我还没有找到任何有用的东西来获取用户的所有信息,因为数据是多行的。

我想得到这样的东西:

对于发送的邮件

11/11/11 00:00:00 infractor@example.com -> user@anothercompany.com
11/11/11 00:00:01 infractor@example.com -> user2@anothercompany2.com
Run Code Online (Sandbox Code Playgroud)

对于收到的邮件

10/10/11 00:00:00 user@anothercompany.com -> infractor@example.com
10/10/11 00:00:01 user2@anothercompany2.com -> infractor@example.com
Run Code Online (Sandbox Code Playgroud)

我知道我可以自己做一个脚本,但是匹配每封邮件的后缀 ID 不是可以通过简单的 grep 来完成的,而且我有很多邮件历史记录,我必须重新检查分布在不同文件中的邮件等等在。

源日志是标准的后缀格式,例如这个...

Sep 13 16:15:57 server postfix/qmgr[18142]: B35CB5ED3D: from=<infractor@example.com,   size=10755, nrcpt=1 (queue active)
Sep 13 16:15:57 server postfix/smtpd[32099]: disconnect from localhost[127.0.0.1]
Sep 13 16:15:57 server postfix/smtp[32420]: 58C3E5EC9C: to=<user@anothercompany.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.4, delays=0.01/0/0/1.4, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=32697-04, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as B35CB5ED3D)
Sep …
Run Code Online (Sandbox Code Playgroud)

email postfix

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