我们的服务器上运行了一个redis数据库,但由于某种原因,我在数据库中看不到任何键。我只是想知道redis是否存储了一个活动日志,我可以在哪里跟踪密钥是否被删除?
我有正常的redis日志文件,在/var/log/redis.log但是没有我要查找的信息。
答案 0 :(得分:2)
我认为没有直接的方式来记录所有内容,但这里是一个黑客。
$ redis-cli monitor >> ~/my_redis_commands.log 2>&1
此处>>
告诉操作系统输出流已从monitor
更改为file
,2>&1
告知将STDERR
重定向到STDOUT
}。
n
>&m
将流n的输出与流m合并。请注意,文件描述符0通常是标准输入(STDIN),1是标准输出(STDOUT),2是标准错误输出(STDERR)。
在某些SSH会话中查看文件内容以进行调试。
$ tail -f ~/my_redis_commands.log
或者您可以使用grep来查找" DEL"代替。您可以看到Redis支持的命令列表,并尝试grep查询,如SET
,GET
等。
$ grep '"DEL"' ~/my_redis_commands.log
这个想法的缺点是:
答案 1 :(得分:0)
与all
或cmdstats
开关一起使用时,INFO
command可用于收集一些取证信息 - 您将能够查看所有命令的计数,包括令人反感的命令。< / p>
请注意,这可能是未经授权的入侵造成的,并且您的服务器可能已遭到入侵。