如何解决将 Timekeeper Windows 主机 PowerShell 脚本转换为 Linux 主机的 Python3
为了在 Windows 机器上监视 FSMLabs Timekeeper (TK),我使用 PowerShell 脚本从 TK 日志中输出系统时间、TK 记录时间(按时区)和偏移量(以毫秒为单位)。
然后我在 ITRS Geneos“工具包”采样器中运行此脚本以显示此类指标并设置规则以在偏移量 > x 毫秒时触发警报。
现在我想在 Unix 机器上进行相同的监控,所以我决定将 PowerShell 脚本翻译成 Python3。
您能否建议以下 Python 语法是否正确,或者是否有更好的方法来实现相同的结果?
PowerShell:
'SysTimestamp,TK_Timestamp,Offset';
$source = Get-Content "C:\Program Files\timekeeper\var\lib\timekeeper" | Select-String "Primary Source Number:"
$source = $source -replace "Primary Source Number:\s+"
$log = (Get-Content "C:\Program Files\timekeeper\var\log\timekeeper_$source.data" -Tail 1) -split " "
$offset = [double]$log[1]
$offset = $offset * 1000
$tkstamp = $log[0]
$tktime = [timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($tkstamp))
$now=Get-Date
Write-Host "$now,$tktime,$offset "
Python3:
import pathlib
import time
import subprocess
from datetime import datetime,timedelta
source=pathlib.Path('/var/lib/timekeeper')
pattern = "Primary Source Number:"
for file in source.glob(pattern)
source = source + ""
logfile = "/var/log/timekeeper/timekeeper_"+source+".data"
lastline = subprocess.check_output(['tail','-1',logfile])
log = lastline.split('" "')
offset= float(log[1])
offset= offset * 1000
tkstamp = log[0]
now = datetime.now()
tktime= now + datetime.timedelta(0,tkstamp)
print(now,tktime,offset)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。