<?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/tank_fs4t" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/tank_fs4t" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 12 Jan 2012 09:18:46 GMT</lastBuildDate><title>海底苍鹰(tank)博客</title><description>－－一步，二步，三步，N步，二行脚印</description><image><url>http://www.feedsky.com/feed/tank_fs4t/sc/gif</url><title>海底苍鹰(tank)博客</title><link>http://blog.51yip.com</link></image><link>http://blog.51yip.com</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Fri, 13 Jan 2012 02:53:48 GMT</pubDate><item><title>innodb优化后，29小时入库1300万条数据</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053386/6321208/1/item.html</link><content:encoded>&lt;p&gt;做广告弹窗推广，记录来源ip,url。推广征战四方游戏时，我是没有记录弹窗数的，当时预计是36时1000万IP，机子是8000多块的组装机，我怕mysql撑不起来。这次决定记录一下试试，如果mysql真的撑不起来的话，就用脚本切换成静态的。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1369&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一，网络监控图&lt;/strong&gt;&lt;/p&gt;
&lt;div id=&quot;attachment_1370&quot; class=&quot;wp-caption alignnone&quot; style=&quot;width: 310px&quot;&gt;&lt;a href=&quot;http://blog.51yip.com/wp-content/uploads/2012/01/lj_tg_tr.jpg&quot;&gt;&lt;img class=&quot;size-medium wp-image-1370&quot; title=&quot;网络流量监控&quot; src=&quot;http://blog.51yip.com/wp-content/uploads/2012/01/lj_tg_tr-300x74.jpg&quot; alt=&quot;网络流量监控&quot; width=&quot;300&quot; height=&quot;74&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;网络流量监控&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;从上图可以看出，数据大部分都是在白天录入的。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二，数据库数据列表&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;数据库从推广开始到结束，一直在运行当中，一次没有down机。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;mysql&amp;gt; select count(*) as at from at;
+---------+
| at      |
+---------+
| 1129964 |
+---------+
1 row in set (0.67 sec)

mysql&amp;gt; select count(*) as gb from gb;
+---------+
| gb      |
+---------+
| 1629177 |
+---------+
1 row in set (0.32 sec)

mysql&amp;gt; select count(*) as jr from jr;
+---------+
| jr      |
+---------+
| 1820653 |
+---------+
1 row in set (1.01 sec)

mysql&amp;gt; select count(*) as lg from lg;
+--------+
| lg     |
+--------+
| 592303 |
+--------+
1 row in set (0.32 sec)

mysql&amp;gt; select count(*) as qd from qd;
+---------+
| qd      |
+---------+
| 1249279 |
+---------+
1 row in set (0.69 sec)

mysql&amp;gt; select count(*) as xt from xt;
+---------+
| xt      |
+---------+
| 2229205 |
+---------+
1 row in set (1.23 sec)

mysql&amp;gt; select count(*) as zs from zs;
+---------+
| zs      |
+---------+
| 3992709 |
+---------+
1 row in set (2.39 sec)

//这里是数据表对应的文件，
[root@localhost tg]# du -ah
9.1M    ./sd.ibd
85M    ./qd.ibd
4.0K    ./db.opt
12K    ./bd.frm
12K    ./zs.frm
12K    ./jr.frm
365M    ./zs.ibd
45M    ./lg.ibd
129M    ./jr.ibd
145M    ./xt.ibd
81M    ./at.ibd
113M    ./gb.ibd
12K    ./sd.frm
12K    ./xt.frm
12K    ./gb.frm
12K    ./at.frm
12K    ./qd.frm
96K    ./bd.ibd
12K    ./lg.frm
966M    .&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;三，innodb的主要优化&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt; init_connect='SET autocommit=0'    //关闭自动提交，这个对于innodb来说，很重要
 innodb-file-per-table=1            //使用独立表空间
 innodb-open-file=500               //打开最大文件数据是500，默认是300
 innodb_log_file_size=512M          //log文件大小
 innodb_log_buffer_size=8M          //缓冲日志数据的缓冲区的大小
 innodb_flush_log_at_trx_commit=0   //提交数据等级0是最快，但是有可能会丢数据
 innodb_buffer_pool_size=5G         //缓冲池大小，我把它设置内在的65%
 innodb_log_files_in_group=3        //日志文件总数
 innodb_file_io_threads=8           //根cpu核数是一样，读写文件进程数
 event_scheduler=1                  //开启动mysql event

//添加一个mysql event
CREATE EVENT `commit_event` ON SCHEDULE EVERY 5 MINUTE STARTS '2012-01-04 19:06:26' ON COMPLETION NOT PRESERVE ENABLE DO COMMit
&lt;/pre&gt;
&lt;p&gt;1,自动提交对innodb的影响非常大的，这个我做过测试，请参考,&lt;a title=&quot;mysql autocommit对myisam,innodb的性能影响&quot; href=&quot;http://blog.51yip.com/mysql/1231.html&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;mysql autocommit对myisam,innodb的性能影响&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;2,innodb_flush_log_at_trx_commit我把它设置成0，我只要求速度最快，最是统计推广的弹窗，这些数据只是为了我们后期统计和分析用的，没有太大的价值。如果数据很重要就不要设置成0了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;0&lt;/strong&gt;代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘.&lt;br /&gt;
&lt;strong&gt;1&lt;/strong&gt;InnoDB会在每次提交后刷新(fsync)事务日志到磁盘上&lt;br /&gt;
&lt;strong&gt;2&lt;/strong&gt;代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.&lt;/p&gt;
&lt;p&gt;3,还有一点就是我用了mysql event功能，根linux的crontab差不多，以前没在生产环境中用过mysql event，这次试了一下，还是挺给力的。关于mysql event请参考，&lt;a title=&quot;mysql event 是什么，有什么用&quot; href=&quot;http://blog.51yip.com/mysql/1253.html&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;mysql event 是什么，有什么用&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1369&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053386/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053386/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/mysql/1369.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>做广告弹窗推广，记录来源ip,url。推广征战四方游戏时，我是没有记录弹窗数的，当时预计是36时1000万IP，机子是8000多块的组装机，我怕mysql撑不起来。这次决定记录一下试试，如果mysql真的撑不起来的话，就用脚本切换成静态的。

一，网络监控图
从上图可以看出，数据大部分都是在白天录入的。
二，数据库数据列表
数据库从推广开始到结束，一直在运行当中，一次没有down机。
mysql&amp;#62; select count(*) as at from at;
+---------+
&amp;#124; at      &amp;#124;
+---------+
&amp;#124; 1129964 &amp;#124;
+---------+
1 row in set (0.67 sec)

mysql&amp;#62; select count(*) as gb from gb;
+---------+
&amp;#124; gb      &amp;#124;
+---------+
&amp;#124; 1629177 &amp;#124;
+---------+
1 row in set (0.32 sec)

