我想知道 - 如果有人有一个优雅的解决方案来检查使用Python的有效Kerberos票证.无论如何我都没有看到kinit或者klist显示一个票证是否已过期并返回代码,但我可以运行klist并使用正则表达式输出.
我在为多行匹配编译正确的正则表达式时遇到问题.有人能指出我做错了什么.我循环遍历一个基本的dhcpd.conf文件,其中有数百个条目,例如:
host node20007
{
hardware ethernet 00:22:38:8f:1f:43;
fixed-address node20007.domain.com;
}
Run Code Online (Sandbox Code Playgroud)
我已经获得了各种正则表达式来处理MAC和固定地址,但无法将它们组合起来以便正确匹配.
f = open('/etc/dhcp3/dhcpd.conf', 'r')
re_hostinfo = re.compile(r'(hardware ethernet (.*))\;(?:\n|\r|\r\n?)(.*)',re.MULTILINE)
for host in f:
match = re_hostinfo.search(host)
if match:
print match.groups()
Run Code Online (Sandbox Code Playgroud)
目前我的匹配组将如下所示:(
'hardware ethernet 00:22:38:8f:1f:43','00:22:38:8f:1f:43','')
但寻找类似的东西:(
'硬件以太网00:22:38:8f:1f:43','00:22:38:8f:1f:43','node20007.domain.com')
我正在编写我的第二个python脚本来尝试解析配置文件的内容,并希望得到一些noob建议.我不确定它是否最好使用正则表达式解析我的脚本,因为它的多行?我也一直在阅读关于词典的内容,并想知道这是不是很好的做法.我不一定只是朝着正确的方向寻找代码.
示例:我的配置文件如下所示.
Job {
Name = "host.domain.com-foo"
Client = host.domain.com-fd
JobDefs = "DefaultJob"
FileSet = "local"
Write Bootstrap = "/etc/foo/host.domain.com-foo.bsr"
Pool = storage-disk1
}
Run Code Online (Sandbox Code Playgroud)
我应该使用正则表达式,行拆分还是模块?如果我的配置文件中有多个作业,我会使用字典将作业与池关联吗?
我正在尝试使用python来解析日志文件并在一个正则表达式中匹配4条信息.(纪元时间,服务通知,主机名和关键)我似乎无法让这个工作.到目前为止,我只能匹配四个中的两个.是否有可能做到这一点?下面是日志文件中的字符串示例以及到目前为止我已经开始工作的代码.任何帮助都会让我成为一个快乐的菜鸟.
[1242248375] SERVICE ALERT:myhostname.com; DNS:Recursive; CRITICAL; SOFT; 1; CRITICAL - 执行系统调用时插件超时
hostname = options.hostname
n = open('/var/tmp/nagios.log', 'r')
n.readline()
l = [str(x) for x in n]
for line in l:
match = re.match (r'^\[(\d+)\] SERVICE NOTIFICATION: ', line)
if match:
timestamp = int(match.groups()[0])
print timestamp
Run Code Online (Sandbox Code Playgroud) 我正在使用 slacks事件 API并设置了对反应添加事件的订阅。现在,当对消息添加反应时,slack 将向我发送一个帖子正文,其中包含已调度事件的所有详细信息,如此处所述。
我遇到的问题是我想获取详细信息,特别text是我的用户做出反应的消息的详细信息,以便我可以解析/存储该特定消息等。我假设消息会以某种类型的 UUID 返回,然后我可以响应回调并获取文本,但是我发现很难获取特定的消息。
我看到的唯一可用端点是channels.history,它似乎没有给我我正在寻找的粒度。
所以 tl;dr 是:如何通过 slacks API 查找从事件 API 发送的消息文本?提供我认为足够的 event_ts、频道和消息 ts 的信息。我正在使用 ruby slack-api gem FWIW。