网站实施过程,网络规划设计师第二版pdf百度云,c# 手机版网站开发,品牌网站推广方案1、错误现象这是一台Mysql数据库服务器#xff0c;在系统中运行了很多定时任务#xff0c;今天通过crontab命令又添加了一个计划任务#xff0c;退出时发生了如下报错#xff1a;#crontab -e编辑完成后#xff0c;保存退出#xff0c;就出现下面如下图所示错误#xff1…1、错误现象这是一台Mysql数据库服务器在系统中运行了很多定时任务今天通过crontab命令又添加了一个计划任务退出时发生了如下报错#crontab -e编辑完成后保存退出就出现下面如下图所示错误2、解决思路根据上面报错的提示信息基本判定是磁盘空间满了那么首先从检查服务器的磁盘空间开始根据报错提示应首先检查/tmp磁盘空间然后应该是根分区的磁盘空间最好是系统其它分区的磁盘空间。3、问题排查通过df命令查看了这个服务器上所有磁盘分区的情况/tmp分区空间还有很多根分区也还有很大剩余空间都不存在问题最后发现是/var磁盘分区空间使用已经100%了到这里已经定位了问题是/var磁盘空间爆满导致的因为crontab会在保存时写文件信息到/var目录下由于这个磁盘没有空间了报错也是理所当然了。4、解决问题接着通过“du -sh”命令检查/var目录下所有文件或目录的大小发现/var/spool/clientmqueue目录占用了/var整个分区大小的90%那么/var/spool/clientmqueue目录下的文件都是怎么产生的呢是否能删除下面简单介绍下/var/spool/clientmqueue目录的文件是怎么生成的。可以打开/var/spool/clientmqueue目录下的一些文件看看都是一些邮件信息邮件内容大多是关于Cron Daemon的其实/var/spool/clientmqueue就是一个邮件暂存的目录linux服务器在默认情况下会发一些邮件比如当cron执行的程序有输出内容时就会发送邮件信息到执行cron进程的用户系统在发送邮件时首先会把邮件拷贝到/var/spool/clientmqueue目录下然后等待MTA程序(mail transfer agent)来处理而MTA主要的功能是把这个目录中的邮件转移到/var/spool/mqueue目录下然后再通过sendmail服务发送到真正的目的地。于是检查了这个服务器的sendmail服务发现没有开启这样/var/spool/clientmqueue目录非常大的原因就找到了没有发送邮件的客户端服务所有邮件就都堆积在这个目录下了。在确认完这些内容都没用后切换到/var/spool/clientmqueue目录下执行rm命令删除所有的文件时出现了错误[rootlocalhost clientmqueue]# rm */bin/rm: argument list too long此时出现了本文开头我们谈到的问题。当Linux下试图传递太多参数给一个系统命令时就会出现”Argument list too long”错误。这个是Linux系统一直以来都有的限制。查看这个限制可以通过命令“getconf ARG_MAX”来实现如下图所示这是Centos6版本的一个最大值而在Centos5.x中这个值相对较小如下图所示所以这个问题更多时候是发生在linux低版本中。知道了产生问题的原因解决方法就很多了这里提供四种解决此问题的方法分别介绍如下(1)手动把命令行参数分成较小的部分例如rm [a-n]* -rfrm [o-z]* -rf这种方法里最简单的,但是相对较弱智因为必须要知道怎么平均分割文件同时对于文件数目极多的情况需要输入很多遍命令。(2)使用find命令删除基本原理是通过find命令筛选文件列表把符合要求的文件传递给一系列命令。这种方法是最简洁的也就最有效的。例如find /var/spool/clientmqueue -type f -print -exec rm -f {} \;但是这种方法也有缺点就是需要遍历所有文件因而在文件数量极多时比较耗时。(3) 通过shell脚本这种方法是通过编写一个shell脚本然后通过循序语句实现与find方法类似。例如可以编写如下脚本#!/bin/bash# 设定需要删除的文件夹RM_DIR/var/spool/clientmqueuecd $RM_DIRfor I in lsdorm -f $Idone(4)重新编译Linux内核这种方法需要手动增加内核中分配给命令行参数的页数打开kernel source下面的include/linux/binfmts.h文件找到如下行# define MAX_ARG_PAGES 32将”32“改为更大的值例如64或128然后重新编译内核。此种方法永久有效可以彻底解决问题但是比较复杂推荐给高级用户使用没有Linux经验的用户不建议用这种方法。