mysql&amp;#62; select count(*) as jr from jr;
+---------+
&amp;#124; jr      &amp;#124;
+---------+
&amp;#124; 1820653 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/596053386/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053386/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>mysql</category><category>innodb</category><pubDate>Thu, 12 Jan 2012 17:18:46 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/mysql/1369.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1369</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/mysql/1369.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053386/6321208</fs:itemid></item><item><title>innodb 共享表空间 转 独立表空间 详细说明，以及遇到的问题</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053387/6321208/1/item.html</link><content:encoded>&lt;p&gt;最近在优化mysql innodb存储引擎，准备把共享表空间转换成独立表空间。刚开始的没考虑这么多，过段时间又要推广，所以优化一下，看看效果如何。说一个转换过程。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1368&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1,查看一下是共享表空间，还是独立表空间&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;mysql&amp;gt; show variables like '%per_table%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | OFF   |
+-----------------------+-------+
1 row in set (0.00 sec)&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;如果是OFF，肯定不是独立表空间。如果是ON的话，也不一定是独立表空间。最直接的方法就是查看硬盘上的文件，独立表空间，每个表都对应了一个空间。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;[root@localhost tg]# ll
总用量 64
-rw-rw----. 1 mysql mysql   65 12月 30 20:09 db.opt
-rw-rw----. 1 mysql mysql 8658 12月 30 23:17 gb.frm
-rw-rw----. 1 mysql mysql 8658 12月 30 23:19 qr.frm
-rw-rw----. 1 mysql mysql 8658 12月 30 23:19 qy.frm
-rw-rw----. 1 mysql mysql 8658 12月 30 23:19 tg.frm
-rw-rw----. 1 mysql mysql 8658 12月 30 23:19 xcy.frm&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;tg是一个数据库名，里面的都是innodb的。像这种情况就是共享表空间。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2,停掉mysql&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;/etc/init.d/mysqld stop&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;3,修改my.cnf的配置文件&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;innodb-file-per-table=1&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;4,备份使用innodb引擎的数据库&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;mysqldump -u tg -p tg &amp;gt;/home/6fan/tg.sql;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;5,删除使用innodb的数据库，以及日志文件&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;cd /var/lib/mysql    //数据库文件位置

rm -f ib*           //删除日志和空间

rm -rf tg           //删除使用innodb引擎的数据库文件夹&lt;/pre&gt;
&lt;p&gt;如果不删除使用innodb的数据库文件夹，启动不了innodb引擎，我查看了一下错误日志。如下&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;111231 20:54:44  InnoDB: Log file ./ib_logfile0 did not exist: new to be created&lt;br /&gt;
InnoDB: Setting log file ./ib_logfile0 size to 512 MB&lt;br /&gt;
InnoDB: Database physically writes the file full: wait...&lt;br /&gt;
InnoDB: Progress in MB: 100 200 300 400 500&lt;br /&gt;
111231 20:54:50  InnoDB: Log file ./ib_logfile1 did not exist: new to be created&lt;br /&gt;
InnoDB: Setting log file ./ib_logfile1 size to 512 MB&lt;br /&gt;
InnoDB: Database physically writes the file full: wait...&lt;br /&gt;
InnoDB: Progress in MB: 100 200 300 400 500&lt;br /&gt;
InnoDB: Cannot initialize created log files because&lt;br /&gt;
InnoDB: data files are corrupt, or new data files were&lt;br /&gt;
InnoDB: created when the database was started previous&lt;br /&gt;
InnoDB: time but the database was not shut down&lt;br /&gt;
InnoDB: normally after that.&lt;br /&gt;
111231 20:54:55 [ERROR] Plugin 'InnoDB' init function returned error.&lt;br /&gt;
111231 20:54:55 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.&lt;br /&gt;
111231 20:54:55 [Note] Event Scheduler: Loaded 0 events&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6,启动mysql&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;/etc/init.d/mysqld start&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;7,导入数据库&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;mysql -u root -p  &amp;lt; /home/6fan/tg.sql&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;8,在查看一下，是转换好了&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;//进入到mysql后的查寻
mysql&amp;gt; show variables like '%per_table%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON   |
+-----------------------+-------+
1 row in set (0.00 sec)

//查看数据库目录下的文件
[root@localhost tg]# ll
总用量 544
-rw-rw----. 1 mysql mysql    65 12月 31 22:48 db.opt
-rw-rw----. 1 mysql mysql  8658 12月 31 22:49 gb.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 gb.ibd
-rw-rw----. 1 mysql mysql  8658 12月 31 22:49 qr.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 qr.ibd
-rw-rw----. 1 mysql mysql  8658 12月 31 22:49 qy.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 qy.ibd
-rw-rw----. 1 mysql mysql  8658 12月 31 22:49 tg.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 tg.ibd
-rw-rw----. 1 mysql mysql  8658 12月 31 22:49 xcy.frm
-rw-rw----. 1 mysql mysql 98304 12月 31 22:49 xcy.ibd&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;从这里可以看出，每一张表都对应有一个.ibd的文件，根共享表空间是不一样的。到这儿就完全配置好了。&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1368&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053387/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053387/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/mysql/1368.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>最近在优化mysql innodb存储引擎，准备把共享表空间转换成独立表空间。刚开始的没考虑这么多，过段时间又要推广，所以优化一下，看看效果如何。说一个转换过程。

1,查看一下是共享表空间，还是独立表空间
mysql&amp;#62; show variables like '%per_table%';
+-----------------------+-------+
&amp;#124; Variable_name         &amp;#124; Value &amp;#124;
+-----------------------+-------+
&amp;#124; innodb_file_per_table &amp;#124; OFF   &amp;#124;
+-----------------------+-------+
1 row in set (0.00 sec)
如果是OFF，肯定不是独立表空间。如果是ON的话，也不一定是独立表空间。最直接的方法就是查看硬盘上的文件，独立表空间，每个表都对应了一个空间。
[root@localhost tg]# ll
总用量 64
-rw-rw----. 1 mysql mysql   65 12月 30 20:09 db.opt
-rw-rw----. 1 mysql mysql 8658 12月 30 23:17 gb.frm
-rw-rw----. 1 mysql mysql 8658 12月 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/596053387/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053387/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>独立表空间</category><category>mysql</category><category>innodb</category><category>共享表空间</category><pubDate>Sat, 31 Dec 2011 16:00:04 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/mysql/1368.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1368</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/mysql/1368.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053387/6321208</fs:itemid></item><item><title>innodb_log_file_size innodb不能启用</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053388/6321208/1/item.html</link><content:encoded>&lt;p&gt;修改innodb_log_file_size后，innodb不能启用。并且/etc/init.d/mysqld  restart重启的时候，还不提示任何错误。当我用mysql&amp;gt; show  engines;看的时候，innodb就没有了，我汗。我查看一下log日志，/var/log/mysqld.log发现有报错的地方。如下&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1367&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;111231 04:59:17 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid end&lt;br /&gt;
111231 04:59:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql&lt;br /&gt;
&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;InnoDB: than specified in the .cnf file 0 268435456 bytes!&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
111231  4:59:18 [ERROR] Plugin 'InnoDB' init function returned error.&lt;br /&gt;
111231  4:59:18 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;[root@localhost mysql]# rm -f ib_logfile*&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;然后重起一下mysql就OK了，感觉这个不人性，我觉得如果innodb_log_file_size修改了以后，ib_logfile这类文件就应当自动变成设置后的大小，如果不能自动变成设置后的大小，重启mysql的时候，也应当有提示。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1367&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053388/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053388/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/mysql/1367.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>修改innodb_log_file_size后，innodb不能启用。并且/etc/init.d/mysqld  restart重启的时候，还不提示任何错误。当我用mysql&amp;#62; show  engines;看的时候，innodb就没有了，我汗。我查看一下log日志，/var/log/mysqld.log发现有报错的地方。如下

