ALTER TABLE myIndex ADD INDEX name_city_age (vc_Name(10),vc_City,i_Age);--注意了,建表时,vc_Name长度为50,这里为什么用10呢?因为一般情况下名字的长度不会超过10,这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT的更新速度。
执行T-SQL时,MySQL无须扫描任何记录就到找到唯一的记录!!
肯定有人要问了,如果分别在vc_Name,vc_City,i_Age上建立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率一样吧?嘿嘿,大不一样,远远低于我们的组合索引~~虽然此时有了三个索引,但MySQL只能用到其中的那个它认为似乎是最有效率的单列索引。
建立这样的组合索引,其实是相当于分别建立了
vc_Name,vc_City,i_Age
vc_Name,vc_City
vc_Name
这样的三个组合索引!为什么没有vc_City,i_Age等这样的组合索引呢?这是因为mysql组合索引"最左前缀"的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个T-SQL会用到:
SELECT * FROM myIndex WHREE vc_Name="erquan" AND vc_City="郑州"
SELECT * FROM myIndex WHREE vc_Name="erquan"
而下面几个则不会用到:
SELECT * FROM myIndex WHREE i_Age=20 AND vc_City="郑州"
SELECT * FROM myIndex WHREE vc_City="郑州"
unique索引:
[code]
ALTER TABLE tablename ADD UNIQUE [索引的名字]
alter table Tbl_User ADD UNIQUE INDEX (FQQ);
[/code]
执行T-SQL时,MySQL无须扫描任何记录就到找到唯一的记录!!
肯定有人要问了,如果分别在vc_Name,vc_City,i_Age上建立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率一样吧?嘿嘿,大不一样,远远低于我们的组合索引~~虽然此时有了三个索引,但MySQL只能用到其中的那个它认为似乎是最有效率的单列索引。
建立这样的组合索引,其实是相当于分别建立了
vc_Name,vc_City,i_Age
vc_Name,vc_City
vc_Name
这样的三个组合索引!为什么没有vc_City,i_Age等这样的组合索引呢?这是因为mysql组合索引"最左前缀"的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个T-SQL会用到:
SELECT * FROM myIndex WHREE vc_Name="erquan" AND vc_City="郑州"
SELECT * FROM myIndex WHREE vc_Name="erquan"
而下面几个则不会用到:
SELECT * FROM myIndex WHREE i_Age=20 AND vc_City="郑州"
SELECT * FROM myIndex WHREE vc_City="郑州"
unique索引:
[code]
ALTER TABLE tablename ADD UNIQUE [索引的名字]
alter table Tbl_User ADD UNIQUE INDEX (FQQ);
[/code]
假如我们创建了一个testIndex表:
CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOT NULL);
我们随机向里面插入了1000条记录,其中有一条
i_testID vc_Name
555 erquan
在查找vc_Name="erquan"的记录
SELECT * FROM testIndex WHERE vc_Name='erquan';
时,如果在vc_Name上已经建立了索引,MySql无须任何扫描,即准确可找到该记录!相反,MySql会扫描所有记录,即要查询1000次啊~~可以索引将查询速度提高100倍。
一、索引分单列索引和组合索引
单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。
组合索引:即一个索包含多个列。
阅读全文
CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOT NULL);
我们随机向里面插入了1000条记录,其中有一条
i_testID vc_Name
555 erquan
在查找vc_Name="erquan"的记录
SELECT * FROM testIndex WHERE vc_Name='erquan';
时,如果在vc_Name上已经建立了索引,MySql无须任何扫描,即准确可找到该记录!相反,MySql会扫描所有记录,即要查询1000次啊~~可以索引将查询速度提高100倍。
一、索引分单列索引和组合索引
单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。
组合索引:即一个索包含多个列。
阅读全文
网路安装 :pkg_add -r gnome2
光盘安装:光盘启动菜单>packages>选项cd安装> 然后选择gnone2.22.gz
安装以后的中文化可以,到/usr/ports/chinese/auto-i10n-cn/
光盘安装:光盘启动菜单>packages>选项cd安装> 然后选择gnone2.22.gz
安装以后的中文化可以,到/usr/ports/chinese/auto-i10n-cn/
Windows Media Player文件我的心里只有你没有他
你要相信我的情意并不假
只有你才是我梦想
只有你才叫我牵挂 我的心里没有他
我的心里只有你没有他
你要相信我的情意并不假
我的眼睛为了你看
我的眉毛为了你画 从来不是为了他
自从那日送走你 回了家那一天不是我把自己问
自己骂 只怪我 当时没有把你留下
对着你把心来挖 让你看上一个明白
看我心里可有他
我的心里只有你没有他
你要相信我的情意并不假
我的眼泪为了你流
我的眉毛为了你画 从来不是为了他
要注意两点。
1、不过版本要在5.0.37之后
手册上介绍:(SHOW PROFILES and SHOW PROFILE were added in MySQL 5.0.37. )
Important
Please note that the SHOW PROFILE and SHOW PROFILES functionality is part of the MySQL 5.0 Community Server only.
2、变量profiling是用户变量,每次都得重新启用。
以下是我做的一些实验。数据很明显,就不多解释了。
先进入某个库中然后运行:show profiling;如下:
mysql> use test
Database changed
mysql> set profiling=1;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| bag_item |
| bag_user |
| score |
| t |
+----------------+
4 rows in set (0.03 sec)
mysql> select count(*) from t;
+----------+
| count(*) |
+----------+
| 2097152 |
+----------+
1 row in set (0.74 sec)
阅读全文
1、不过版本要在5.0.37之后
手册上介绍:(SHOW PROFILES and SHOW PROFILE were added in MySQL 5.0.37. )
Important
Please note that the SHOW PROFILE and SHOW PROFILES functionality is part of the MySQL 5.0 Community Server only.
2、变量profiling是用户变量,每次都得重新启用。
以下是我做的一些实验。数据很明显,就不多解释了。
先进入某个库中然后运行:show profiling;如下:
mysql> use test
Database changed
mysql> set profiling=1;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| bag_item |
| bag_user |
| score |
| t |
+----------------+
4 rows in set (0.03 sec)
mysql> select count(*) from t;
+----------+
| count(*) |
+----------+
| 2097152 |
+----------+
1 row in set (0.74 sec)
阅读全文
问题提出:为何多线程? 答:为了问题得到有效解决.
什么问题:由于rpc僵死,ps aux|gep rpc rpc进程还在,但是它已经死掉失效了,但系统也无法知道,我们只好去调用rpc里面的一个函数看返回结果。
问:为何不用一个进程去判断而要用多线程?
答:一个进程掉用rpc里面的一个函数,在rpc死后如果调用,调用者无法退出终端,也死在那儿了.
问:为何不用多进程?
答:多进程不太熟悉,尝试失败。
最后:选择了多线程。。。
多线程的大致流程:
一个线程睡觉,一个干事情,干不动事情,睡觉的线程杀了干事情的线程。。。^_^(有趣)
shell如,一行搞定:
shell字符串相连:
c程序:
阅读全文
什么问题:由于rpc僵死,ps aux|gep rpc rpc进程还在,但是它已经死掉失效了,但系统也无法知道,我们只好去调用rpc里面的一个函数看返回结果。
问:为何不用一个进程去判断而要用多线程?
答:一个进程掉用rpc里面的一个函数,在rpc死后如果调用,调用者无法退出终端,也死在那儿了.
问:为何不用多进程?
答:多进程不太熟悉,尝试失败。
最后:选择了多线程。。。
多线程的大致流程:
一个线程睡觉,一个干事情,干不动事情,睡觉的线程杀了干事情的线程。。。^_^(有趣)
#!/bin/sh
state=`/usr/local/bin/test_rpc_server_62 afeng@afeng.sina.net`;
if [ "$state" != "OK" ]; then
ps auxwww |grep rpc |awk '{ print "kill -9 " $2 }' |sh
if [ -e /usr/local/etc/rc.d/entplatform_rpcserver.sh ]; then
sh /usr/local/etc/rc.d/entplatform_rpcserver.sh
else
ps auxwww |grep rpc |awk '{ print "kill -9 " $2 }' |sh
cat /etc/rc.local |grep rpc |sh
fi
echo "rpc bad, restart.";
else
echo "rpc ok.";
fi
state=`/usr/local/bin/test_rpc_server_62 afeng@afeng.sina.net`;
if [ "$state" != "OK" ]; then
ps auxwww |grep rpc |awk '{ print "kill -9 " $2 }' |sh
if [ -e /usr/local/etc/rc.d/entplatform_rpcserver.sh ]; then
sh /usr/local/etc/rc.d/entplatform_rpcserver.sh
else
ps auxwww |grep rpc |awk '{ print "kill -9 " $2 }' |sh
cat /etc/rc.local |grep rpc |sh
fi
echo "rpc bad, restart.";
else
echo "rpc ok.";
fi
shell如,一行搞定:
grep '|'`date +20%y-%m-%d`' ALL FUNISHED! |' /data0/daemon_log/popularity/addScoreOnline.log >> /data0/daemon_log/popularity/addScoreOnlineSh.log
shell字符串相连:
A=EDIT
N=1
B=$A$N
echo $B
N=1
B=$A$N
echo $B
c程序:
阅读全文
http://www.robotsky.com/KongZhi/QianRS/2008-03-05/12047239162248.html
新劳动法:不再有违约金束缚
举例:
李新是北京某高校2005年的毕业生。毕业前,老师为品学兼优的他介绍了一家国有企业,虽然待遇不高,但可以解决户口,前提是必须签五年。为了落户,李新毫不犹豫地签了约。但不久一家外企又给他抛来了橄榄枝。两相比较,李新决定辞掉国企进外企。但那家国企却认为李新违约,除非他支付5万块的违约金,否则就不给办退档手续。经过学校老师多方协商,最终李新交了2万块钱违约金才取回自己的档案。
《劳动合同法》第二十二条 劳动者违反服务期约定的,应当按照约定向用人单位支付违约金。违约金的数额不得超过用人单位提供的培训费用。用人单位要求劳动者支付的违约金不得超过服务期尚未履行部分所应分摊的培训费用。用人单位与劳动者约定服务期的,不影响按照正常的工资调整机制提高劳动者在服务期期间的劳动报酬。
《劳动合同法》第二十三条 用人单位与劳动者可以在劳动合同中约定保守用人单位的商业秘密和与知识产权相关的保密事项。劳动者违反竞业限制约定的,应当按照约定向用人单位支付违约金。
《劳动合同法》第二十五条 除本法第二十二条和第二十三条规定的情形外,用人单位不得与劳动者约定由劳动者承担违约金。
解读:违约金一向是用人单位绑住劳动者的“紧箍咒”但明年1月1日之后,想炒老板鱿鱼的打工仔可以“挥挥衣袖不留下一分血汗钱”了。除非劳动者接受过单位的培训,或有保密协议和竞业限制的协议,劳动者不需向单位支付任何违约金,而且单位必须出具第三方开的培训费用发票才能证明对劳动者进行过培训,企业内部培训或没有第三方发票的都不算。
本人曾经考过清华的法律研究生,请问:我是在新劳动法之前签的合同,会不会因为法律没有溯及力而合同任然需要缴纳违约金呢?
答:新劳动合同法附则中有一条:第九十七条 本法施行前已依法订立且在本法施行之日存续的劳动合同,继续履行;
也就是从旧法了?
徐俊东 17:29:43
若你的合同中已经有明确的关于违约金的规定是有法律效力的.
徐俊东 17:30:36
若没有明确规定违约金,可以适用新法.
徐俊东 17:30:48
先去吃饭了
很傻很天真 17:30:51
规定了,金额都写清楚了,也就是还是按照旧的该交违约金得交,对吧?
徐俊东 17:30:59
恩
徐俊东 2008-10-6 21:01:13
用人单位与劳动者约定了服务期,劳动者依照劳动合同法第三十八条的规定解除劳动合同的,不属于违反服务期的约定,用人单位不得要求劳动者支付违约金。
徐俊东 2008-10-6 21:01:40
第二十六条用人单位与劳动者约定了服务期,劳动者依照劳动合同法第三十八条的规定解除劳动合同的,不属于违反服务期的约定,用人单位不得要求劳动者支付违约金。 有下列情形之一,用人单位与劳动者解除约定服务期的劳动合同的,劳动者应当按照劳动合同的约定向用人单位支付违约金: (一)劳动者严重违反用人单位的规章制度的; (二)劳动者严重失职,营私舞弊,给用人单位造成重大损害的; (三)劳动者同时与其他用人单位建立劳动关系,对完成本单位的工作任务造成严重影响,或者经用人单位提出,拒不改正的; (四)劳动者以欺诈、胁迫的手段或者乘人之危,使用人单位在违背真实意思的情况下订立或者变更劳动合同的; (五)劳动者被依法追究刑事责任的。
徐俊东 2008-10-6 21:02:37
劳动合同法 第三十八条 用人单位有下列情形之一的,劳动者可以解除劳动合同:
(一)未按照劳动合同约定提供劳动保护或者劳动条件的;
(二)未及时足额支付劳动报酬的;
(三)未依法为劳动者缴纳社会保险费的;
(四)用人单位的规章制度违反法律、法规的规定,损害劳动者权益的;
(五)因本法第二十六条第一款规定的情形致使劳动合同无效的;
(六)法律、行政法规规定劳动者可以解除劳动合同的其他情形。
用人单位以暴力、威胁或者非法限制人身自由的手段强迫劳动者劳动的,或者用人单位违章指挥、强令冒险作业危及劳动者人身安全的,劳动者可以立即解除劳动合同,不需事先告知用人单位。
举例:
李新是北京某高校2005年的毕业生。毕业前,老师为品学兼优的他介绍了一家国有企业,虽然待遇不高,但可以解决户口,前提是必须签五年。为了落户,李新毫不犹豫地签了约。但不久一家外企又给他抛来了橄榄枝。两相比较,李新决定辞掉国企进外企。但那家国企却认为李新违约,除非他支付5万块的违约金,否则就不给办退档手续。经过学校老师多方协商,最终李新交了2万块钱违约金才取回自己的档案。
《劳动合同法》第二十二条 劳动者违反服务期约定的,应当按照约定向用人单位支付违约金。违约金的数额不得超过用人单位提供的培训费用。用人单位要求劳动者支付的违约金不得超过服务期尚未履行部分所应分摊的培训费用。用人单位与劳动者约定服务期的,不影响按照正常的工资调整机制提高劳动者在服务期期间的劳动报酬。
《劳动合同法》第二十三条 用人单位与劳动者可以在劳动合同中约定保守用人单位的商业秘密和与知识产权相关的保密事项。劳动者违反竞业限制约定的,应当按照约定向用人单位支付违约金。
《劳动合同法》第二十五条 除本法第二十二条和第二十三条规定的情形外,用人单位不得与劳动者约定由劳动者承担违约金。
解读:违约金一向是用人单位绑住劳动者的“紧箍咒”但明年1月1日之后,想炒老板鱿鱼的打工仔可以“挥挥衣袖不留下一分血汗钱”了。除非劳动者接受过单位的培训,或有保密协议和竞业限制的协议,劳动者不需向单位支付任何违约金,而且单位必须出具第三方开的培训费用发票才能证明对劳动者进行过培训,企业内部培训或没有第三方发票的都不算。
本人曾经考过清华的法律研究生,请问:我是在新劳动法之前签的合同,会不会因为法律没有溯及力而合同任然需要缴纳违约金呢?
答:新劳动合同法附则中有一条:第九十七条 本法施行前已依法订立且在本法施行之日存续的劳动合同,继续履行;
也就是从旧法了?
徐俊东 17:29:43
若你的合同中已经有明确的关于违约金的规定是有法律效力的.
徐俊东 17:30:36
若没有明确规定违约金,可以适用新法.
徐俊东 17:30:48
先去吃饭了
很傻很天真 17:30:51
规定了,金额都写清楚了,也就是还是按照旧的该交违约金得交,对吧?
徐俊东 17:30:59
恩
徐俊东 2008-10-6 21:01:13
用人单位与劳动者约定了服务期,劳动者依照劳动合同法第三十八条的规定解除劳动合同的,不属于违反服务期的约定,用人单位不得要求劳动者支付违约金。
徐俊东 2008-10-6 21:01:40
第二十六条用人单位与劳动者约定了服务期,劳动者依照劳动合同法第三十八条的规定解除劳动合同的,不属于违反服务期的约定,用人单位不得要求劳动者支付违约金。 有下列情形之一,用人单位与劳动者解除约定服务期的劳动合同的,劳动者应当按照劳动合同的约定向用人单位支付违约金: (一)劳动者严重违反用人单位的规章制度的; (二)劳动者严重失职,营私舞弊,给用人单位造成重大损害的; (三)劳动者同时与其他用人单位建立劳动关系,对完成本单位的工作任务造成严重影响,或者经用人单位提出,拒不改正的; (四)劳动者以欺诈、胁迫的手段或者乘人之危,使用人单位在违背真实意思的情况下订立或者变更劳动合同的; (五)劳动者被依法追究刑事责任的。
徐俊东 2008-10-6 21:02:37
劳动合同法 第三十八条 用人单位有下列情形之一的,劳动者可以解除劳动合同:
(一)未按照劳动合同约定提供劳动保护或者劳动条件的;
(二)未及时足额支付劳动报酬的;
(三)未依法为劳动者缴纳社会保险费的;
(四)用人单位的规章制度违反法律、法规的规定,损害劳动者权益的;
(五)因本法第二十六条第一款规定的情形致使劳动合同无效的;
(六)法律、行政法规规定劳动者可以解除劳动合同的其他情形。
用人单位以暴力、威胁或者非法限制人身自由的手段强迫劳动者劳动的,或者用人单位违章指挥、强令冒险作业危及劳动者人身安全的,劳动者可以立即解除劳动合同,不需事先告知用人单位。
本人現在17歲了,喉嚨裏面很紅,也不是喉嚨,就是在嘴巴裏面,別人看進去很紅,早上起來感覺嘴巴裏面很痛,喝過開水就不痛了,但是紅紅的沒有退去,這要不要去看醫生呢,已經5天左右了,會不會痛的越來越厲害?
第一次問題補充:(2007-7-23 11:38:11)這不是是什麼大病啊,我以前都沒這樣過的,不知道最近才這樣痛的,就只有早是剛起來的時候才感覺嘴巴裏面很痛的
首先你要去除诱因,少吃辣椒、羊肉、大葱等辛辣刺激食物(一般复发或难治和这些因素有关)。多喝水。送你一方你坚持喝一段时间可能效果不错(很多人说还比较管用,但服用时间较长)
玄参15克沙参15克山豆根15克木蝴蝶9克麦冬15克金银花15克生地15克桔梗15克平均分成三份,每天一份泡水当茶喝。先喝10天看看效果如何
如果现在难受的厉害就配合服用知柏地黄丸每晚两丸,淡盐水送下,滋阴补肾。
我是一个慢性咽炎患者,根据我多年的经验,我总结出以下几点,治咽炎的办法
第一:要相信这病肯定能好的,要有信心
第二:该戒的东西要戒,戒不掉也要有限量,酒、烟、辣椒、可乐、桔子等等燥热和刺激性的东西。
第三:也是最重要的一点,要随时保持愉快的心情,千万别发火更不能和别人吵架。
第四:药还是要吃的,尽量吃中药来调养,我个人推荐菌针冲剂,这是一个乡下老医生自己研制的中药,个人觉得挺不错的
咽部感染的治疗.主要是要少说话、少量多次喝水,血WBC(白细胞)不高,不要使用抗生素,尽量使用含化片如西瓜霜等,并且禁忌辛辣硬食物、烟酒
第一次問題補充:(2007-7-23 11:38:11)這不是是什麼大病啊,我以前都沒這樣過的,不知道最近才這樣痛的,就只有早是剛起來的時候才感覺嘴巴裏面很痛的
首先你要去除诱因,少吃辣椒、羊肉、大葱等辛辣刺激食物(一般复发或难治和这些因素有关)。多喝水。送你一方你坚持喝一段时间可能效果不错(很多人说还比较管用,但服用时间较长)
玄参15克沙参15克山豆根15克木蝴蝶9克麦冬15克金银花15克生地15克桔梗15克平均分成三份,每天一份泡水当茶喝。先喝10天看看效果如何
如果现在难受的厉害就配合服用知柏地黄丸每晚两丸,淡盐水送下,滋阴补肾。
我是一个慢性咽炎患者,根据我多年的经验,我总结出以下几点,治咽炎的办法
第一:要相信这病肯定能好的,要有信心
第二:该戒的东西要戒,戒不掉也要有限量,酒、烟、辣椒、可乐、桔子等等燥热和刺激性的东西。
第三:也是最重要的一点,要随时保持愉快的心情,千万别发火更不能和别人吵架。
第四:药还是要吃的,尽量吃中药来调养,我个人推荐菌针冲剂,这是一个乡下老医生自己研制的中药,个人觉得挺不错的
咽部感染的治疗.主要是要少说话、少量多次喝水,血WBC(白细胞)不高,不要使用抗生素,尽量使用含化片如西瓜霜等,并且禁忌辛辣硬食物、烟酒
如果你已经过了20岁但还不到25岁的话,你必须找到除了爱情之外,能够使你用双脚坚强站在大地上的东西。你要找到谋生的方式。现在考虑不晚了。
我从来不以为学历有什么重要,天才都不是科班,但,不是科班,连龙套都跑不了。你必须把那些浮如飘絮的思绪,渐渐转化为清晰的思路和简单的文字。华丽和漂浮都不易长久。你要知道,给予文字阅读快感不够的,内容,思想,境界,灵魂,精神和智慧,这些才重要。不要多看那些和你一个路数的女作家的文字。不要琐碎,无病呻吟。不要想到什么就写。不要流连于小感伤和小感动。
我要你相信温暖,美好,信任,尊严,坚强这些老掉牙的字眼。我不要你颓废,空虚,迷茫,糟践自己,伤害别人。我不要你把自己处理得一团糟。节制自己的感情并且珍惜它,明白这种感情不是任何人都能要。体验生活,是另外一回事,并不意味着堕落和放纵。千万不要认同那些伪装的酷和另类。他们是无事可做的人找出来放任自己无事可做的借口,真正的酷是在内心。你要有强大的内心。要有任凭时间流逝,不会磨折和屈服的信念。不是因为在学校的象牙塔中,才说出我爱世界这样的话,是知道外面的黑,脏,丑陋之后,还要说出这样的话。好好去爱,去生活。青春如此短暂,不要叹老。偶尔可以停下来休息,但是别蹲下来张望。走了一条路的时候,记得别回头看。时不时问问自己,自己在干嘛?
阅读全文
我从来不以为学历有什么重要,天才都不是科班,但,不是科班,连龙套都跑不了。你必须把那些浮如飘絮的思绪,渐渐转化为清晰的思路和简单的文字。华丽和漂浮都不易长久。你要知道,给予文字阅读快感不够的,内容,思想,境界,灵魂,精神和智慧,这些才重要。不要多看那些和你一个路数的女作家的文字。不要琐碎,无病呻吟。不要想到什么就写。不要流连于小感伤和小感动。
我要你相信温暖,美好,信任,尊严,坚强这些老掉牙的字眼。我不要你颓废,空虚,迷茫,糟践自己,伤害别人。我不要你把自己处理得一团糟。节制自己的感情并且珍惜它,明白这种感情不是任何人都能要。体验生活,是另外一回事,并不意味着堕落和放纵。千万不要认同那些伪装的酷和另类。他们是无事可做的人找出来放任自己无事可做的借口,真正的酷是在内心。你要有强大的内心。要有任凭时间流逝,不会磨折和屈服的信念。不是因为在学校的象牙塔中,才说出我爱世界这样的话,是知道外面的黑,脏,丑陋之后,还要说出这样的话。好好去爱,去生活。青春如此短暂,不要叹老。偶尔可以停下来休息,但是别蹲下来张望。走了一条路的时候,记得别回头看。时不时问问自己,自己在干嘛?
阅读全文
http://www.ibm.com/developerworks/cn/opensource/os-php-apachesolr/
http://www.ibm.com/developerworks/cn/web/wa-lucene2/?ca=wa-t10
http://www.ibm.com/developerworks/cn/edu/os-dw-os-apachelucene.html
http://www.ibm.com/developerworks/cn/web/wa-lucene2/?ca=wa-t10
http://www.ibm.com/developerworks/cn/edu/os-dw-os-apachelucene.html
登陆cvs: cvs -d :pserver:xuquanxing@218.206.74.186:/home/cvsroot login 将提示你输入密码,登陆成功后以后在登陆不需要密码 网管联盟bitsCN_com
检出整个工程(必须先检出整个工程,才能进行其它的操作) cvs -d :pserver:xuquanxing@218.206.74.186:/home/cvsroot checkout mindquiz 在执行update时可以转到本地相应目录直接 cvs update 也可以在其它目录cvs update 目录名
网管bitscn_com
(下面是网络上找到) 网管网www_bitscn_com
1.登陆cvs: cvs -d :pserver:xuquanxing@218.206.74.186:/home/cvsroot login
网管联盟bitsCN@com
阅读全文
检出整个工程(必须先检出整个工程,才能进行其它的操作) cvs -d :pserver:xuquanxing@218.206.74.186:/home/cvsroot checkout mindquiz 在执行update时可以转到本地相应目录直接 cvs update 也可以在其它目录cvs update 目录名
网管bitscn_com
(下面是网络上找到) 网管网www_bitscn_com
1.登陆cvs: cvs -d :pserver:xuquanxing@218.206.74.186:/home/cvsroot login
网管联盟bitsCN@com
阅读全文
实践:
ls AlTest1.err > log #有此文件,也就是输出指向屏幕给输入到了log文件
ls AlTest1.err2 > log #没有此文件,输出的是错误2,正常输出的1指向屏幕1----->log (1指向log),2也是指向幕,于是将错输出到了屏。
ls: AlTest1.err2: No such file or directory
ls AlTest1.err2 > log 2>&1 # (2指向1,而1指向log,因此2也指向了log)错误也指向了文件,于是此次的错误没有输出。
cat log
ls: AlTest1.err2: No such file or directory
2>&1 换个位置的情况,如下:
ls AlTest1.err2 2>&1 > log #输出:ls: AlTest1.err2: No such file or directory ,原因是2还是指向屏幕
本来1----->屏幕 (1指向屏幕)
执行2>&1后, 2----->1 (2指向1,而1指向屏幕,因此2也指向了屏幕)
执行>log后, 1----->log (1指向log,2还是指向屏幕)
如果文件存在,1输出指向了log,所以下成这个语句是能输出到文件中的:
ls AlTest1.err 2>&1 > log
cat log
AlTest1.err
将上述的正确输出的文件换成/dev/null, 即可实现正确错误均给导入空洞。
来自:https://www.jb51.net/article/169778.htm
0:标准输出,1:标准输入,2:标准错误。 输出可以输出到控制台,也可输出到文件,从左向右的顺序,这样可理解后面思考题。
2>&1表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出),为什么1前面需要&?当没有&时,1会被认为是一个普通的文件,有&表示重定向的目标不是一个文件,而是一个文件描述符。在前面我们知道,test.sh >log.txt又将文件描述符1的内容重定向到了文件log.txt,那么最终标准错误也会重定向到log.txt。
cat test.sh
#./test.sh > log.txt
./test.sh:行6: whatthis: 未找到命令
./test.sh:行6: whatthis: 未找到命令
./test.sh:行6: whatthis: 未找到命令
如果写成这样:#./test.sh > log.txt 2>&1 ,标准输出和错误输出均指向了 /data/codesdev/testdemo/shell/log.txt:
#ll
总用量 0
lrwx------ 1 root root 64 10月 30 16:38 0 -> /dev/pts/2
l-wx------ 1 root root 64 10月 30 16:38 1 -> /data/codesdev/testdemo/shell/log.txt
l-wx------ 1 root root 64 10月 30 16:37 2 -> /data/codesdev/testdemo/shell/log.txt
lr-x------ 1 root root 64 10月 30 16:38 255 -> /data/codesdev/testdemo/shell/test.sh
w
xiangdon pts/2 202.108.16.78 15:37 47.00s 0.10s 0.03s sshd: xiangdong [priv] #程序运行终端
xiangdon pts/3 202.108.16.78 15:40 0.00s 0.08s 0.03s sshd: xiangdong [priv] #另一个终端
pkill -KILL -t pts/3
cd /proc/28725/fd
我们总结一下前面的内容:
程序运行后会打开三个文件描述符,分别是标准输入,标准输出和标准错误输出。
在调用脚本时,可使用2>&1来将标准错误输出重定向。
只需要查看脚本的错误时,可将标准输出重定向到文件,而标准错误会打印在控制台,便于查看。
>>log.txt会将重定向内容追加到log.txt文件末尾。
通过查看/proc/进程id/fd下的内容,可了解进程打开的文件描述符信息。
来自:https://mp.weixin.qq.com/s/-9uO7lc_xfvpZxEsaez7HQ
#./test.sh 2>&1 >log.txt #思考题:为何这样一样有错误输出呢?
思考
下面的调用会将标准错误输出重定向到文件中吗?为什么?
./test.sh 2>&1 >log.txt
./test.sh:行6: whatthis: 未找到命令
./test.sh:行6: whatthis: 未找到命令
./test.sh:行6: whatthis: 未找到命令
./test.sh:行6: whatthis: 未找到命令
./test.sh:行6: whatthis: 未找到命令
./test.sh:行6: whatthis: 未找到命令
原因2 -> /dev/pts/2,并没有给指向/data/codesdev/testdemo/shell/log.txt:
#ll /proc/29313/fd
总用量 0
lrwx------ 1 root root 64 10月 30 16:44 0 -> /dev/pts/2
l-wx------ 1 root root 64 10月 30 16:44 1 -> /data/codesdev/testdemo/shell/log.txt
lrwx------ 1 root root 64 10月 30 16:44 2 -> /dev/pts/2
lr-x------ 1 root root 64 10月 30 16:44 255 -> /data/codesdev/testdemo/shell/test.sh
答案:解释一下思考题:不能。
因为从左往右结合,现有2>&1,这个时候1指向的是控制台,这个时候也就将标准错误2重定向控制台(相当于不起作用),最后才将标准输出重定向到log.txt。结果就是只有标准输出重定向到了log.txt。可以通过同样的方法查看文件描述符的指向。
从左往右结合:也就是说先有输出(2&>1:标准错误输出到文件1输出)到控制台(不起作用,此时输出是控制台。),然后再定向到log.txt文件,而不是先输出到Log文件,之前是test.sh >log.txt将文件描述符1的内容重定向到了文件log.txt,那么最终标准错误也会重定向到log.txt,现在是直接将错误给输出到终端了。
> 就是1,也就是说将标准输出到一个文件,它就是1,而./test.sh 2>&1 >log.txt ,的1是输出到默认的终端terminal了,而./test.sh >log.txt 2>&1里的输出1到文件了,后面的1也就跟着到了log.txt文件。
===============================================================================================
find -name "*.jpg" | awk -F "/" '{print "curl -F userfile=@/data1/app4_data/" $2 "/" $3 "
http://app.space.sina.com.cn/upload.php" " >> /home/xiangdong2/image_logs/" $3 ".txt"}' | sh
这个脚本放入:push_upload_img.sh http://app.space.sina.com.cn/upload.php" " >> /home/xiangdong2/image_logs/" $3 ".txt"}' | sh
中的时候出现:curl传输速度等的信息,我们就要用到:>/dev/null 2>&1 & 了
sh push_upload_img.sh >/dev/null 2>&1 &
详细解释:
脚本是:
nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &
对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
command >out.file 2>&1 &
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行。
试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
阅读全文
在一个目录很多图片想通过:rm -Rf 来删除,报错: Argument list too long
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
最后通过:
find . -name "*.jpg" | xargs rm -Rf
完全解决!
find ./ -size 2265c | xargs rm 按指定大小删除
如想删除/tmp/xdebug下面所有的文件,用下面方法,一定要加type f,不加会把目录也删除了滴:
阅读全文
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
最后通过:
find . -name "*.jpg" | xargs rm -Rf
完全解决!
find ./ -size 2265c | xargs rm 按指定大小删除
如想删除/tmp/xdebug下面所有的文件,用下面方法,一定要加type f,不加会把目录也删除了滴:
阅读全文
挑选5个字母的域名,并第一个字是w的awk正则方法:
下载文件 http://bbs.chinaunix.net/viewthread.php?tid=747708&extra=page%3D2
上传文件的curl参数是-T:
1)上传uploadContents.txt文件内容:
this is upload file by php.
2)接收代码:
来自plupload里通过swf一个文件小于自己配置的10M时就一次性上传的协议,Flash是这样进行提交的:
Content-Disposition: form-data; name="name" p18e57aitdkecp1vbe40lccu4.zip
XXXXXXXXXX 文件内容
3)运行打印:
C:\Users\admin>curl -d"dfd=php://input can not read here's contents" -T"D:\uploadContents.txt" http://localhost/php_input.php
this is upload file by php.
4)说明,对于-d参数,其PHP的php://input是不会接收的,其接收的是二进制流,用$_POST,是可以打印出来的(但通过linux下的shell同时发送-d -T是只能打出-T内容)。
如,通过给PHP里的php://input上传一个文件,发现这个文件不能被读取到,说明它就是只能接二进制文件的,如下:
C:\Users\admin>curl -F upload_file=@D:\uploadContents.txt -F "name=yangqi" http://localhost/php_input.php
-F/--form <name=content> Specify HTTP multipart POST data (H)
--form-string <name=string> Specify HTTP multipart POST data (H)
Array
(
[upload_file] => Array
(
[name] => uploadContents.txt
[type] => text/plain
[tmp_name] => D:\wamp\tmp\phpDAB9.tmp
[error] => 0
[size] => 76
)
)
Array
(
[name] => yangqi
)
接收代码如下:
_______________________分块传时是这样的_______________________________
Content-Disposition: form-data; name="name" p18e57g55eof2u6k19971jo1cvu8.zip
Content-Disposition: form-data; name="chunk" 0
Content-Disposition: form-data; name="chunks" 5
上传文件内容XXXX
______________________________________________________________________________________
更多参考如下Url:http://jackxiang.com/post/6421/
curl -F userfile=@/usr/local/apache2/conf/httpd.conf http://app.space.sina.com.cn/upload.php // 上传
curl -d "get=123&post=222" http://app.space.sina.com.cn/get_post.php //post
curl http://app.space.sina.com.cn/get_post.php?"post=888&get=1212" //引号引起来get
加上访问时间(注意:这儿的upload_file相当于控件html file的name):
curl -s -w '%{time_connect}:%{time_starttransfer}:%{time_total}' -F upload_file=@/home/xiangdong/uploadFileTest/buer.rmvb "http://up.xiyou.cntv.cn/uptest.php"
0.001:0.001:14.458
PHP扩展用Curl上传文件:
调用的实际上传:
附录Flash进行多文件上传时的代码,在单文件时是通过php:input,而多文件时是_FILES进行分块上传的,upload.php里的代码如下:
来自:http://www.oschina.net/code/snippet_12_5808
1)上传uploadContents.txt文件内容:
this is upload file by php.
2)接收代码:
来自plupload里通过swf一个文件小于自己配置的10M时就一次性上传的协议,Flash是这样进行提交的:
Content-Disposition: form-data; name="name" p18e57aitdkecp1vbe40lccu4.zip
XXXXXXXXXX 文件内容
3)运行打印:
C:\Users\admin>curl -d"dfd=php://input can not read here's contents" -T"D:\uploadContents.txt" http://localhost/php_input.php
this is upload file by php.
4)说明,对于-d参数,其PHP的php://input是不会接收的,其接收的是二进制流,用$_POST,是可以打印出来的(但通过linux下的shell同时发送-d -T是只能打出-T内容)。
如,通过给PHP里的php://input上传一个文件,发现这个文件不能被读取到,说明它就是只能接二进制文件的,如下:
C:\Users\admin>curl -F upload_file=@D:\uploadContents.txt -F "name=yangqi" http://localhost/php_input.php
-F/--form <name=content> Specify HTTP multipart POST data (H)
--form-string <name=string> Specify HTTP multipart POST data (H)
Array
(
[upload_file] => Array
(
[name] => uploadContents.txt
[type] => text/plain
[tmp_name] => D:\wamp\tmp\phpDAB9.tmp
[error] => 0
[size] => 76
)
)
Array
(
[name] => yangqi
)
接收代码如下:
_______________________分块传时是这样的_______________________________
Content-Disposition: form-data; name="name" p18e57g55eof2u6k19971jo1cvu8.zip
Content-Disposition: form-data; name="chunk" 0
Content-Disposition: form-data; name="chunks" 5
上传文件内容XXXX
______________________________________________________________________________________
更多参考如下Url:http://jackxiang.com/post/6421/
curl -F userfile=@/usr/local/apache2/conf/httpd.conf http://app.space.sina.com.cn/upload.php // 上传
curl -d "get=123&post=222" http://app.space.sina.com.cn/get_post.php //post
curl http://app.space.sina.com.cn/get_post.php?"post=888&get=1212" //引号引起来get
加上访问时间(注意:这儿的upload_file相当于控件html file的name):
curl -s -w '%{time_connect}:%{time_starttransfer}:%{time_total}' -F upload_file=@/home/xiangdong/uploadFileTest/buer.rmvb "http://up.xiyou.cntv.cn/uptest.php"
0.001:0.001:14.458
<?php
$uploaddir = '/home/xiangdong2/pic_all_here';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
echo 'Here is some more debugging info:';
print_r($_FILES);
}
?>
$uploaddir = '/home/xiangdong2/pic_all_here';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
echo 'Here is some more debugging info:';
print_r($_FILES);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>upload file</title>
</head>
<body>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="http://app.space.sina.com.cn/upload.php">
<label>
<input type="file" name="userfile" id="fileField" />
</label>
<label>
<input type="submit" name="button" id="button" value="upload" />
</label>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>upload file</title>
</head>
<body>
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="http://app.space.sina.com.cn/upload.php">
<label>
<input type="file" name="userfile" id="fileField" />
</label>
<label>
<input type="submit" name="button" id="button" value="upload" />
</label>
</form>
</body>
</html>
<?php
if(isset($_REQUEST['get']))
{
$get =$_REQUEST['get'];
}else{
$get="get";
}
if(isset($_REQUEST['post']))
{
$post =$_REQUEST['post'];
}else{
$post="post";
}
echo "get=".$get."\n";
echo "post=".$post."\n";
?>
if(isset($_REQUEST['get']))
{
$get =$_REQUEST['get'];
}else{
$get="get";
}
if(isset($_REQUEST['post']))
{
$post =$_REQUEST['post'];
}else{
$post="post";
}
echo "get=".$get."\n";
echo "post=".$post."\n";
?>
PHP扩展用Curl上传文件:
调用的实际上传:
附录Flash进行多文件上传时的代码,在单文件时是通过php:input,而多文件时是_FILES进行分块上传的,upload.php里的代码如下:
来自:http://www.oschina.net/code/snippet_12_5808





