Lua 中一个即将到来的日期匹配
2017-7-27 3:41:34
收藏:0
阅读:106
评论:1
我在寻求一点 Lua 脚本的帮助。基本上,我想要在今天的 X 分钟之前匹配一个即将到来的日期。在下面的示例中,我使用了 9000 分钟。
alarm.get ()
message = "证书过期警告-做某事"
SUPPKEY = "证书过期"
SUBSYS = "1.1"
SOURCE = "SERVERNAME"
--local pattern = "(%d-%m-%Y)"
local t = os.date('*t'); -- 获取当前日期和时间
print(os.date("%d-%m-%Y")); -- 打印今天的日期
t.min = t.min - 9000; -- 减去 9000 分钟
--print(os.date("%Y-%m-%d %H:%m:%S", os.time(t))); --原始脚本
print(os.date("%d-%m-%Y", os.time(t))); -- 打印警报日期
if string.match ~=t.min --匹配字符串
--if string.match(a.message, pattern)
--then print (al.message)
then print ("我们匹配了")
--then nimbus.alarm (1, message , SUPPKEY , SUBSYS , SOURCE) --发送警报
else print ("一切都好") -- 没有警报
--else print (al.message)
end
alarm.get 获取了一行文本,看起来像这样:
DOMAIN\USERNAME,Web Server (WebServer),13/01/2017 09:13, 13/01/2019,COMPANY_NAME,HOSTNAME_FQDN,SITE
所以上面显示的行作为 a.message 变量传递,我希望将粗体突出显示的日期与今天的日期匹配,并减去 9000 分钟。
被注释掉的部分只是我测试不同的事情。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

我不确定我是否理解了这个问题,但从我的角度来看,似乎你正在尝试完成以下两个任务:
以下是我的示例代码:
-- 设置 local ALLOWED_AGE = 9000 -- 分钟 -- 输入行(仅供测试) local inputstr = “DOMAIN\\USERNAME,Web Server(WebServer),13/01/2017 09:13,13/01/2019,COMPANY_NAME,HOSTNAME_FQDN,SITE” -- 通过逗号将行分隔成7个变量 local path, server, time, date, company_name, hostname, site = string.match(inputstr,“([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)”) -- 检查行是否正确(不是必要的,但应在此处处理可能的错误) -- 还要注意,此处应有一些附加检查(例如,正则表达式匹配DD/MM/YYYY格式) if date == nil then print(“读取行时出错:”..inputstr) end -- 获取当前时间减去9000分钟(以DD/MM/YYYY格式) local target_date = os.date(“%d/%m/%Y”,os.time()- ALLOWED_AGE * 60) -- 打印我们得到的内容(供测试目的) print(“目标日期:”..target_date..”,输入日期:”..date) -- 测试匹配 if target_date == date then print(“日期匹配!”) else print(“日期不匹配!”) end虽然我不确定,在你的情况下是否应该检查“一个日期是否大于/小于另一个日期”。
那么上面的代码应该修改为以下内容:
-- 从格式为DD/MM/YYYY的日期中提取天,月和年 local d, m, y = string.match(date, “([^/]+)/([^/]+)/([^/]+)”) -- 请注意,我添加了一天,因此证书实际上将在“有效期”结束后的一天到期。 local valid_until = os.time({year = y,month = m,day = d + 1}) local expire_time = os.time()- ALLOWED_AGE * 60 -- 所有比这更早的证书都应该过期。 -- 打印我们得到的内容(供测试目的) print(“过期时间: ”..expire_time..” ,证书有效期至:”..valid_until) -- 是否过期? if valid_until <= expire_time then print(“哎呀! 证书已过期。”) else print(“证书日期有效。”) end