111231 04:59:17 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid end
111231 04:59:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
111231  4:59:18 [ERROR] Plugin 'InnoDB' init function returned error.
111231  4:59:18 [ERROR] Plugin 'InnoDB' [...]&lt;img src=&quot;http://www1.feedsky.com/t1/596053388/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053388/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>mysql</category><category>innodb_log_file_size</category><pubDate>Fri, 30 Dec 2011 21:41:28 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/mysql/1367.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1367</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/mysql/1367.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053388/6321208</fs:itemid></item><item><title>影响项目进度的几大因素</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053389/6321208/1/item.html</link><content:encoded>&lt;p&gt;从事互联网行业快6年了，每家互联网公司都有自己的团队。我去过的公司很多，各部门协调不好的话，进度慢，并且大家还累的要死，说一下脑子里印象比较深的几个。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1365&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;1，需求变动&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;这一点是最要命的，需求如果没有书面的形势确定下来的话，就比较容易变动。人的思想都是不断改变的，今天一个想法，明天一个想法这谁都受不了。想法的不同可能会导致程序要重开发，或者数据库要重新设计。这样的情况，做程序的肯定都遇到过。,&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;有的情况是这样的，根别人有合作，假如有100合作伙伴，这100家可能会提出100种可能性，并且这100个需求并不是一次给你的，可能开始的时候只有10种需求，后来需求越来越多，最终的结果是，如果不进行数据库重设计或者代码重构根本满足不了这种需求。或者是做了很多个小系统，来满足不同用户的需 求，这样后期维护就是杯具。&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;需求变动有的时候是避免不了得，随着时间的推移，需求肯定会有所变化的，但是要以书面或者是电子档的形势来确定下来，这里确定只是一个阶段，确定下来就有了依据，至少提需求的人会认真的思考，会尽量把需求提得更清楚，更全面，对于他来说也是一种责任。如果真的有需求变动，要在原来的基础上有所改进，也要等到一期做完。因为改进是永无止静的，没有最好，只有更好，所以这种改进要一步一步完成，不能一口吃个胖子。&lt;/p&gt;
&lt;p&gt;2,不要为了赶进度，而忽视质量&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;当进度表，安排下去了以后，人手不够，任务重，所以大家都重进度，轻质量。这个必须自己把好关，测试人员把好关，一块一块完成，而不能把小问题全部放到后期来改，这样的话，后期的压力比较大。&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;举个例子：套模板，模板基本都是死的，套上程序后（比如做了一些特效），样式上会根静态的模块有可能会不同，这样的问题积累多了的话，到后来在根前端配合改，会很累，做前端的还不能统畴考虑。所以遇到这样的问题，一开始就和前端配合，这样前端也能了解到，套过后样式的不同等。这样后期bug会少很多。&lt;/p&gt;
&lt;p&gt;3,能力不行的，尽早让他走人，对别人，对自己都是有利的&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;我觉得自己就不够狠，因为必尽在外面的人都不容易。有的时候遇到问题，又解决不了，我就能帮就帮了。这样不是帮别人是害人，这就好比中学生给小学生做家庭做业一样，这样帮下去，他已然不会成长。这个时候不能帮，让他自己去解决，在解决的过程中，提高自己的抗压能力，提问自己解决问题的能力，长期以往的话，能形成自己的一种思想。我就遇到过这样的人，技术不错，但是思想不行，可以用鬼异来形容。导致后来，那个人写的逻辑部全部重写。这样时间就浪费了。&lt;/p&gt;
&lt;p&gt;4,责任心要强&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;责任心很重要，如果我手头上有很多工作，没有完成，我什么时候都会想着它，做地铁都会做过站。但是也有一些人，可以说根本没有责任心。&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;就以改bug为例吧，把一个bug交给别人，过一段时间问他，改好了没有，他说改好了，我一看根本没有改好不说，还又改出来一些bug，像这种人尽快的让他离开。到后来基本上团队里面的对他都不信认了。对别人负责任，就是对自己负责任。&lt;/p&gt;
&lt;p&gt;5,学会勾通，善于勾通&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;怎么样把自己的想法很清楚的告诉别人，怎么样很快的了解别人是怎么想的。这不是件容易的事。我总结了一下，要学会站在别人的立场上考虑问题。做程序，还是做其他的都要有自己的思想，不能别人说什么就是什么。别人说的就一定是对的，一定是最好的吗？多种想法的碰撞后，才会有精华出来。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1365&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053389/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053389/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/other/1365.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>从事互联网行业快6年了，每家互联网公司都有自己的团队。我去过的公司很多，各部门协调不好的话，进度慢，并且大家还累的要死，说一下脑子里印象比较深的几个。

