一,創建日志的備份目錄
[root@yjweb crontab]# mkdir /data/logs/redislogsbackup
說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest
對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
說明:作者:劉宏締 郵箱: 371125307@qq.com
二,編寫日志切分的腳本:
[root@yjweb crontab]# vi /data/web/crontab/split_redis_logs.sh
代碼:
#!/bin/bash # 備份redis的日志 # 昨天的日期 file_date=$(date -d"1 day ago" +"%Y%m%d") echo ${file_date} #redis log的路徑 log_path_redis=/data/redis6379/log # ===================backup dir name======================== back_base=/data/logs/redislogsbackup date_year=$(date -d"1 day ago" +"%Y") date_month=$(date -d"1 day ago" +"%m") date_day=$(date -d"1 day ago" +"%d") back_path=${back_base}/${date_year}/${date_month}/${date_day} echo ${back_path} # ===================mkdir back_path======================== if [ -d ${back_path} ];then echo 目錄已經存在,不能重復創建 else mkdir -p ${back_path} fi # =================== 備份redis log ======================== cd ${log_path_redis} for file in $(ls *log); do mv ${file} ${back_path}/${file_date}_${file} done
說明:和nginx/php不同,redis的日志文件可以直接mv,無需重新加載服務而生成新文件
三,保存到定時任務:
[root@yjweb crontab]# crontab -e
增加一行:
10 0 * * * sh /data/web/crontab/split_redis_logs.sh >> /data/logs/cronlogs/splitredislogs.log 2>&1
查看是否寫入
[root@yjweb crontab]# crontab -l | grep redis 10 0 * * * sh /data/web/crontab/split_redis_logs.sh >> /data/logs/cronlogs/splitredislogs.log 2>&1
四,查看redis日志切分的效果
[root@yjweb crontab]# ll /data/logs/redislogsbackup/2020/03/10/ total 16 -rw-r--r-- 1 root root 12930 Mar 11 15:53 20200310_redis.log
五,查看當前centos的版本
[root@yjweb ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core)