CentOS8平台php日志的定时切分

一,编写bash脚本:

[root@yjweb crontab]# vi split_php_logs.sh

代码:

#!/bin/bash
# 备份php/php-fpm的日志

# 昨天的日期

file_date=$(date -d"1 day ago" +"%Y%m%d")
echo ${file_date}

#php log的路径

log_path_php=/data/logs/phplogs

# ===================backup dir name========================

back_base=/data/logs/phplogsbackup
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

# =================== 备份php log ========================

cd ${log_path_php}

for file in $(ls *log);
do

    mv ${file} ${back_path}/${file_date}_${file}

done

kill -USR1 `ps axu | grep "php-fpm: master process" | grep -v grep | awk '{print $2}'`

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/

 说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,创建备份日志的目录

[root@yjweb logs]# mkdir /data/logs/phplogsbackup
[root@yjweb logs]# chmod 777 /data/logs/phplogsbackup

三,保存到定时任务:

[root@yjweb crontab]# chmod +x split_php_logs.sh
[root@yjweb crontab]# crontab -e

内容:

[root@yjweb crontab]# crontab -l | grep php
10 0 * * * sh /data/web/crontab/split_php_logs.sh >> /data/logs/cronlogs/splitphplogs.log 2>&1

四,查看日志切分的效果:

[root@yjweb crontab]# ll /data/logs/phplogsbackup/2020/03/05/
total 8
-rw------- 1 root root  854 Mar  6 10:21 20200305_php-fpm_error.log
-rw------- 1 root root 1235 Mar  6 10:21 20200305_php-fpm_slow.log

五,查看本地centos的版本

[webop@yjweb ~]$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core) 
原文地址:https://www.cnblogs.com/architectforest/p/12435509.html