1，需求变动
这一点是最要命的，需求如果没有书面的形势确定下来的话，就比较容易变动。人的思想都是不断改变的，今天一个想法，明天一个想法这谁都受不了。想法的不同可能会导致程序要重开发，或者数据库要重新设计。这样的情况，做程序的肯定都遇到过。,
有的情况是这样的，根别人有合作，假如有100合作伙伴，这100家可能会提出100种可能性，并且这100个需求并不是一次给你的，可能开始的时候只有10种需求，后来需求越来越多，最终的结果是，如果不进行数据库重设计或者代码重构根本满足不了这种需求。或者是做了很多个小系统，来满足不同用户的需 求，这样后期维护就是杯具。
需求变动有的时候是避免不了得，随着时间的推移，需求肯定会有所变化的，但是要以书面或者是电子档的形势来确定下来，这里确定只是一个阶段，确定下来就有了依据，至少提需求的人会认真的思考，会尽量把需求提得更清楚，更全面，对于他来说也是一种责任。如果真的有需求变动，要在原来的基础上有所改进，也要等到一期做完。因为改进是永无止静的，没有最好，只有更好，所以这种改进要一步一步完成，不能一口吃个胖子。
2,不要为了赶进度，而忽视质量
当进度表，安排下去了以后，人手不够，任务重，所以大家都重进度，轻质量。这个必须自己把好关，测试人员把好关，一块一块完成，而不能把小问题全部放到后期来改，这样的话，后期的压力比较大。
举个例子：套模板，模板基本都是死的，套上程序后（比如做了一些特效），样式上会根静态的模块有可能会不同，这样的问题积累多了的话，到后来在根前端配合改，会很累，做前端的还不能统畴考虑。所以遇到这样的问题，一开始就和前端配合，这样前端也能了解到，套过后样式的不同等。这样后期bug会少很多。
3,能力不行的，尽早让他走人，对别人，对自己都是有利的
我觉得自己就不够狠，因为必尽在外面的人都不容易。有的时候遇到问题，又解决不了，我就能帮就帮了。这样不是帮别人是害人，这就好比中学生给小学生做家庭做业一样，这样帮下去，他已然不会成长。这个时候不能帮，让他自己去解决，在解决的过程中，提高自己的抗压能力，提问自己解决问题的能力，长期以往的话，能形成自己的一种思想。我就遇到过这样的人，技术不错，但是思想不行，可以用鬼异来形容。导致后来，那个人写的逻辑部全部重写。这样时间就浪费了。
4,责任心要强
责任心很重要，如果我手头上有很多工作，没有完成，我什么时候都会想着它，做地铁都会做过站。但是也有一些人，可以说根本没有责任心。
就以改bug为例吧，把一个bug交给别人，过一段时间问他，改好了没有，他说改好了，我一看根本没有改好不说，还又改出来一些bug，像这种人尽快的让他离开。到后来基本上团队里面的对他都不信认了。对别人负责任，就是对自己负责任。
5,学会勾通，善于勾通
怎么样把自己的想法很清楚的告诉别人，怎么样很快的了解别人是怎么想的。这不是件容易的事。我总结了一下，要学会站在别人的立场上考虑问题。做程序，还是做其他的都要有自己的思想，不能别人说什么就是什么。别人说的就一定是对的，一定是最好的吗？多种想法的碰撞后，才会有精华出来。
收藏、分享这篇文章!&lt;img src=&quot;http://www1.feedsky.com/t1/596053389/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053389/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>技术其他</category><category>linux</category><category>互连网</category><category>项目进度</category><pubDate>Fri, 30 Dec 2011 18:47:57 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/other/1365.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1365</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/other/1365.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053389/6321208</fs:itemid></item><item><title>互联网创业那点事</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053390/6321208/1/item.html</link><content:encoded>&lt;p&gt;如果你觉得自己还年轻，如果你觉得自己还有激情和自信，如果你不想在为了死工资而活着，你能猜想出自己十年后是什么样子的话。那么就出来做一次，成功了当然是更好了，如果不成功，大不了从头在来。说好听一点是创业，说的不好听一点，现在亏一点搏一个机会，其实还是为了多挣点。以小搏大而已。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1363&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;从公司成立，今天到今天网站上线一个多月，上了二款游戏，魔神战记和征战四方，对于我来说，一期目标已经实现了。公司6月份成立，什么都没有，到现在已有5个人的团队，维护网站稳定的运行，心里还是挺高兴的。这段时间可以形容为痛并快乐着。感觉自己的这些经历对一些人来说，还是有用的。&lt;/p&gt;
&lt;p&gt;1,选择一个好的方向。&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;这个很重，这个决定了，你以后的努力会不会化成泡影。方向是自己在社会上混的时候，发现的，加上平时的思考，分析总结，确定下来的。&lt;/p&gt;
&lt;p&gt;2,创业要有信心，实力，耐心&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;选择创业，要有足够的信心，信心源于实力。要相信自己能做好，当有几十页项目需求文档给你时，而且团队成员基本上只有你自己时，这个时候不要害怕，要有耐 心，静下心好好规划招人，以及项目进度。而不是怀疑自己能不能完成。小时候根爸妈一起种地的时候，一大片地要犁地，刨坑，播种，浇水等，说实话我不知道什么时候能干完。发牢骚的时候就说，这什么时候能干完啊。我妈说了一句，到现在我还时时刻刻记在心里。我妈说，眼是孬种，手是英雄，胳膊是好汉。&lt;/p&gt;
&lt;p&gt;3,创业要有激情&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;既然选择了创业，你就要牺牲掉很多时间，创业不是享受的。也许你在大公司里面呆习惯了，压力不大，工作量也不是很大。根本不需要什么加班，偶尔会加一加，一个月的工作量有可能半个月就完成了。创业期受到资金，招人难的影响，一个人可能要顶二个人用，甚至是三个人用，加班就是家常便饭了。既想创业，又想舒舒服服的，这是不可能的。&lt;/p&gt;
&lt;p&gt;4,有能力也要量力而行&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;人的精力是有限的，公司刚成立不久，什么都没有，你要采购电脑;要搭建开发测试环境，以及平时的运维;你要负责人员招聘，需求分析，负责数据库设计，程序开发，工作分配，项目进度控制，以及人员管理等等。恨不得把自己劈成几份。即使是加班也感觉总有做不完的事。&lt;/p&gt;
&lt;p&gt;5,小公司学做事，大公司学做人&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;创业期千万不要搞什么权力斗争，拉帮结派，这样做最终的结果就是公司倒闭。09年的时候我去一家创业性公司，当时我只是一个php高级工程师，根本就不会卷到权力里面去。做了不到二个月，有一个程序走了，过了又不到一个月项目经理走了，搞得很莫名其妙，我打电话问怎么回事，同事说老板把他辞了，后来我也走 了，在后来我们当时五个程序只剩一个人，当了项目经理，那个人又招了几个程序都是他的朋友。在后来，更离谱的是技术总监差点被他搞走了。后来我们在一起聚会的时候，总结一句话老板是个傻X，喜欢听背后的话，总认为背后的话是真的，当面说的都是假的。过完年过来，听说好像公司就倒了。还好现在的公司没有喜欢搞权力斗争的人。如果有直接让他走人。&lt;/p&gt;
&lt;p&gt;6,该花的钱一定要花&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;个人的能力是根薪水成正比的，能力强，工资肯定高，这是必然的，低薪高能，这种人迟早会辞职的， 又想马儿跑的快，又要马儿不吃草，怎么可能。创业的时候尽量要招能力强的，可以独挡一面的程序。招人只是其中一方面。例如：买的服务器比较不错，配了个 100多块钱的交换机就不合适了。&lt;/p&gt;
&lt;p&gt;7,要有失败的心里准备&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;互联风创业失败的机率很高，成功的也就10%左右，万一失败了，不要经不起打击，做了想不开的事。只要有健康的身体，大不了从头在来。愿在这条路上的人一路走好。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1363&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053390/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053390/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/other/1363.html/feed</wfw:commentRss><slash:comments>4</slash:comments><description>如果你觉得自己还年轻，如果你觉得自己还有激情和自信，如果你不想在为了死工资而活着，你能猜想出自己十年后是什么样子的话。那么就出来做一次，成功了当然是更好了，如果不成功，大不了从头在来。说好听一点是创业，说的不好听一点，现在亏一点搏一个机会，其实还是为了多挣点。以小搏大而已。

