Linux下如何清理系统及MySQL/Nginx/PHP-FPM等日志

Linux下如何清理系统及MySQL/Nginx/PHP-FPM等日志

在Linux系统中,日志文件的积累可能会导致磁盘空间不足,影响系统性能,定期清理日志文件是十分必要的,本文将介绍如何在Linux下清理系统及MySQL/Nginx/PHP-FPM等日志。

Linux下如何清理系统及MySQL/Nginx/PHP-FPM等日志

清理系统日志

1、清理内核日志

Linux系统的内核日志记录了系统运行过程中的各种信息,包括错误、警告等,这些日志对于排查问题非常有帮助,但过多的日志可能会占用大量磁盘空间,可以通过以下命令清理内核日志:

sudo cat /proc/sys/kernel/printk | tail -n +4 > /tmp/kmsg.log
sudo dmesg > /dev/null
sudo sh -c 'cat /tmp/kmsg.log > /var/log/kern.log'
sudo rm -f /tmp/kmsg.log

2、清理邮件服务器日志

如果你的系统使用了邮件服务器(如Postfix或Exim),可以定期清理其日志文件以节省磁盘空间,以下是一个简单的脚本,用于删除超过30天的邮件服务器日志:

Linux下如何清理系统及MySQL/Nginx/PHP-FPM等日志

!/bin/bash
find /var/log -type f -name "mail*" -mtime +30 -exec rm {} \;

清理MySQL日志

MySQL的慢查询日志和常规查询日志可能会占用大量磁盘空间,可以通过配置MySQL的慢查询日志来限制其大小,并定期清理,以下是一个简单的脚本,用于保留最近7天的慢查询日志,并删除超过30天的常规查询日志:

!/bin/bash
保留最近7天的慢查询日志
sudo sed -i 's/\( \+Mysql\)\[1-9]\{1,\}.[0-9]\{1,\}\(.*\)/\1slow_query_log_file = "$MYSQL_DATADIR/mysql-slow.log\"
\t\t\t\tlong_query_time = 2
\t\t\t\tlog_queries_not_using_indexes = 1
\t\t\t\tmax_heap_table_size = 16M
\t\t\ttmin_heap_table_size = 8M
t\t\t\tquery_cache_size = 64M
\t\tt\tslow_query_log = 1
\tt\t\tthread_cache_size = 64
/' /etc/my.cnf
sudo service mysql restart
删除超过30天的常规查询日志
find /var/lib/mysql -type f -name "*.log" -mtime +30 -exec rm {} \;

清理Nginx日志

Nginx的访问日志和错误日志可能会占用大量磁盘空间,可以通过配置Nginx的访问日志来限制其大小,并定期清理,以下是一个简单的脚本,用于保留最近7天的访问日志,并删除超过30天的错误日志:

!/bin/bash
保留最近7天的访问日志
sudo sed -i 's/\(access_log \+\)\"logs-\w*\"/\1\"access.log main\"/\;s/(error_log \+\)\"logs-\w*\"/\1\"error.log\"/\;' /etc/nginx/nginx.conf
sudo service nginx restart
删除超过30天的错误日志
find /var/log/nginx -type f -name "*.log" -mtime +30 -exec rm {} \;

清理PHP-FPM日志

PHP-FPM的错误日志和访问日志可能会占用大量磁盘空间,可以通过配置PHP-FPM的错误日志来限制其大小,并定期清理,以下是一个简单的脚本,用于保留最近7天的错误日志,并删除超过30天的访问日志:

!/bin/bash
保留最近7天的错误日志
sudo sed -i 's/(error_log \+\)\"logs-\w*\"/\1\"php-fpm.log\"/\;' /etc/php5/fpm/pool.d/*.conf
sudo service php5-fpm restart
删除超过30天的访问日志(如果有)
find /var/log/php5-fpm -type f -name "access.log" -mtime +30 -exec rm {} \;

相关问题与解答

Q1:如何查看系统当前使用的磁盘空间?

Linux下如何清理系统及MySQL/Nginx/PHP-FPM等日志

A1:可以使用df命令查看当前系统的磁盘空间使用情况。

df -h --total

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/273828.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-01-28 18:44
Next 2024-01-28 18:46

相关推荐

  • 如何在MySQL中将数据导出到OBS存储?

    要将MySQL数据导出到文件并将文件上传到对象存储服务(OBS),首先需要使用mysqldump命令将数据导出为SQL文件,然后使用OBS的SDK或工具将文件上传到OBS。

    2024-08-09
    073
  • redis-cli 使用密码登录的实例

    在Redis中,我们可以通过设置密码来保护我们的数据库,这样,只有知道密码的人才能访问数据库,在本篇中,我们将介绍如何在Redis中使用密码登录。1. 安装Redis我们需要在我们的服务器上安装Redis,在Ubuntu系统中,我们可以使用以下命令来安装Redis:sudo apt-get updatesudo apt-get ins……

    2024-03-07
    0332
  • debian 下载

    Debian的下载和安装详细教程Debian简介Debian是一个开源的Linux发行版,由全球志愿者共同开发和维护,它以稳定、安全、易用著称,被广泛应用于服务器、桌面计算机等领域,Debian的软件包管理系统非常完善,可以方便地进行软件的搜索、安装、升级和卸载,本文将详细介绍如何在不同操作系统环境下下载和安装Debian。下载Deb……

    2023-12-19
    0186
  • 卸载vim

    卸载Vim是一个相对简单的过程,但是需要一些基本的Linux命令行知识,Vim是一个强大的文本编辑器,它被广泛用于编程和系统管理,如果你发现Vim并不适合你的需求,或者你想要尝试其他的文本编辑器,那么你可能需要卸载Vim。我们需要明确一点,卸载Vim并不意味着你的系统中的所有Vim相关的文件都会被删除,Vim可能已经被安装在你的系统中……

    2023-11-30
    0501
  • 如何利用Linux命令行进入MySQL并导出数据库?

    在Linux系统中,可以使用以下命令来导出MySQL数据库:,,1. 首先登录到MySQL服务器:,``,mysql u 用户名 p,`,输入密码后,您将进入MySQL命令行界面。,,2. 选择要导出的数据库:,`,use 数据库名;,`,,3. 使用mysqldump命令导出数据库:,`,mysqldump u 用户名 p 数据库名 ˃ 导出文件.sql,``,输入密码后,数据库将被导出到指定的文件中。

    2024-07-29
    071
  • MySQL条件查询使用IF函数实现判断

    在MySQL中,IF函数是控制流程函数的一种,它允许我们在查询中进行条件判断,这个函数的工作原理类似于大多数编程语言中的IF语句,根据一个条件的真假,它返回两个可能的值中的一个。IF函数的基本语法IF函数的基本语法如下:IF(condition, value_if_true, value_if_false)condition: 这是一……

    2024-04-04
    0179

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入