一、简单概述
- 默认情况,redis是不会生成日志文件的,因为在redis.conf中默认配置的logfile为"",所以对于有需要存储redis日志的朋友,需要自己在redis.con文件中手动添加日志存储路径。
二、操作
- 明确需求
完成redis日志按天存储本地磁盘,每天归档上一天,redis不重启不阻塞 - 整体规划
大致分为3步走:
(1)在redis.conf配置文件找到logfile,添加日志文件存储路径
(2)编写自动切割日志脚本
(3)定时任务添加执行该脚本 - 分别实现
(1)在redis.conf配置文件找到logfile,添加日志文件存储路径
vi /gis/source-package/redis-4.0.2/redis_7001.conf
(2)编写自动切割日志脚本
mkdir -p startup/redis
touch redis_log_split.log
chmod +x redis_log_split.log //变成可执行脚本文件
vi /gis/startup/redis/redis_log_split.log
我这个是为了方便测试,把yesterday改为了today
#!/bin/bash
base_path='/gis/redis/log/'
#获取当前年和月相关信息
log_path=$(date -d today +"%Y%m")
#获取昨日的天信息
day=$(date -d today +"%d")
#按照年月创建文件夹
sudo mkdir -p ${base_path}$log_path
#备份昨日的日志到当前月的文件夹
sudo mv ${base_path}redis.log ${base_path}$log_path/redis_$day.log
#输出备份日志文件名
echo ${base_path}$log_path/redis_$day.log
(3)定时任务添加执行该脚本
crontab -e //添加定时任务
- 测试
(1) 前提:我们一开始更改了redis.conf配置文件,所以在测试时候一定要记得重启,要不新更改过的配置文件无法生效
cd /gis/source-package/src/
./redis-cli -h 172.17.26.66 -p 7001 shutdown //重启之前先关闭,要不当直接在启动之后会报端口被占用
./redis-server ../redis_7001.conf
(2)
vi /gis/redis/log
sudo su //切换到root用户
cd 202003
vi redis_04.log //20200304日重新启动redis,生成的log日志文件