从公司成立，今天到今天网站上线一个多月，上了二款游戏，魔神战记和征战四方，对于我来说，一期目标已经实现了。公司6月份成立，什么都没有，到现在已有5个人的团队，维护网站稳定的运行，心里还是挺高兴的。这段时间可以形容为痛并快乐着。感觉自己的这些经历对一些人来说，还是有用的。
1,选择一个好的方向。
这个很重，这个决定了，你以后的努力会不会化成泡影。方向是自己在社会上混的时候，发现的，加上平时的思考，分析总结，确定下来的。
2,创业要有信心，实力，耐心
选择创业，要有足够的信心，信心源于实力。要相信自己能做好，当有几十页项目需求文档给你时，而且团队成员基本上只有你自己时，这个时候不要害怕，要有耐 心，静下心好好规划招人，以及项目进度。而不是怀疑自己能不能完成。小时候根爸妈一起种地的时候，一大片地要犁地，刨坑，播种，浇水等，说实话我不知道什么时候能干完。发牢骚的时候就说，这什么时候能干完啊。我妈说了一句，到现在我还时时刻刻记在心里。我妈说，眼是孬种，手是英雄，胳膊是好汉。
3,创业要有激情
既然选择了创业，你就要牺牲掉很多时间，创业不是享受的。也许你在大公司里面呆习惯了，压力不大，工作量也不是很大。根本不需要什么加班，偶尔会加一加，一个月的工作量有可能半个月就完成了。创业期受到资金，招人难的影响，一个人可能要顶二个人用，甚至是三个人用，加班就是家常便饭了。既想创业，又想舒舒服服的，这是不可能的。
4,有能力也要量力而行
人的精力是有限的，公司刚成立不久，什么都没有，你要采购电脑;要搭建开发测试环境，以及平时的运维;你要负责人员招聘，需求分析，负责数据库设计，程序开发，工作分配，项目进度控制，以及人员管理等等。恨不得把自己劈成几份。即使是加班也感觉总有做不完的事。
5,小公司学做事，大公司学做人
创业期千万不要搞什么权力斗争，拉帮结派，这样做最终的结果就是公司倒闭。09年的时候我去一家创业性公司，当时我只是一个php高级工程师，根本就不会卷到权力里面去。做了不到二个月，有一个程序走了，过了又不到一个月项目经理走了，搞得很莫名其妙，我打电话问怎么回事，同事说老板把他辞了，后来我也走 了，在后来我们当时五个程序只剩一个人，当了项目经理，那个人又招了几个程序都是他的朋友。在后来，更离谱的是技术总监差点被他搞走了。后来我们在一起聚会的时候，总结一句话老板是个傻X，喜欢听背后的话，总认为背后的话是真的，当面说的都是假的。过完年过来，听说好像公司就倒了。还好现在的公司没有喜欢搞权力斗争的人。如果有直接让他走人。
6,该花的钱一定要花
个人的能力是根薪水成正比的，能力强，工资肯定高，这是必然的，低薪高能，这种人迟早会辞职的， 又想马儿跑的快，又要马儿不吃草，怎么可能。创业的时候尽量要招能力强的，可以独挡一面的程序。招人只是其中一方面。例如：买的服务器比较不错，配了个 100多块钱的交换机就不合适了。
7,要有失败的心里准备
互联风创业失败的机率很高，成功的也就10%左右，万一失败了，不要经不起打击，做了想不开的事。只要有健康的身体，大不了从头在来。愿在这条路上的人一路走好。
收藏、分享这篇文章!&lt;img src=&quot;http://www1.feedsky.com/t1/596053390/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053390/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>技术其他</category><category>双眼看社会</category><category>创业</category><pubDate>Wed, 28 Dec 2011 19:54:47 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/other/1363.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1363</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/other/1363.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053390/6321208</fs:itemid></item><item><title>带宽不够引发的问题</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053391/6321208/1/item.html</link><content:encoded>&lt;p&gt;征战四方游戏上线，做弹窗推广，1000W ip，准备二天弹完，但是推广的第一天，就出问题了，弹窗的flash加载要7-8秒钟，这个速度太让人受不了，晚解决一分钟，减少一分的省失。我做了以下几种分析：&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1360&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;1,弹窗服务器本身有问题&lt;/p&gt;
&lt;p style=&quot;text-align: left; padding-left: 30px;&quot;&gt;弹 窗服务器，本来准备做对来源url，IP，浏览器信息等做一些监控的，这些数据可以用来分析用户行为，以及在哪一个广告联盟投放的效果比较好。1000W 的IP主要是集中在下午1点，以及晚上7点，这样集中访问加上php+mysql肯定是撑不起来的，并且弹窗服务器还是组装机。所以我只用了 nginx+varnish的方式，投放前我做了压力测试效果挺好的。1000W的IP绝对是没有问题。&lt;/p&gt;
&lt;p&gt;2,交换机有问题&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;我在弹窗服务器上装了有对服务器进行监控的软件，我发现交换机的中断实在是太高，差不多10000次/每秒，并且有30%的丢包现像。这会不会是加载flash这么慢的原因呢。&lt;/p&gt;
&lt;p&gt;3,网络带宽不够&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;当时有这样一种情况，就是清缓存，关闭浏览器，第一次加载flash的是慢，以后在刷新是非常的快，基本是瞬间就完成。我就想是不是服务器的带宽満了。打开 监控一看，二台弹窗服务器加一起，带宽最高的时候，超了有50M，正常情况下，也超了20M，怪不得交换机中断那么高，并且丢包率那么高了。&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;
&lt;div id=&quot;attachment_1361&quot; class=&quot;wp-caption alignnone&quot; style=&quot;width: 310px&quot;&gt;&lt;a href=&quot;http://blog.51yip.com/wp-content/uploads/2011/12/tg.jpg&quot;&gt;&lt;img class=&quot;size-medium wp-image-1361&quot; title=&quot;网络监控1&quot; src=&quot;http://blog.51yip.com/wp-content/uploads/2011/12/tg-300x76.jpg&quot; alt=&quot;网络监控1&quot; width=&quot;300&quot; height=&quot;76&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;网络监控1&lt;/p&gt;&lt;/div&gt;
&lt;div id=&quot;attachment_1362&quot; class=&quot;wp-caption alignnone&quot; style=&quot;width: 310px&quot;&gt;&lt;a href=&quot;http://blog.51yip.com/wp-content/uploads/2011/12/tg1.jpg&quot;&gt;&lt;img class=&quot;size-medium wp-image-1362&quot; title=&quot;网络监控2&quot; src=&quot;http://blog.51yip.com/wp-content/uploads/2011/12/tg1-300x76.jpg&quot; alt=&quot;网络监控2&quot; width=&quot;300&quot; height=&quot;76&quot; /&gt;&lt;/a&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;网络监控2&lt;/p&gt;&lt;/div&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;带 宽买的是100M独享的，二台弹窗服务器共享这100M，如果1000W  IP平均分布在二个白天的12小时内的话，差不多也够，可是主要集中在下午1点以后，以及晚上7点以后。带宽估计不足。我打电话到IDC，叫他们把宽带临 时调到各独享100M，果不其然加高了以后，flash加载由以前7-8秒时间，缩短到1秒左右。并且交换中断也下降了，丢包基本上在2%左右。之后我一 直盯着监控在看，我发现在其中一台机器，带宽封顶是80M，并且豆带宽达到80M后，flash加载又变的很慢，交换器中断和丢包率又高了。我又打电话去 IDC，问怎么回事，后来告诉我说，那一台弹窗服务器用的网线是4类线，4类线现在都很难买到了，我晕。后来帮我换了5类线就好了，唉。感觉这次推广真是 不顺利，不过还好没有持续多长时间，要不然就杯具了。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1360&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053391/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053391/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/server/1360.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>征战四方游戏上线，做弹窗推广，1000W ip，准备二天弹完，但是推广的第一天，就出问题了，弹窗的flash加载要7-8秒钟，这个速度太让人受不了，晚解决一分钟，减少一分的省失。我做了以下几种分析：

