一,编写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)

CentOS8平台php日志的定时切分的更多相关文章

  1. CentOS8平台nginx日志的定时切分

    一,编写bash脚本: [root@yjweb crontab]# vi split_nginx_logs.sh 代码: #!/bin/bash # 备份nginx的日志 # 昨天的日期 file_d ...

  2. centos8平台mysql日志的按天切分

    一,mysqladmin使用flush-logs的文档: mysql8官网上面针对mysqladmin的文档地址 https://dev.mysql.com/doc/refman/8.0/en/mys ...

  3. centos8平台redis5日志按天分割

    一,创建日志的备份目录 [root@yjweb crontab]# mkdir /data/logs/redislogsbackup 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...

  4. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  5. logrotate 如何执行日志按照大小切分

    说在最先的话,logrotate要设置按照文件大小来配置日志切分,需要通过三个东西. 1.配置logrotate 的配置文件 命名未任意文件,在启动的时候指定,例如/etc/weblog.conf 参 ...

  6. 利用crontab定时备份nginx访问日志(也可以说是定时切分日志)

    在我们的工作中,肯定会涉及到分析访问日志. 但是如果访问日志都集中存在于一个文件中,那数据量就太大了,并且也不利于我们进行分析. 所以我们需要对访问日志进行按时间切割. 思路: 我们可以利用linux ...

  7. centos8平台使用journalctl管理systemd-journald日志

    一,systemd-journald的作用 1,什么是systemd-journald? systemd-journald 是 systemd 自带的日志系统,是一个收集并存储各类日志数据的系统服务. ...

  8. centos8平台给sudo配置日志

    一,sudo日志的用途: 我们可以记录下来用户账号在哪个时间进行过sudo 这样不需要再从secure日志中查找用户的sudo记录 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://w ...

  9. centos8平台:举例讲解redis6的ACL功能(redis6.0.1)

    一,为什么redis6要增加acl功能模块? 什么是acl? 访问控制列表(ACL)是一种基于包过滤的访问控制技术, 它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃 redis6增加了 ...

随机推荐

  1. python代码开发规范

    https://github.com/libo-sober/LearnPython/tree/master/day18 为什么要有模块? 拿来主义,提高开发效率. 便于管理维护. 什么是脚本呢? 脚本 ...

  2. USB URB的status及其代表的意义

    USB URB的status及其代表的意义 平时在处理客户问题时,经常需要分析出现问题时抓取的usbmon log,这个log中有一个字段非常重要:URB Status word,这个字段就是stru ...

  3. SSM获取SqlSessionFactory

    1.实现类获取session //根据id 修改阈值 public int altThers(threshold threshold) { SqlSessionFactoryBuilder build ...

  4. Java中“==”和 equals的区别

    “==”的作用: 判断两个变量栈内存中存储的值是否相等,如果相等返回true,如果不相等返回false. 有两种形式的比较需要用到比较运算符“==”,一是两个基本数据类型之间的比较,二是两个引用数据类 ...

  5. hystrix文档翻译之如何使用

    Hello World! 使用HystrixCommand实现“Hello World”. public class CommandHelloWorld extends HystrixCommand& ...

  6. Spring的三大核心接口——BeanFactory、ApplicationContext、WebApplicationContext

    之前也在用这三个接口,但是对于他们的概念还是处于朦胧状态,同时,也不知道他们之间是一个什么关系,趁着现在有点时间总结一下吧,也需要对你有所帮助.一.BeanFactory       基本认识:    ...

  7. 论文阅读笔记: Multi-Perspective Sentence Similarity Modeling with Convolution Neural Networks

    论文概况 Multi-Perspective Sentence Similarity Modeling with Convolution Neural Networks是处理比较两个句子相似度的问题, ...

  8. 文本编辑-vi

    命令行模式: 底行模式:

  9. pandas 使用技巧

    多列展示 查看DataFrame时,列数较多会省略中间列的信息,可以设置最大展示列数,代码如下: 1 import pandas as pd 2 pd.set_option('display.max_ ...

  10. python 系统设置

    1. 设置python运行环境为utf-8 import sys #引用sys模块 reload(sys) #重新加载sys sys.setdefaultencoding("utf-8&qu ...