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

相关推荐

发表回复

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

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