1,弹窗服务器本身有问题
弹 窗服务器，本来准备做对来源url，IP，浏览器信息等做一些监控的，这些数据可以用来分析用户行为，以及在哪一个广告联盟投放的效果比较好。1000W 的IP主要是集中在下午1点，以及晚上7点，这样集中访问加上php+mysql肯定是撑不起来的，并且弹窗服务器还是组装机。所以我只用了 nginx+varnish的方式，投放前我做了压力测试效果挺好的。1000W的IP绝对是没有问题。
2,交换机有问题
我在弹窗服务器上装了有对服务器进行监控的软件，我发现交换机的中断实在是太高，差不多10000次/每秒，并且有30%的丢包现像。这会不会是加载flash这么慢的原因呢。
3,网络带宽不够
当时有这样一种情况，就是清缓存，关闭浏览器，第一次加载flash的是慢，以后在刷新是非常的快，基本是瞬间就完成。我就想是不是服务器的带宽満了。打开 监控一看，二台弹窗服务器加一起，带宽最高的时候，超了有50M，正常情况下，也超了20M，怪不得交换机中断那么高，并且丢包率那么高了。

带 宽买的是100M独享的，二台弹窗服务器共享这100M，如果1000W  IP平均分布在二个白天的12小时内的话，差不多也够，可是主要集中在下午1点以后，以及晚上7点以后。带宽估计不足。我打电话到IDC，叫他们把宽带临 时调到各独享100M，果不其然加高了以后，flash加载由以前7-8秒时间，缩短到1秒左右。并且交换中断也下降了，丢包基本上在2%左右。之后我一 直盯着监控在看，我发现在其中一台机器，带宽封顶是80M，并且豆带宽达到80M后，flash加载又变的很慢，交换器中断和丢包率又高了。我又打电话去 IDC，问怎么回事，后来告诉我说，那一台弹窗服务器用的网线是4类线，4类线现在都很难买到了，我晕。后来帮我换了5类线就好了，唉。感觉这次推广真是 不顺利，不过还好没有持续多长时间，要不然就杯具了。
收藏、分享这篇文章!&lt;img src=&quot;http://www1.feedsky.com/t1/596053391/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053391/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>linux</category><category>服务器相关</category><category>带宽</category><pubDate>Wed, 28 Dec 2011 11:37:43 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/server/1360.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1360</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/server/1360.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053391/6321208</fs:itemid></item><item><title>双网卡，双IP配置，加静态路由</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053392/6321208/1/item.html</link><content:encoded>&lt;p&gt;北网通，南电信的问题是很让人郁闷的一件，这也是河蟹社会的一种特色吧。为了解决这个问题，我考虑过三种方案：&lt;/p&gt;
&lt;p&gt;1,双网卡，双IP；或者单网卡，双IP。&lt;/p&gt;
&lt;p&gt;这种方案，成本低，但是维护挺麻烦，并且速度比后面二个要慢。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1358&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;2,BGP双线机房。&lt;/p&gt;
&lt;p&gt;BGP的费用要比第一种方案要高，但是全国真正是BGP机房的到底有多少，应当就那么几家。其他假的比较多。用这种方案就不用在搞双IP了，一个IP就OK。&lt;/p&gt;
&lt;p&gt;3,CDN加速&lt;/p&gt;
&lt;p&gt;CDN的价格是最高，买的是dell r410的服务器，拖管在机房，带宽160元/m/月，还是熟人才拿到这价格。我和chinacache的客户经理当面谈过，刚开始的价格是400元/m/月，后来我说是我朋友推荐的，直接降到200元/m/月，这价格降的真是离谱。我有一个linux运维的QQ群，在里面问chinacache的CDN多少钱一个月一M，有得说100多元/m/月，有的说900多元/m/月，卧槽，这差别太大。感觉不规范，所以没用，现在和朋友一起创业，能省就省，所以我选择了第一种方案。扯了这么多，进入正题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一，服务器服务安排&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;服务器，我准备了三台dell r410的机器，&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;1,web服务器&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;2,mysql服务器&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;3,文件服务器&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;每台服务器有二个网卡，eth1走内网，eth0走外网，并且网通和电信都走eth0，这样的方式我个人觉得比一个网卡走网通，一个网卡走电信要快。在交换机上设置二个vlan一个走内网，一个走外网，交换机设置就不在这儿多说了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二，网络配置&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1,cd /etc/sysconfig/network-scripts&lt;/p&gt;
&lt;p&gt;2,修改 ifcfg-eth1&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;[root@localhost network-scripts]# cat ifcfg-eth1
DEVICE=&quot;eth1&quot;
NM_CONTROLLED=&quot;yes&quot;
ONBOOT=&quot;yes&quot;
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.2
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=&quot;System eth1&quot;
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
HWADDR=78:2B:CB:57:28:E5&lt;/pre&gt;
&lt;p&gt;3,修改ifcfg-eth0&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;[root@localhost network-scripts]# cat ifcfg-eth0
DEVICE=&quot;eth0&quot;
NM_CONTROLLED=&quot;yes&quot;
ONBOOT=&quot;yes&quot;
TYPE=Ethernet
BOOTPROTO=none
IPADDR=222.121.121.121
PREFIX=24
GATEWAY=222.121.121.1
NETMASK=255.255.255.128
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=&quot;System eth0&quot;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04
HWADDR=78:2B:CB:57:28:E6&lt;/pre&gt;
&lt;p&gt;4,cp ifcfg-eth0 ifcfg-eth0:0&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;[root@localhost network-scripts]# cat ifcfg-eth0:0
DEVICE=&quot;eth0:0&quot;
NM_CONTROLLED=&quot;yes&quot;
ONBOOT=&quot;yes&quot;
TYPE=Ethernet
BOOTPROTO=none
IPADDR=112.121.121.121
PREFIX=24
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=&quot;System eth0&quot;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04
HWADDR=78:2B:CB:57:28:E6&lt;/pre&gt;
&lt;p&gt;5,重起网络/etc/init.d/network restart&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;到这儿，双网卡，双IP基本上就配置好，但是网通和电信都是走的电信的网关，这样的话丢包会比较严重的。解决这个问题，有二个比较好的方法，一是加静态路由，一是加策略路由。我用的方法是加静态路由。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;三，添加静态路由&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;route add -net 1.24.0.0 netmask 255.248.0.0 gw 60.12.105.145 dev eth0:0&lt;br /&gt;
route add -net 1.56.0.0 netmask 255.248.0.0 gw 60.12.105.145 dev eth0:0&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;上面是通过命令来加的，&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;如果是双网卡的要加上dev的&lt;/strong&gt;&lt;/span&gt;。因为静态路由有很多条，所以还是一起加比较好。&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;1,vim route.sh&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;2,把route add全部加到 route.sh里面&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;3,chmod +x route.sh&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;4,开机启动echo &quot;sh /路径/route.sh&quot; &amp;gt;&amp;gt; /etc/rc.local&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;下载&lt;a title=&quot;网通路由&quot; href=&quot;http://blog.51yip.com/wp-content/uploads/2011/12/route.txt&quot;&gt;&lt;strong&gt;网通路由&lt;/strong&gt;&lt;/a&gt;，下载下来后，根据实际情况后修改&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1358&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053392/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053392/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/server/1358.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>北网通，南电信的问题是很让人郁闷的一件，这也是河蟹社会的一种特色吧。为了解决这个问题，我考虑过三种方案：
1,双网卡，双IP；或者单网卡，双IP。
这种方案，成本低，但是维护挺麻烦，并且速度比后面二个要慢。

