Redis中如何设置日志
作者:晓风的我
Redis 设置日志
1.找到Redis的配置文件 redis.conf;
2.打开该配置文件, vi redis.conf;
3.通过linux的查询命令找到 (loglevel下面)logfile " " ;
4.在冒号里面输入日志的路径,比如logfile “/usr/local/redis/log/redis.log”,其中log是新建的文件夹,redis.log也是新建的文件(有人说只要新建到文件夹就可以了,redis.log会自动生成,不过我没有测试)。
如下图:
5.如何启动redis服务器是重点,之前是在对应路径下还按之前的直接方式启动,但是没有效果,配置文件还是按照默认的,因此在在进行了大量的百度之后,终于整明白需要把服务器和修改过的配置文件一起启动(之前一直没整明白这句话啥意思有点懵,,,)。
具体指令如下(黄色字体是重点,记得加上才能成功):
这样就成功了,,,注意命令启动后没有任何的显示,因为那些东西都被写入到了redis.log里面,你可以通过打开这个文件查看一下;
6.关闭redis服务器, 命令 ./redis-cli shutdown (否则会一直在后台运行)。
按时间生成redis日志
最近新项目总是发现redis不定时被清空缓存数据,不管是重启服务器还是重启redis-server 都有配置重启前保存数据,实在没发现问题出在哪,于是准备打印日志。。
找到redis.conf,搜索 logfile 在双引号中写入日志生成地址,保险起见,我把日志级别改成了debug
重启redis后编写生成日志的脚本redis_log.sh 最近重启redis老是发现6379的端口被莫名占用,还老是生成一堆垃圾文件,想看看还显示有病毒开不开。。
#!/bin/bash cd /usr/local/redis/logs/ if [ ! -d "`date +%Y-%m`" ];then mkdir "`date +%Y-%m`" fi mv -f /usr/local/redis/logs/redis.log /usr/local/redis/logs/"`date +%Y-%m`"/`date +%Y-%m-%d`.log
./redis_log.sh 测试运行发现脚本有问题
-bash: ./redis_log.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
我是在windows环境下编写的 所以需要执行指令去删除每一行的 \r字符
sed -i 's/\r$//' redis_log.sh
然后是开启定时任务
crontab -e 0 2 * * * sh /usr/local/redis/redis_qz/redis_log.sh
这样就会每天生成日志了,日志显示有三台未知主机连上了我们服务器,前一分钟还有十几个key,后一分钟就全部被清掉了,还有什么复制签名失败,想同步数据之类的日志信息,三ip有俩个来自法国,还有一个印度的,可能被攻击了,还好只是测试服 不管有没有用,先把一系列密码端口改了再说
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。