<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/yidie" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/yidie" type="application/rss+xml"></fs:self_link><lastBuildDate>Sat, 01 May 2010 14:47:12 GMT</lastBuildDate><title>一碟沉香</title><description>一个音乐评论与分享的花园</description><link>http://hatemysql.com</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Tue, 04 May 2010 10:13:24 GMT</pubDate><item><title>索引问题导致mysql复制lock timeout</title><link>http://item.feedsky.com/~feedsky/yidie/~6147565/361791472/4255515/1/item.html</link><content:encoded>&lt;p&gt;遇到一个非常郁闷的问题。MySQL复制备机SQL线程执行一个语句报错：&lt;br /&gt;
Error &amp;#8216;Lock wait timeout exceeded; try restarting transaction&amp;#8217; on query. Default database: &amp;#8216;brmms2&amp;#8242;. Query: &amp;#8216;UPDATE brmms_user                   SET gmt_modified = now()                         ,             last_login_ip = &amp;#8216;58.20.77.164&amp;#8242;                  ,             last_login_time = now()                                    WHERE member_id = &amp;#8216;yanyazhang&amp;#8221;&lt;br /&gt;
这个语句就算我单独提出来执行也会超时。show innodb status的状态如下：&lt;br /&gt;
root@localhost : (none) 08:12:46&amp;gt; show innodb status\G&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
Type: InnoDB&lt;br /&gt;
Name:&lt;br /&gt;
Status:&lt;br /&gt;
=====================================&lt;br /&gt;
100501 20:12:51 INNODB MONITOR OUTPUT&lt;br /&gt;
=====================================&lt;br /&gt;
Per second averages calculated from the last 8 seconds&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
SEMAPHORES&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
OS WAIT ARRAY INFO: reservation count 22, signal count 22&lt;br /&gt;
Mutex spin waits 0, rounds 239, OS waits 8&lt;br /&gt;
RW-shared spins 20, OS waits 10; RW-excl spins 3, OS waits 3&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
TRANSACTIONS&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
Trx id counter 0 1835507099&lt;br /&gt;
Purge done for trx&amp;#8217;s n:o &amp;lt; 0 1835505963 undo n:o &amp;lt; 0 0&lt;br /&gt;
History list length 44&lt;br /&gt;
LIST OF TRANSACTIONS FOR EACH SESSION:&lt;br /&gt;
&amp;#8212;TRANSACTION 0 0, not started, OS thread id 12&lt;br /&gt;
MySQL thread id 801, query id 3585 localhost root&lt;br /&gt;
show innodb status&lt;br /&gt;
&amp;#8212;TRANSACTION 0 1835507098, ACTIVE 64 sec, OS thread id 17 starting index read&lt;br /&gt;
mysql tables in use 1, locked 1&lt;br /&gt;
LOCK WAIT 3 lock struct(s), heap size 1216, 2 row lock(s)&lt;br /&gt;
MySQL thread id 1214, query id 3536 Updating&lt;br /&gt;
UPDATE brmms_user                       SET gmt_modified = now()                         ,             last_login_ip = &amp;#8216;58.20.77.164&amp;#8242;                  ,             last_login_time = now()                                    WHERE member_id = &amp;#8216;yanyazhang&amp;#8217;&lt;br /&gt;
&amp;#8212;&amp;#8212;- TRX HAS BEEN WAITING 64 SEC FOR THIS LOCK TO BE GRANTED:&lt;br /&gt;
RECORD LOCKS space id 10344 page no 3281 n bits 192 index `PRIMARY` of table `brmms2`.`brmms_user` trx id 0 1835507098 lock_mode X locks rec but not gap waiting&lt;br /&gt;
Record lock, heap no 121 PHYSICAL RECORD: n_fields 17; compact format; info bits 0&lt;br /&gt;
0: len 8; hex 0000000005fd14a7; asc         ;; 1: len 6; hex 00006d6795f9; asc   mg  ;; 2: len 7; hex 00000000c30c2f; asc       /;; 3: len 10; hex 79616e79617a68616e67; asc yanyazhang;; 4: len 4; hex 00000000; asc     ;; 5: len 4; hex 00000000; asc     ;; 6: len 4; hex 00000000; asc     ;; 7: len 4; hex 00000000; asc     ;; 8: len 3; hex 8fb48e; asc    ;; 9: len 12; hex 35382e32302e37372e313634; asc 58.20.77.164;; 10: len 4; hex 4bc59f9c; asc K   ;; 11: len 4; hex 4bc59f8f; asc K   ;; 12: len 4; hex 4bc59f9c; asc K   ;; 13: len 4; hex 80000000; asc     ;; 14: len 4; hex 80000000; asc     ;; 15: len 4; hex 80000000; asc     ;; 16: SQL NULL;&lt;/p&gt;
&lt;p&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
&amp;#8212;TRANSACTION 0 1835505145, ACTIVE (PREPARED) 5527 sec, OS thread id 0&lt;br /&gt;
1 lock struct(s), heap size 368, 1 row lock(s), undo log entries 1&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
FILE I/O&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
I/O thread 0 state: waiting for i/o request (insert buffer thread)&lt;br /&gt;
I/O thread 1 state: waiting for i/o request (log thread)&lt;br /&gt;
I/O thread 2 state: waiting for i/o request (read thread)&lt;br /&gt;
I/O thread 3 state: waiting for i/o request (write thread)&lt;br /&gt;
Pending normal aio reads: 0, aio writes: 0,&lt;br /&gt;
ibuf aio reads: 0, log i/o&amp;#8217;s: 0, sync i/o&amp;#8217;s: 0&lt;br /&gt;
Pending flushes (fsync) log: 0; buffer pool: 0&lt;br /&gt;
16300 OS file reads, 336 OS file writes, 268 OS fsyncs&lt;br /&gt;
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
INSERT BUFFER AND ADAPTIVE HASH INDEX&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
Ibuf: size 1, free list len 104, seg size 106,&lt;br /&gt;
27 inserts, 27 merged recs, 27 merges&lt;br /&gt;
Hash table size 35401603, node heap has 7 buffer(s)&lt;br /&gt;
0.00 hash searches/s, 0.00 non-hash searches/s&lt;br /&gt;
&amp;#8212;&lt;br /&gt;
LOG&lt;br /&gt;
&amp;#8212;&lt;br /&gt;
Log sequence number 102 3346391724&lt;br /&gt;
Log flushed up to   102 3346391724&lt;br /&gt;
Last checkpoint at  102 3346391724&lt;br /&gt;
0 pending log writes, 0 pending chkp writes&lt;br /&gt;
198 log i/o&amp;#8217;s done, 0.00 log i/o&amp;#8217;s/second&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
BUFFER POOL AND MEMORY&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
Total memory allocated 18653842407; in additional pool allocated 16776704&lt;br /&gt;
Dictionary memory allocated 4059160&lt;br /&gt;
Buffer pool size   1048576&lt;br /&gt;
Free buffers       1034004&lt;br /&gt;
Database pages     14565&lt;br /&gt;
Modified db pages  0&lt;br /&gt;
Pending reads 0&lt;br /&gt;
Pending writes: LRU 0, flush list 0, single page 0&lt;br /&gt;
Pages read 14565, created 0, written 146&lt;br /&gt;
0.00 reads/s, 0.00 creates/s, 0.00 writes/s&lt;br /&gt;
Buffer pool hit rate 1000 / 1000&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
ROW OPERATIONS&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8211;&lt;br /&gt;
0 queries inside InnoDB, 0 queries in queue&lt;br /&gt;
1 read views open inside InnoDB&lt;br /&gt;
Main thread id 9, state: waiting for server activity&lt;br /&gt;
Number of rows inserted 52, updated 36, deleted 3, read 364&lt;br /&gt;
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;-&lt;br /&gt;
END OF INNODB MONITOR OUTPUT&lt;br /&gt;
============================&lt;/p&gt;
&lt;p&gt;1 row in set, 1 warning (0.00 sec)&lt;br /&gt;
这里比较奇怪的地方在于：这个备机上就一个SQL线程在跑，其他的任何东西都没有跑，结果它还被锁超时杀掉了。上面的show innodb status显示&lt;br /&gt;
&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;br /&gt;
&amp;#8212;TRANSACTION 0 1835505145, ACTIVE (PREPARED) 5527 sec, OS thread id 0&lt;br /&gt;
1 lock struct(s), heap size 368, 1 row lock(s), undo log entries 1&lt;br /&gt;
这个线程是干吗的，难道是它lock住了update语句？&lt;/p&gt;
&lt;p&gt;我先后试过如下的方法想去恢复：&lt;br /&gt;
1、重启数据库。SQL slave自己执行不过去。手工执行不过去。&lt;br /&gt;
2、重启数据库并修改为skip-slave-start模式，手工执行未果。&lt;br /&gt;
3、alter table brmms_user drop index idx_brmms_user_member_id, add index idx_brmms_user_Mem_id (member_id);报错lock timeout.&lt;br /&gt;
4、stop slave;想利用mysqldump -uroot -p &amp;#8211;opt  &amp;#8211;add-drop-table &amp;#8211;default-character-set=utf8 &amp;#8211;master-data=2   &amp;#8211;single-transaction &amp;#8211;complete-insert &amp;#8211;log-error=/tmp/mysqldump20100501.log brmms2 brmms_user&amp;gt;brmms_user.sql 或者mysqldump -uroot -p  &amp;#8211;default-character-set=utf8  brmms2 brmms_user&amp;gt;brmms_user.sql导出数据，然后重新导入。结果在mysqldump的时候就导不出来数据(能够导出表结构，错误日志里面也没有任何信息)&lt;br /&gt;
5、创建临时表tmp_pickup_brmms_user，然后insert into temp_brmms_user_pickup select * from brmms_user;。报错lock timeout.&lt;/p&gt;
&lt;p&gt;最后通过select into outfile的方式解决了这个问题。步骤如下：&lt;br /&gt;
1、确认slave是停掉的。 并且修改SQL_LOG_BIN来避免下面的语句记录到binlog中(如果对应的主机没有这个问题，下面的这些操作完全没有必要通过replication传递到主机执行)。&lt;br /&gt;
stop slave;&lt;br /&gt;
SET SQL_LOG_BIN=0;&lt;br /&gt;
2、导出brmms_user表的所有数据。注意/tmp目录需要有足够的空间。&lt;br /&gt;
select * from brmms_user into outfile &amp;#8216;/tmp/brmms_user.txt&amp;#8217;；&lt;br /&gt;
3、创建临时表。该表的结构要求跟brmms_user表结构一样。&lt;br /&gt;
CREATE TABLE `tmp_pickup_brmms_user` ( &amp;#8230; );&lt;br /&gt;
4、将brmms_user的数据导入到tmp_pickup_brmms_user。&lt;br /&gt;
load data local infile &amp;#8216;/tmp/brmms_user.txt&amp;#8217; into table tmp_pickup_brmms_user;&lt;br /&gt;
5、改名。将brmms_user改到另外的名字，将临时表名字改为brmms_user&lt;br /&gt;
alter table brmms_user rename tmp_pickup_brmms_user_old;&lt;br /&gt;
alter table tmp_pickup_brmms_user rename brmms_user;&lt;br /&gt;
6、重新启动复制。&lt;br /&gt;
start slave;&lt;br /&gt;
7、收尾工作：必要的话，删除tmp_pickup_brmms_user_old表。SET SQL_LOG_BIN=1;来恢复session的binlog记录。&lt;br /&gt;
drop table tmp_pickup_brmms_user_old;&lt;br /&gt;
SET SQL_LOG_BIN=1;&lt;/p&gt;
&lt;p&gt;may you success.&lt;/p&gt;
&lt;p&gt;今天我们又检查了一下那个有问题的表。发现通过主键更新对应记录也是locktimeout。更新它之前和之后的主键都没有问题。突然回想起这台机器是通过另外一台机器的solaris的snapshot生产的快照，然后直接传到这台机器的。之后就直接启动起来用了。&lt;strong&gt;假设&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这里在生成snapshot的时候，MySQL的数据(索引)在物理层面上是不一致的。这样的不一致是否是导致MySQL的这个问题的原因列。有待进一步的确认。&lt;/p&gt;
&lt;p&gt;这里我们也知道了solaris的snapshot还是有风险的，如果以后还有备机的搭建，可以考虑先停止MySQL，然后才做snapshot。保证数据的物理一致性。&lt;/p&gt;
&lt;p&gt;may you success&lt;/p&gt;
&lt;p&gt;&lt;map name='google_ad_map_7_f3b4f6c0d18d86b5'&gt;
&lt;area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/7?pos=0' coords='1,2,367,28' /&gt;
&lt;area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/&gt;&lt;/map&gt;
&lt;img usemap='#google_ad_map_7_f3b4f6c0d18d86b5' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;amp;client=&amp;amp;channel=&amp;amp;output=png&amp;amp;cuid=7&amp;amp;url= http%3A%2F%2Fhatemysql.com%2F2010%2F05%2F01%2F%25e7%25b4%25a2%25e5%25bc%2595%25e9%2597%25ae%25e9%25a2%2598%25e5%25af%25bc%25e8%2587%25b4mysql%25e5%25a4%258d%25e5%2588%25b6lock-timeout%2F' /&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/361791472/yidie/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/yidie/~6147565/361791472/4255515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/yidie/361791472/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/yidie/361791472/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://hatemysql.com/2010/05/01/%e7%b4%a2%e5%bc%95%e9%97%ae%e9%a2%98%e5%af%bc%e8%87%b4mysql%e5%a4%8d%e5%88%b6lock-timeout/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>遇到一个非常郁闷的问题。MySQL复制备机SQL线程执行一个语句报错：
Error &amp;#8216;Lock wait timeout exceeded; try restarting transaction&amp;#8217; on query. Default database: &amp;#8216;brmms2&amp;#8242;. Query: &amp;#8216;UPDATE brmms_user                   SET gmt_modified = now()                  [...]&lt;img src=&quot;http://www1.feedsky.com/t1/361791472/yidie/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/yidie/~6147565/361791472/4255515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/yidie/361791472/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/yidie/361791472/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>mysql</category><category>mysql lock_timeout replication</category><pubDate>Sat, 01 May 2010 22:47:12 +0800</pubDate><author>admin</author><comments>http://hatemysql.com/2010/05/01/%e7%b4%a2%e5%bc%95%e9%97%ae%e9%a2%98%e5%af%bc%e8%87%b4mysql%e5%a4%8d%e5%88%b6lock-timeout/#comments</comments><guid isPermaLink="false">http://hatemysql.com/?p=7</guid><dc:creator>admin</dc:creator><fs:srclink>http://hatemysql.com/2010/05/01/%e7%b4%a2%e5%bc%95%e9%97%ae%e9%a2%98%e5%af%bc%e8%87%b4mysql%e5%a4%8d%e5%88%b6lock-timeout/</fs:srclink><fs:srcfeed>http://cd.5friend.cn/feed</fs:srcfeed><fs:itemid>feedsky/yidie/~6147565/361791472/4255515</fs:itemid></item><item><title>crontab导致磁盘空间满问题的解决</title><link>http://item.feedsky.com/~feedsky/yidie/~6147565/361791473/4255515/1/item.html</link><content:encoded>&lt;p&gt;收到磁盘空间满的信息。发现主机上/var空间不足。du -sh 一层层的查下去看的时候，最终找到了/var/spool/clientmqueue这个目录。里面文件有48w个，娘阿。这个问题的原因是crontab的一些计划任务中产生了大量日志信息。这些日志信息没有导入到/dev/null或者指定的文件。结果就产生了目录下的这些文件。本来这些文件要作为mail发出去的。结果sendmail没有启动，积留在这里了。建议crontab的计划任务全部写成这个样子：&lt;br /&gt;
30 7 * * * /home/mysql/admin/bin/sec.startup restart  &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
请注意后面的&amp;gt;/dev/null 2&amp;gt;&amp;amp;1。这里2&amp;gt;&amp;amp;1表示标准错误也放到标准输出，而标准输出导入到了/dev/null；也就是说，日志信息我不要了。如果你要的话，导入到你指定的文件咯。&lt;br /&gt;
这里还有一个注意的地方就是&amp;gt;/dev/null 2&amp;gt;&amp;amp;1的顺序。他们的顺序也不能反。否则标准错误不能导入到标准输出。还是要写到/var/spool/clientmqueue文件中。&lt;br /&gt;
我们可以看看spool和clientmqueue的linux帮助：&lt;br /&gt;
man hier&lt;br /&gt;
spool/     miscellaneous printer and mail system spooling&lt;br /&gt;
directories&lt;/p&gt;
&lt;p&gt;clientmqueue/&lt;br /&gt;
undelivered submission mail queue; see&lt;br /&gt;
sendmail(8)&lt;/p&gt;
&lt;p&gt;原理搞清楚了，以后的问题也避免了。那么就是已有的文件删除问题了。注意，不要这样删除rm -rf /var/spool/clientmqueue，这个文件夹还是蛮重要的，听说过删除该文件夹系统出问题的事例了，希望你不是下一个造成同样的原因故障的人。&lt;br /&gt;
删除文件本来很简单，但是删除48w个文件就是一个有技术含量的活了。直接rm *会报错说Argument list too long。rm接收的参数列太多了。我们就不追究这么通用的工具怎么会出这么令人不爽报错了吧。简单的解决办法：&lt;br /&gt;
a、利用xargs。xargs其实就是把传给它的列表一个一个的传给它的命令去一个一个的执行。具体的命令为ls |xargs rm -f。&lt;br /&gt;
b、利用find -delete。具体命令为find /var/spool/clientmqueue/ -name &amp;#8216;*&amp;#8217; -type f -delete&lt;/p&gt;
&lt;p&gt;may you success.&lt;/p&gt;
&lt;p&gt;&lt;map name='google_ad_map_6_f3b4f6c0d18d86b5'&gt;
&lt;area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/6?pos=0' coords='1,2,367,28' /&gt;
&lt;area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/&gt;&lt;/map&gt;
&lt;img usemap='#google_ad_map_6_f3b4f6c0d18d86b5' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;amp;client=&amp;amp;channel=&amp;amp;output=png&amp;amp;cuid=6&amp;amp;url= http%3A%2F%2Fhatemysql.com%2F2010%2F05%2F01%2Fcrontab%25e5%25af%25bc%25e8%2587%25b4%25e7%25a3%2581%25e7%259b%2598%25e7%25a9%25ba%25e9%2597%25b4%25e6%25bb%25a1%25e9%2597%25ae%25e9%25a2%2598%25e7%259a%2584%25e8%25a7%25a3%25e5%2586%25b3%2F' /&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/361791473/yidie/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/yidie/~6147565/361791473/4255515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/yidie/361791473/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/yidie/361791473/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://hatemysql.com/2010/05/01/crontab%e5%af%bc%e8%87%b4%e7%a3%81%e7%9b%98%e7%a9%ba%e9%97%b4%e6%bb%a1%e9%97%ae%e9%a2%98%e7%9a%84%e8%a7%a3%e5%86%b3/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>收到磁盘空间满的信息。发现主机上/var空间不足。du -sh 一层层的查下去看的时候，最终找到了/var/spool/clientmqueue这个目录。里面文件有48w个，娘阿。这个问题的原因是crontab的一些计划任务中产生了大量日志信息。这些日志信息没有导入到/dev/null或者指定的文件。结果就产生了目录下的这些文件。本来这些文件要作为mail发出去的。结果sendmail没有启动，积留在这里了。建议crontab的计划任务全部写成这个样子：
30 7 * * * /home/mysql/admin/bin/sec.startup restart  &amp;#62;/dev/null 2&amp;#62;&amp;#38;1
请注意后面的&amp;#62;/dev/null 2&amp;#62;&amp;#38;1。这里2&amp;#62;&amp;#38;1表示标准错误也放到标准输出，而标准输出导入到了/dev/null；也就是说，日志信息我不要了。如果你要的话，导入到你指定的文件咯。
这里还有一个注意的地方就是&amp;#62;/dev/null 2&amp;#62;&amp;#38;1的顺序。他们的顺序也不能反。否则标准错误不能导入到标准输出。还是要写到/var/spool/clientmqueue文件中。
我们可以看看spool和clientmqueue的linux帮助：
man hier
spool/     miscellaneous printer and mail system spooling
directories
clientmqueue/
undelivered submission mail queue; see
sendmail(8)
原理搞清楚了，以后的问题也避免了。那么就是已有的文件删除问题了。注意，不要这样删除rm -rf /var/spool/clientmqueue，这个文件夹还是蛮重要的，听说过删除该文件夹系统出问题的事例了，希望你不是下一个造成同样的原因故障的人。
删除文件本来很简单，但是删除48w个文件就是一个有技术含量的活了。直接rm *会报错说Argument list too long。rm接收的参数列太多了。我们就不追究这么通用的工具怎么会出这么令人不爽报错了吧。简单的解决办法：
a、利用xargs。xargs其实就是把传给它的列表一个一个的传给它的命令去一个一个的执行。具体的命令为ls &amp;#124;xargs rm -f。
b、利用find -delete。具体命令为find /var/spool/clientmqueue/ -name &amp;#8216;*&amp;#8217; -type f -delete
may you success.&lt;img src=&quot;http://www1.feedsky.com/t1/361791473/yidie/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/yidie/~6147565/361791473/4255515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/yidie/361791473/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/yidie/361791473/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>mysql</category><pubDate>Sat, 01 May 2010 22:45:40 +0800</pubDate><author>admin</author><comments>http://hatemysql.com/2010/05/01/crontab%e5%af%bc%e8%87%b4%e7%a3%81%e7%9b%98%e7%a9%ba%e9%97%b4%e6%bb%a1%e9%97%ae%e9%a2%98%e7%9a%84%e8%a7%a3%e5%86%b3/#comments</comments><guid isPermaLink="false">http://hatemysql.com/?p=6</guid><dc:creator>admin</dc:creator><fs:srclink>http://hatemysql.com/2010/05/01/crontab%e5%af%bc%e8%87%b4%e7%a3%81%e7%9b%98%e7%a9%ba%e9%97%b4%e6%bb%a1%e9%97%ae%e9%a2%98%e7%9a%84%e8%a7%a3%e5%86%b3/</fs:srclink><fs:srcfeed>http://cd.5friend.cn/feed</fs:srcfeed><fs:itemid>feedsky/yidie/~6147565/361791473/4255515</fs:itemid></item><item><title>二泉映月</title><link>http://item.feedsky.com/~feedsky/yidie/~6147565/361791474/4255515/1/item.html</link><content:encoded>&lt;p&gt;万万想不到的是，我的第一篇博客是以二泉映月开始的。&lt;br /&gt;
说实话，最近真的有点忙。也许是自己的能力不够把，处理事情不能一针见血直达要害。一直想开始写博客了。虽然以前可能觉得博客是一种简单的宣传自己的手段，可能是一种简单的忽悠别人的工具。不是有句话说的好：半桶子水晃荡的响，开水不叫，叫水不开吗。不想做那半桶子水，光在那里晃荡。也是看到一些能力不怎么样的人晃荡忽悠的多了的想法。现在开始写博客也不是因为自己就是一桶子水了，恰恰相反，是一桶子空的。想想，不晃荡晃荡也没有半桶子水，也许晃荡晃荡也慢慢的满了列。有些自己知道，认为简单的，也许是对的，也许对别人有用列？也许可以成为巨人的垫脚石列。有些自己知道的，认为再简单不过的，也许是错的列，写下来即使误人子弟了，说不定也会有人纠正一下，不会一错再错。至不济，还可以锻炼俺们的中文，发现打字多了，很多字不会写，很多字会写错，应该说好处还是大于坏处把。呵呵&lt;br /&gt;
今天很早就来了公司，想想无事，开了电脑来听音乐，听了几曲，突然想停二泉映月。听完非常感概，开始写博客。&lt;br /&gt;
其实我就是一个纠结的人，写个博客屁大点事，还扯了这么多。有必要吗。先写到这里，要上班了，哈哈。&lt;/p&gt;
&lt;p&gt;&lt;map name='google_ad_map_1_f3b4f6c0d18d86b5'&gt;
&lt;area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/1?pos=0' coords='1,2,367,28' /&gt;
&lt;area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/&gt;&lt;/map&gt;
&lt;img usemap='#google_ad_map_1_f3b4f6c0d18d86b5' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;amp;client=&amp;amp;channel=&amp;amp;output=png&amp;amp;cuid=1&amp;amp;url= http%3A%2F%2Fhatemysql.com%2F2010%2F04%2F30%2Fhello-world%2F' /&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/361791474/yidie/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/yidie/~6147565/361791474/4255515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/yidie/361791474/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/yidie/361791474/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://hatemysql.com/2010/04/30/hello-world/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>万万想不到的是，我的第一篇博客是以二泉映月开始的。
说实话，最近真的有点忙。也许是自己的能力不够把，处理事情不能一针见血直达要害。一直想开始写博客了。虽然以前可能觉得博客是一种简单的宣传自己的手段，可能是一种简单的忽悠别人的工具。不是有句话说的好：半桶子水晃荡的响，开水不叫，叫水不开吗。不想做那半桶子水，光在那里晃荡。也是看到一些能力不怎么样的人晃荡忽悠的多了的想法。现在开始写博客也不是因为自己就是一桶子水了，恰恰相反，是一桶子空的。想想，不晃荡晃荡也没有半桶子水，也许晃荡晃荡也慢慢的满了列。有些自己知道，认为简单的，也许是对的，也许对别人有用列？也许可以成为巨人的垫脚石列。有些自己知道的，认为再简单不过的，也许是错的列，写下来即使误人子弟了，说不定也会有人纠正一下，不会一错再错。至不济，还可以锻炼俺们的中文，发现打字多了，很多字不会写，很多字会写错，应该说好处还是大于坏处把。呵呵
今天很早就来了公司，想想无事，开了电脑来听音乐，听了几曲，突然想停二泉映月。听完非常感概，开始写博客。
其实我就是一个纠结的人，写个博客屁大点事，还扯了这么多。有必要吗。先写到这里，要上班了，哈哈。&lt;img src=&quot;http://www1.feedsky.com/t1/361791474/yidie/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/yidie/~6147565/361791474/4255515/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/yidie/361791474/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/yidie/361791474/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>未分类</category><pubDate>Fri, 30 Apr 2010 21:07:08 +0800</pubDate><author>admin</author><comments>http://hatemysql.com/2010/04/30/hello-world/#comments</comments><guid isPermaLink="false">http://hatemysql.com/?p=1</guid><dc:creator>admin</dc:creator><fs:srclink>http://hatemysql.com/2010/04/30/hello-world/</fs:srclink><fs:srcfeed>http://cd.5friend.cn/feed</fs:srcfeed><fs:itemid>feedsky/yidie/~6147565/361791474/4255515</fs:itemid></item></channel></rss>