2,BGP双线机房。
BGP的费用要比第一种方案要高，但是全国真正是BGP机房的到底有多少，应当就那么几家。其他假的比较多。用这种方案就不用在搞双IP了，一个IP就OK。
3,CDN加速
CDN的价格是最高，买的是dell r410的服务器，拖管在机房，带宽160元/m/月，还是熟人才拿到这价格。我和chinacache的客户经理当面谈过，刚开始的价格是400元/m/月，后来我说是我朋友推荐的，直接降到200元/m/月，这价格降的真是离谱。我有一个linux运维的QQ群，在里面问chinacache的CDN多少钱一个月一M，有得说100多元/m/月，有的说900多元/m/月，卧槽，这差别太大。感觉不规范，所以没用，现在和朋友一起创业，能省就省，所以我选择了第一种方案。扯了这么多，进入正题。
一，服务器服务安排
服务器，我准备了三台dell r410的机器，
1,web服务器
2,mysql服务器
3,文件服务器
每台服务器有二个网卡，eth1走内网，eth0走外网，并且网通和电信都走eth0，这样的方式我个人觉得比一个网卡走网通，一个网卡走电信要快。在交换机上设置二个vlan一个走内网，一个走外网，交换机设置就不在这儿多说了。
二，网络配置
1,cd /etc/sysconfig/network-scripts
2,修改 ifcfg-eth1
[root@localhost network-scripts]# cat ifcfg-eth1
DEVICE=&quot;eth1&quot;
NM_CONTROLLED=&quot;yes&quot;
ONBOOT=&quot;yes&quot;
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.2
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=&quot;System eth1&quot;
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
HWADDR=78:2B:CB:57:28:E5
3,修改ifcfg-eth0
[root@localhost network-scripts]# cat ifcfg-eth0
DEVICE=&quot;eth0&quot;
NM_CONTROLLED=&quot;yes&quot;
ONBOOT=&quot;yes&quot;
TYPE=Ethernet
BOOTPROTO=none
IPADDR=222.121.121.121
PREFIX=24
GATEWAY=222.121.121.1
NETMASK=255.255.255.128
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=&quot;System eth0&quot;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04
HWADDR=78:2B:CB:57:28:E6
4,cp ifcfg-eth0 ifcfg-eth0:0
[root@localhost network-scripts]# cat ifcfg-eth0:0
DEVICE=&quot;eth0:0&quot;
NM_CONTROLLED=&quot;yes&quot;
ONBOOT=&quot;yes&quot;
TYPE=Ethernet
BOOTPROTO=none
IPADDR=112.121.121.121
PREFIX=24
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=&quot;System eth0&quot;
UUID=9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04
HWADDR=78:2B:CB:57:28:E6
5,重起网络/etc/init.d/network restart
到这儿，双网卡，双IP基本上就配置好，但是网通和电信都是走的电信的网关，这样的话丢包会比较严重的。解决这个问题，有二个比较好的方法，一是加静态路由，一是加策略路由。我用的方法是加静态路由。
三，添加静态路由
route add -net 1.24.0.0 netmask 255.248.0.0 gw 60.12.105.145 dev eth0:0
route add -net 1.56.0.0 netmask 255.248.0.0 gw 60.12.105.145 dev eth0:0
上面是通过命令来加的，如果是双网卡的要加上dev的。因为静态路由有很多条，所以还是一起加比较好。
1,vim route.sh
2,把route add全部加到 route.sh里面
3,chmod +x route.sh
4,开机启动echo &quot;sh /路径/route.sh&quot; &amp;#62;&amp;#62; /etc/rc.local
下载网通路由，下载下来后，根据实际情况后修改
收藏、分享这篇文章!&lt;img src=&quot;http://www1.feedsky.com/t1/596053392/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053392/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>linux</category><category>服务器相关</category><category>双ip</category><category>静态路由</category><category>双网卡</category><pubDate>Fri, 23 Dec 2011 20:32:43 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/server/1358.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1358</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/server/1358.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053392/6321208</fs:itemid></item><item><title>discuz ucenter url重写</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053393/6321208/1/item.html</link><content:encoded>&lt;p&gt;一般情况下，通过php程序将URL转成静态的形势，然后放到模板里面。但是discuz不是，它是通过正则进行全局匹配，替换而成。效率差不说，既然是匹配，总得有规则，如果模板里连接标签，规则很多就麻烦了。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1357&quot;&gt;&lt;/span&gt;discuz自带有一套模板系统，在footer.htm里面有一个，调用重写的方法&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;&amp;lt;!--{eval output();}--&amp;gt;&lt;/pre&gt;
&lt;p&gt;调用这个方法就会重写&lt;/p&gt;
&lt;p&gt;discuz后台有一套，url重写规则的主义，但是只是url中很少的一部分，至你少discuz x2是这样的。如果你想把所有的url都重写，你只有去修改他的重写方法。&lt;/p&gt;
&lt;p&gt;只要改function_core.php中的二个方法output()和rewriteoutput()就行了，怎么去写，这二个方法中有，照葫芦画瓢就行了。不过有个问题就是，匹配总是要先有规则的，如果有人不按规则来写连接，你就郁闷了，所以像这种方式的重写，是最后的选择。&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1357&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053393/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053393/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/php/1357.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>一般情况下，通过php程序将URL转成静态的形势，然后放到模板里面。但是discuz不是，它是通过正则进行全局匹配，替换而成。效率差不说，既然是匹配，总得有规则，如果模板里连接标签，规则很多就麻烦了。
discuz自带有一套模板系统，在footer.htm里面有一个，调用重写的方法
&amp;#60;!--{eval output();}--&amp;#62;
调用这个方法就会重写
discuz后台有一套，url重写规则的主义，但是只是url中很少的一部分，至你少discuz x2是这样的。如果你想把所有的url都重写，你只有去修改他的重写方法。
只要改function_core.php中的二个方法output()和rewriteoutput()就行了，怎么去写，这二个方法中有，照葫芦画瓢就行了。不过有个问题就是，匹配总是要先有规则的，如果有人不按规则来写连接，你就郁闷了，所以像这种方式的重写，是最后的选择。
收藏、分享这篇文章!&lt;img src=&quot;http://www1.feedsky.com/t1/596053393/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053393/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>url重写</category><category>php</category><category>discuz</category><category>uchome</category><pubDate>Tue, 29 Nov 2011 18:50:18 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/php/1357.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1357</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/php/1357.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053393/6321208</fs:itemid></item><item><title>ssh 批量上传文件</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053394/6321208/1/item.html</link><content:encoded>&lt;p&gt;上传文件大多数用的是ftp，但是用ftp有一点不好，就是本地和远程的目录要对应，这样就要在多个目录下去切换，这样挺麻烦的，如果不注意的话，很有可能传错。所以想了个办法利用scp来批量上传文件或者目录。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1356&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一，scp上传不要输入密码&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;如果要用scp来上传文件，第一步就要去掉scp上传时要输入密码。要不然就没办法批量上传了。具体请参考：&lt;strong&gt;&lt;a title=&quot;Permanent Link to ssh 不用输入密码&quot; rel=&quot;bookmark&quot; href=&quot;http://blog.51yip.com/linux/1351.html&quot;&gt;ssh 不用输入密码&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二，ssh批量上传脚本&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1,要上传的文件列表放到一个test文件中&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;root@ubuntu:/home/zhangy# cat test
/home/zhangy/test/aaa
/home/zhangy/test/nginx.conf

/home/zhangy/test/test.sql
/home/zhangy/test/pa.txt
/home/zhangy/test/password&lt;/pre&gt;
&lt;p&gt;上面就要上传的文件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2,批量上传的脚本&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;vim file_upload.sh&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;#!/bin/sh

DATE=`date +%Y_%m_%d_%H`

if [ $1 ]
then
  for file in $(sed '/^$/d' $1)     //去掉空行
  do
    if [ -f $file ]                 //普通文件
    then
      res=`scp $file $2:$file`      //上传文件
      if [ -z $res ]                //上传成功
      then
        echo $file &amp;gt;&amp;gt; ${DATE}_upload.log   //上传成功的日志
      fi
    elif [ -d $file ]              //目录
    then
      res=`scp -r $file $2:$file`
      if [ -z $res ]
      then
        echo $file &amp;gt;&amp;gt; ${DATE}_upload.log
      fi
    fi
  done
else
  echo &quot;no file&quot; &amp;gt;&amp;gt; ${DATE}_error.log
fi&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;上传成功后，返回的是一个空行，上传不成功，什么都不返回&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3，上传的格式&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;./file_upload.sh test 192.168.1.13&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;test是上传列表文件，192.168.1.13文件要传到的地方。&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1356&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053394/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053394/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/linux/1356.html/feed</wfw:commentRss><slash:comments>2</slash:comments><description>上传文件大多数用的是ftp，但是用ftp有一点不好，就是本地和远程的目录要对应，这样就要在多个目录下去切换，这样挺麻烦的，如果不注意的话，很有可能传错。所以想了个办法利用scp来批量上传文件或者目录。

一，scp上传不要输入密码
如果要用scp来上传文件，第一步就要去掉scp上传时要输入密码。要不然就没办法批量上传了。具体请参考：ssh 不用输入密码
二，ssh批量上传脚本
1,要上传的文件列表放到一个test文件中
root@ubuntu:/home/zhangy# cat test
/home/zhangy/test/aaa
/home/zhangy/test/nginx.conf

/home/zhangy/test/test.sql
/home/zhangy/test/pa.txt
/home/zhangy/test/password
上面就要上传的文件。
2,批量上传的脚本
vim file_upload.sh
#!/bin/sh

DATE=`date +%Y_%m_%d_%H`

if [ $1 ]
then
  for file in $(sed '/^$/d' $1)     //去掉空行
  do
    if [ -f $file ]                 //普通文件
    then
    [...]&lt;img src=&quot;http://www1.feedsky.com/t1/596053394/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053394/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>linux</category><category>ssh</category><category>批量上传文件</category><pubDate>Wed, 23 Nov 2011 13:49:02 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/linux/1356.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1356</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/linux/1356.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053394/6321208</fs:itemid></item><item><title>ssh 不用输入密码</title><link>http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053395/6321208/1/item.html</link><content:encoded>&lt;p&gt;往正式服务器传代码，我一般都是用ssh的，写一个sh脚本把要传的文件，传到服务器上面，比用ftp要快很多，只要路径对就没有什么问题。但要用ssh来传文件，首先要解决输入密码这个问题。在网上找了一些方法，看一下实践过程。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1351&quot;&gt;&lt;/span&gt;&lt;strong&gt;一，在本机上生成id_rsa（私钥文件）和id_rsa.pub（公钥文件）&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;root@ubuntu:~# ssh-keygen -t rsa&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #800080;&quot;&gt;&lt;strong&gt;一路回车就行了&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二，修改目录权限&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;root@ubuntu:-# chmod 755 /用户根目录/.ssh&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;三，上传公钥文件到远程服务器,生成authorized_keys文件&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;php&quot; name=code&gt;root@ubuntu:-# scp /用户根目录/.ssh/id_rsa.pub root@192.168.1.11:/root/.ssh/authorized_keys&lt;/pre&gt;
&lt;p&gt;到这儿就好了&lt;/p&gt;
&lt;p class=&quot;akst_link&quot;&gt;&lt;a href=&quot;javascript:&quot; needth=&quot;&quot; title=&quot;可以通过E-mail分享, 用del.icio.us、Google等网络书签收藏！&quot; id=&quot;akst_link_1351&quot; class=&quot;akst_share_link&quot; rel=&quot;nofollow&quot;&gt;收藏、分享这篇文章!&lt;/script&gt;&lt;/a&gt;


&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/596053395/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053395/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://blog.51yip.com/linux/1351.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>往正式服务器传代码，我一般都是用ssh的，写一个sh脚本把要传的文件，传到服务器上面，比用ftp要快很多，只要路径对就没有什么问题。但要用ssh来传文件，首先要解决输入密码这个问题。在网上找了一些方法，看一下实践过程。
一，在本机上生成id_rsa（私钥文件）和id_rsa.pub（公钥文件）
root@ubuntu:~# ssh-keygen -t rsa
一路回车就行了
二，修改目录权限
root@ubuntu:-# chmod 755 /用户根目录/.ssh
三，上传公钥文件到远程服务器,生成authorized_keys文件
root@ubuntu:-# scp /用户根目录/.ssh/id_rsa.pub root@192.168.1.11:/root/.ssh/authorized_keys
到这儿就好了
收藏、分享这篇文章!&lt;img src=&quot;http://www1.feedsky.com/t1/596053395/tank_fs4t/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/tank_fs4t/~8218006/596053395/6321208/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>linux</category><category>ssh</category><pubDate>Tue, 22 Nov 2011 15:56:49 +0800</pubDate><author>张映</author><comments>http://blog.51yip.com/linux/1351.html#comments</comments><guid isPermaLink="false">http://blog.51yip.com/?p=1351</guid><dc:creator>张映</dc:creator><fs:srclink>http://blog.51yip.com/linux/1351.html</fs:srclink><fs:srcfeed>http://blog.51yip.com/feed</fs:srcfeed><fs:itemid>feedsky/tank_fs4t/~8218006/596053395/6321208</fs:itemid></item></channel></rss>
