不知道为什么我的fedora 9 下没有以前那个可以选择抓图模式设定延时的抓图工具了,只有一个gnome ScreenShot,按PrtScr 抓全屏,按Alt+PrtScr 抓当前窗口。可我想弄复杂一点的就不行了。所以只能装了一个 scrot,scrot 是个命令行截图工具,小巧灵活,功能强悍。scrot 的常用用法如下:
抓取整个桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当前的目录中找到此图像文件。
抓取窗口:scrot -bs window.png,选项 b 使 scrot 在抓取窗口时一同将外边框抓取下来,而 s 选项则让用户选择所要抓取的是何窗口。
抓取区域:scrot -s rectangle.png,在执行此命令后,使用鼠标拖曳的矩形区域将被 scrot 抓取下来。
延时抓取:scrot -cd 10 menu.png,此命令中的 d 选项用于延时抓取图像,其后的 10 代表延时 10 秒;前面的选项 c 显示倒计时。在抓取菜单或是命令提示时,该技巧将充分展示其魔力。
生成缩图:scrot -t 50% thumb.png,这个命令在抓取图像的同时生成该图像的缩略图。选项 t 将打开此功能,其后的 50% 为原图的缩放百分比。
更改品质:scrot -q 70 quality.jpg,此命令中的 q 选项用于更改所抓图像的品质,其数值介于 1-100 之间,默认为 75。数值越大,意味着图像品质越高;同时,图像的压缩率也就越低,占用空间越大。
操作抓图:scrot action.png -e 'mv $f ~/images/',该命令将抓取的图像移动到 ~/images/ 目录。显然,操作图像的功能由 e 选项开启,其中的 $f 代表原图的路径/文件名。
基本上上面这些用法能解决绝大多少抓图任务了,如果你还有什么特殊要求可以自己 man 一下。
抓取整个桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当前的目录中找到此图像文件。
抓取窗口:scrot -bs window.png,选项 b 使 scrot 在抓取窗口时一同将外边框抓取下来,而 s 选项则让用户选择所要抓取的是何窗口。
抓取区域:scrot -s rectangle.png,在执行此命令后,使用鼠标拖曳的矩形区域将被 scrot 抓取下来。
延时抓取:scrot -cd 10 menu.png,此命令中的 d 选项用于延时抓取图像,其后的 10 代表延时 10 秒;前面的选项 c 显示倒计时。在抓取菜单或是命令提示时,该技巧将充分展示其魔力。
生成缩图:scrot -t 50% thumb.png,这个命令在抓取图像的同时生成该图像的缩略图。选项 t 将打开此功能,其后的 50% 为原图的缩放百分比。
更改品质:scrot -q 70 quality.jpg,此命令中的 q 选项用于更改所抓图像的品质,其数值介于 1-100 之间,默认为 75。数值越大,意味着图像品质越高;同时,图像的压缩率也就越低,占用空间越大。
操作抓图:scrot action.png -e 'mv $f ~/images/',该命令将抓取的图像移动到 ~/images/ 目录。显然,操作图像的功能由 e 选项开启,其中的 $f 代表原图的路径/文件名。
基本上上面这些用法能解决绝大多少抓图任务了,如果你还有什么特殊要求可以自己 man 一下。
如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。
软件下载
服务器和客户端安装
建立版本库(Repository)
配置用户和权限
运行独立服务器
初始化导入阅读全文
本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。
软件下载
服务器和客户端安装
建立版本库(Repository)
配置用户和权限
运行独立服务器
初始化导入阅读全文
一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过程序来访问这样的一些页面,比如从别人的网页中“偷”一些数据;利用某些站点提供的页面来完成某种功能,例如说我们想知道某个手机号码的归属地而我们自己又没有这样的数据,因此只好借助其他公司已有的网站来完成这个功能,这个时候我们需要向网页提交手机号码并从返回的页面中解析出我们想要的数据来。如果对方仅仅是一个很简单的页面,那我们的程序会很简单,本文也就没有必要大张旗鼓的在这里浪费口舌。但是考虑到一些服务授权的问题,很多公司提供的页面往往并不是可以通过一个简单的URL就可以访问的,而必须经过注册然后登录后方可使用提供服务的页面,这个时候就涉及到COOKIE问题的处理。我们知道目前流行的***页技术例如ASP、JSP无不是通过COOKIE来处理会话信息的。为了使我们的程序能使用别人所提供的服务页面,就要求程序首先登录后再访问服务页面,这过程就需要自行处理cookie,想想当你用 java.net.HttpURLConnection来完成这些功能时是多么恐怖的事情啊!况且这仅仅是我们所说的顽固的WEB服务器中的一个很常见的 “顽固”!再有如通过HTTP来上传文件呢?不需要头疼,这些问题有了“它”就很容易解决了!
我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用 java.net.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是 Apache开源组织中的httpclient,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把httpclient单独提出来,可见http服务器的访问绝非易事。
Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给 httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所形侍狻:阅读全文
我们不可能列举所有可能的顽固,我们会针对几种最常见的问题进行处理。当然了,正如前面说到的,如果我们自己使用 java.net.HttpURLConnection来搞定这些问题是很恐怖的事情,因此在开始之前我们先要介绍一下一个开放源码的项目,这个项目就是 Apache开源组织中的httpclient,它隶属于Jakarta的commons项目,目前的版本是2.0RC2。commons下本来已经有一个net的子项目,但是又把httpclient单独提出来,可见http服务器的访问绝非易事。
Commons-httpclient项目就是专门设计来简化HTTP客户端与服务器进行各种通讯编程。通过它可以让原来很头疼的事情现在轻松的解决,例如你不再管是HTTP或者HTTPS的通讯方式,告诉它你想使用HTTPS方式,剩下的事情交给 httpclient替你完成。本文会针对我们在编写HTTP客户端程序时经常碰到的几个问题进行分别介绍如何使用httpclient来解决它们,为了让读者更快的熟悉这个项目我们最开始先给出一个简单的例子来读取一个网页的内容,然后循序渐进解决掉前进中的所形侍狻:阅读全文
一个usb系统,其控制芯片的程序是C写的,现在想加入温度传感器,已有现成的汇编代码(伟纳ME300A+产品提供)
TEMPL DATA 26H
TEMPH DATA 27H
FLAG1 EQU 38H ;是否有ds18b20
DATE_LINE EQU P3.6 ;接到ds18b20数据线引脚
;**************************************************
ORG 0000H
MAIN: MOV SP,#30H
START: CALL RESET
SETB P3.2
CALL RESET
JNB FLAG1,MAIN
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#044H ; 发出温度转换命令
CALL WRITE
CALL RESET
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#0BEH ; 发出读温度命令
CALL WRITE
CALL READ ; 将读出的温度数据保存到26H/27H
;CALL CONVTEMP
;CALL DISPBCD
;CALL DISP1
JMP MAIN
;*************************************************
RESET: SETB DATE_LINE
NOP
CLR DATE_LINE
MOV R0,#0D6H ;主机发出延时642微秒的复位低脉冲
MOV R1,#03H
TSR1: DJNZ R0,$
MOV R0,#0D6H
DJNZ R1,TSR1
SETB DATE_LINE ;然后拉高数据线
NOP
NOP
NOP
MOV R0,#4AH
TSR2: JNB DATE_LINE,TSR3 ;等待DS18B20回应
DJNZ R0,TSR2
JMP TSR4 ; 延时
TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在
JMP TSR5
TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在
JMP TSR7
TSR5: MOV R0,#06BH
TSR6: DJNZ R0,$ ; 时序要求延时一段时间
TSR7: SETB DATE_LINE
RET
;********************************************************************
WRITE: MOV R2,#8 ;一共8位数据
CLR CY
WR1:
CLR DATE_LINE ;开始写入DS18B20总线要处于复位(低)状态
MOV R3,#10
DJNZ R3,$ ;总线复位保持16微妙以上
RRC A ;把一个字节DATA 分成8个BIT环移给C
MOV DATE_LINE,C ;写入一个BIT
MOV R3,#2EH
DJNZ R3,$ ;等待46微妙
SETB DATE_LINE ;重新释放总线
NOP
DJNZ R2,WR1 ;写入下一个BIT
SETB DATE_LINE
RET
;******************************************************
READ: MOV R4,#2 ; 将温度高位和低位从DS18B20中读出
MOV R1,#26H ; 存入26H 27H
RE00: MOV R2,#8
RE01: CLR CY
SETB DATE_LINE
NOP
NOP
CLR DATE_LINE ;读前总线保持为低
NOP
NOP
NOP
SETB DATE_LINE ;开始读总线释放
MOV R3,#18 ;延时18微妙
DJNZ R3,$
MOV C,DATE_LINE ;从DS18B20总线读得一个BIT
MOV R3,#46
DJNZ R3,$ ;等待46微妙
RRC A ;把读得的位值环移给A
DJNZ R2,RE01 ;读下一个BIT
MOV @R1,A
INC R1
DJNZ R4,RE00
RET
END
阅读全文
TEMPH DATA 27H
FLAG1 EQU 38H ;是否有ds18b20
DATE_LINE EQU P3.6 ;接到ds18b20数据线引脚
;**************************************************
ORG 0000H
MAIN: MOV SP,#30H
START: CALL RESET
SETB P3.2
CALL RESET
JNB FLAG1,MAIN
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#044H ; 发出温度转换命令
CALL WRITE
CALL RESET
MOV A,#0CCH ; 跳过ROM匹配
CALL WRITE
MOV A,#0BEH ; 发出读温度命令
CALL WRITE
CALL READ ; 将读出的温度数据保存到26H/27H
;CALL CONVTEMP
;CALL DISPBCD
;CALL DISP1
JMP MAIN
;*************************************************
RESET: SETB DATE_LINE
NOP
CLR DATE_LINE
MOV R0,#0D6H ;主机发出延时642微秒的复位低脉冲
MOV R1,#03H
TSR1: DJNZ R0,$
MOV R0,#0D6H
DJNZ R1,TSR1
SETB DATE_LINE ;然后拉高数据线
NOP
NOP
NOP
MOV R0,#4AH
TSR2: JNB DATE_LINE,TSR3 ;等待DS18B20回应
DJNZ R0,TSR2
JMP TSR4 ; 延时
TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在
JMP TSR5
TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在
JMP TSR7
TSR5: MOV R0,#06BH
TSR6: DJNZ R0,$ ; 时序要求延时一段时间
TSR7: SETB DATE_LINE
RET
;********************************************************************
WRITE: MOV R2,#8 ;一共8位数据
CLR CY
WR1:
CLR DATE_LINE ;开始写入DS18B20总线要处于复位(低)状态
MOV R3,#10
DJNZ R3,$ ;总线复位保持16微妙以上
RRC A ;把一个字节DATA 分成8个BIT环移给C
MOV DATE_LINE,C ;写入一个BIT
MOV R3,#2EH
DJNZ R3,$ ;等待46微妙
SETB DATE_LINE ;重新释放总线
NOP
DJNZ R2,WR1 ;写入下一个BIT
SETB DATE_LINE
RET
;******************************************************
READ: MOV R4,#2 ; 将温度高位和低位从DS18B20中读出
MOV R1,#26H ; 存入26H 27H
RE00: MOV R2,#8
RE01: CLR CY
SETB DATE_LINE
NOP
NOP
CLR DATE_LINE ;读前总线保持为低
NOP
NOP
NOP
SETB DATE_LINE ;开始读总线释放
MOV R3,#18 ;延时18微妙
DJNZ R3,$
MOV C,DATE_LINE ;从DS18B20总线读得一个BIT
MOV R3,#46
DJNZ R3,$ ;等待46微妙
RRC A ;把读得的位值环移给A
DJNZ R2,RE01 ;读下一个BIT
MOV @R1,A
INC R1
DJNZ R4,RE00
RET
END
http://www.phpchina.com/html/68/n-34068.html
很多程序员在干了两三年后,会有一阵子的迷惘,他们在想,我这样子的算是优秀的程序员吗?这日子一天一天的过,每天不断的重复,也不知道干了些什么。其实当你有这个迷惘的时候,证明你最少是一个熟手了,不是刚毕业那会,急着工作,什么都不会,凡事现学,那时候想不到这个问题。当你做了两三年,公司里的项目基本都对你不陌生了,你也算是这个公司的老人了,对于写代码完成任务,非常容易了。这个时候人很容易感到厌倦,弄来弄去还是这点东西,没劲啊。这个时候特想知道别人是怎么过来的,别人每天都在干吗。我是不是要学点新的东西了呢。阅读全文
以PHP同事突然问我这个问题,呵呵,记录一下:
方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
方法二: dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
方法二 不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
truncate table 表名
方法二: dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。
方法二 不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
转载来源:http://www.160km.com/bear/?p=103
javascript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。天空
例如:<script language=”javascript”>document.write(’<a href=”http://www.160km.com/?logout&aid=7& u=’+encodeURIComponent(”http://www.160km.com/bruce42″)+’”>退出</a& gt;’);</script>
2、 进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI(”http://www.160km.com/do/s?word=小福&ct=21″);
3、 js使用数据时可以使用escape
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z
javascript对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。天空
例如:<script language=”javascript”>document.write(’<a href=”http://www.160km.com/?logout&aid=7& u=’+encodeURIComponent(”http://www.160km.com/bruce42″)+’”>退出</a& gt;’);</script>
2、 进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI(”http://www.160km.com/do/s?word=小福&ct=21″);
3、 js使用数据时可以使用escape
例如:搜藏中history纪录。
4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。
最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,’,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ‘,(,),*,-,.,_,~,0-9,a-z,A-Z
最近,手机费用暴涨,我得查查短信为何这么多,进入移动网站,得到一个短信清单如下:
短信费 81.05
彩信费 1.80
GPRS流量费 273.33
本地基本话费 1.99
国内长途费 28.03
必选套餐费 20.00
福娃音乐计划套餐费 6.00
费用合计 412.20
短信总记录数 1114
免费短信记录数 300
重点查短信:
发送时间 通信类型 对方号码 基本通话费
短信条数 短信号码
两个大头,共发短信552:
得到完美的结论。。。呵呵呵!
去掉重复的QQ号码,(一个号码一行):
短信费 81.05
彩信费 1.80
GPRS流量费 273.33
本地基本话费 1.99
国内长途费 28.03
必选套餐费 20.00
福娃音乐计划套餐费 6.00
费用合计 412.20
短信总记录数 1114
免费短信记录数 300
重点查短信:
发送时间 通信类型 对方号码 基本通话费
11月01日00:00:33 普通短信 861377489428* 0.00
11月01日00:01:16 普通短信 861358196226* 0.00
11月01日00:04:53 普通短信 861377489428* 0.00
11月01日00:08:03 普通短信 861386815989* 0.00
通过editplus按住:alt+鼠标选取出号码,丢如Linux,通过命令:cat mobile.txt|sort > mobile_number11月01日00:01:16 普通短信 861358196226* 0.00
11月01日00:04:53 普通短信 861377489428* 0.00
11月01日00:08:03 普通短信 861386815989* 0.00
cat mobile.txt |sort |uniq -c
短信条数 短信号码
65 861350110466*
44 861365766558*
94 861377489428*
10 861381000687*
239 861386815989*
44 861365766558*
94 861377489428*
10 861381000687*
239 861386815989*
两个大头,共发短信552:
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt |grep 861358196226*|wc
313 313 4695 这是**的
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt |grep 861386815989*|wc
239 239 3585 这个是**点的
313 313 4695 这是**的
[xiangdong2@101/udp mobile]$ cat sort_mobile_number.txt |grep 861386815989*|wc
239 239 3585 这个是**点的
得到完美的结论。。。呵呵呵!
去掉重复的QQ号码,(一个号码一行):
cat qqyellow.txt |sort|uniq -c
1.Linux下关闭和开启防火墙
1) 重启后生效
2) 即时生效,重启后失效
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 字串6
2.查看防火墙:
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 字串6
[root@101/udp socket_interface]# /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
2.查看防火墙:
iptables -L
1.下载程序:
去这个网站下载:http://www.it-adv.net/index.php?action=downloads,然后:LINUX X86/32版全新发布fetion20080910048-linux.tar.gz,下载地址:
http://www.it-adv.net/fetion/download/fetion20080910048-linux.tar.gz
如果是64位的请下载:LINUX X86/64版全新发布fetion20080910047-lin64.tar.gz
下载地址:
http://www.it-adv.net/fetion/download/fetion20080910047-lin64.tar.gz
2.下载链接库库:
LINUX X86/32支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
下载地址:
http://www.it-adv.net/fetion/library32.rar
解压到:/home/xiangdong2/sms/library32
如果是64位的请下载:
LINUX X86/64支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
http://www.it-adv.net/fetion/library64_linux.tar.gz
export LD_LIBRARY_PATH=/home/xiangdong2/sms/library32 //这一步很重要,添加链接库到环境变量LD_LIBRARY_PATH中
cd install #注:自动解到install目录
./fetion -u xxxxxxxx #运行即可 -u 后面为您的飞信账号,如:
登陆... 服务器返回数据中无法定位sipc-proxy
这个问题我也不清楚,呵呵!
你也可以把:/home/xiangdong2/sms/library32 的所有的东西放到fetion的目录里面,然后直接运行:
web飞信:
http://www.websafeguard.cn/webfetion/
资料:
telnet 221.176.31.36 8080
把那两个lib文件cp到lib目录下:直接运行:./fetion
netstat -ntp:
正确应该是:
tcp 0 0 10.1.27.61:33684 221.176.31.36:8080 ESTABLISHED 968/fetion
Debug:
LD_LIBRARY_PATH=. ./fetion -u 13811461081 -p 001002 -d
在当前目下生成:13811461081_debug.log 类似文件名称!
FreeBSD:
FreeBSD的支持库直接从ports安装揪可以: cd /usr/ports/devel/ace && make install clean
下载:FreeBSD最新程序:freebsd 版飞信 20081128
地址:http://www.it-adv.net/fetion/fetion_freebsd_20081128.tar.gz
如下:
下载cacti 插件.
cacti 页面导入插件
将应用程序解压到/data/monitor/目录
将支持库直接解压到/data/monitor/目录
cp lib*so* /usr/lib/
ln -s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4
ln -s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4
以下配置为linux 配置。freebsd 中没有配置也一样可以运行
设定lib库配置文件
#vi /etc/ld.so.conf
#增加一条
/usr/lib/
#保存退出后,执行
#ldconfig
先编译麻烦:
pkg_add -r ace
站长提供的是在:freebsd7.0开发的一个二进制文件,6.2的容易出现问题啊。。!
去这个网站下载:http://www.it-adv.net/index.php?action=downloads,然后:LINUX X86/32版全新发布fetion20080910048-linux.tar.gz,下载地址:
http://www.it-adv.net/fetion/download/fetion20080910048-linux.tar.gz
如果是64位的请下载:LINUX X86/64版全新发布fetion20080910047-lin64.tar.gz
下载地址:
http://www.it-adv.net/fetion/download/fetion20080910047-lin64.tar.gz
2.下载链接库库:
LINUX X86/32支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
下载地址:
http://www.it-adv.net/fetion/library32.rar
解压到:/home/xiangdong2/sms/library32
如果是64位的请下载:
LINUX X86/64支持库下载:解压到同级目录,以LD_LIBRARY_PATH=. ./fetion的形式运行
http://www.it-adv.net/fetion/library64_linux.tar.gz
export LD_LIBRARY_PATH=/home/xiangdong2/sms/library32 //这一步很重要,添加链接库到环境变量LD_LIBRARY_PATH中
tar xzf fetion200XXXXXXXX-linux.tar.gz
cd install #注:自动解到install目录
./fetion -u xxxxxxxx #运行即可 -u 后面为您的飞信账号,如:
./fetion -u 660157287
请输入密码:登陆... 服务器返回数据中无法定位sipc-proxy
这个问题我也不清楚,呵呵!
你也可以把:/home/xiangdong2/sms/library32 的所有的东西放到fetion的目录里面,然后直接运行:
LD_LIBRARY_PATH=. ./fetion -u 660157287 -p ****密码****
LD_LIBRARY_PATH=. ./fetion -u 13811461081 -p ****密码****
web飞信:
http://www.websafeguard.cn/webfetion/
资料:
telnet 221.176.31.36 8080
把那两个lib文件cp到lib目录下:直接运行:./fetion
netstat -ntp:
正确应该是:
tcp 0 0 10.1.27.61:33684 221.176.31.36:8080 ESTABLISHED 968/fetion
Debug:
LD_LIBRARY_PATH=. ./fetion -u 13811461081 -p 001002 -d
在当前目下生成:13811461081_debug.log 类似文件名称!
FreeBSD:
FreeBSD的支持库直接从ports安装揪可以: cd /usr/ports/devel/ace && make install clean
下载:FreeBSD最新程序:freebsd 版飞信 20081128
地址:http://www.it-adv.net/fetion/fetion_freebsd_20081128.tar.gz
如下:
下载cacti 插件.
cacti 页面导入插件
将应用程序解压到/data/monitor/目录
将支持库直接解压到/data/monitor/目录
cp lib*so* /usr/lib/
ln -s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4
ln -s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4
以下配置为linux 配置。freebsd 中没有配置也一样可以运行
设定lib库配置文件
#vi /etc/ld.so.conf
#增加一条
/usr/lib/
#保存退出后,执行
#ldconfig
先编译麻烦:
pkg_add -r ace
站长提供的是在:freebsd7.0开发的一个二进制文件,6.2的容易出现问题啊。。!
**rvinzhou(周*飞) 14:28:27
波波 请教个问题 你晓得一个php请求 在服务器上占用多少内存 这个有办法查的吗
jackxiang(向东) 14:30:23
$a = memory_get_usage(); Bytes为单位。
也就是当时 PHP 脚本使用的内存(不含 memory_get_usage() 函数本身占用的内存)
由下面的例子可以看出,要想减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除(下面就是测试真的销毁了没)。类似的还有:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。
PHP memory_get_usage()还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;当设置为 TRUE 时,得到的内存为不包括该函数(PHP 内存管理器)占用的内存。
所以在实际编程中,可以用PHP memory_get_usage()比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。
阅读全文
波波 请教个问题 你晓得一个php请求 在服务器上占用多少内存 这个有办法查的吗
jackxiang(向东) 14:30:23
$a = memory_get_usage(); Bytes为单位。
也就是当时 PHP 脚本使用的内存(不含 memory_get_usage() 函数本身占用的内存)
由下面的例子可以看出,要想减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除(下面就是测试真的销毁了没)。类似的还有:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。
PHP memory_get_usage()还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;当设置为 TRUE 时,得到的内存为不包括该函数(PHP 内存管理器)占用的内存。
所以在实际编程中,可以用PHP memory_get_usage()比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。
<?php
for ( $i = 1; $i < 100; $i++ ) {
$str = str_repeat('01234567', $i);
$a = memory_get_usage();
unset($str);
echo $str;
$b = memory_get_usage();
echo "\n<br />".$i.': '.($b - $a).' Bytes.';
}
?>
for ( $i = 1; $i < 100; $i++ ) {
$str = str_repeat('01234567', $i);
$a = memory_get_usage();
unset($str);
echo $str;
$b = memory_get_usage();
echo "\n<br />".$i.': '.($b - $a).' Bytes.';
}
?>
<br />10: 0 Bytes.
<br />11: 0 Bytes.
<br />12: 0 Bytes.
<br />13: 0 Bytes.
<br />14: 0 Bytes.
<br />15: 0 Bytes.
<br />16: 0 Bytes.
<br />17: -148 Bytes.
<br />18: -156 Bytes.
<br />19: -164 Bytes.
<br />20: -172 Bytes.
<br />21: -180 Bytes
<br />11: 0 Bytes.
<br />12: 0 Bytes.
<br />13: 0 Bytes.
<br />14: 0 Bytes.
<br />15: 0 Bytes.
<br />16: 0 Bytes.
<br />17: -148 Bytes.
<br />18: -156 Bytes.
<br />19: -164 Bytes.
<br />20: -172 Bytes.
<br />21: -180 Bytes
阅读全文
第一种方法:$varname=null
第二种方法:unset($varname)
代码:
结果:
第二种方法:unset($varname)
代码:
<?php
$a = array(
'a' => 'a',
'b' => 'b'
);
$b = array(
'a' => 'a',
'b' => 'b'
);
$a['b'] = null;
unset($b['b']);
print('<pre>');
print_r($a);
print('<br />');
print_r($b);
print('</pre>');
?>
$a = array(
'a' => 'a',
'b' => 'b'
);
$b = array(
'a' => 'a',
'b' => 'b'
);
$a['b'] = null;
unset($b['b']);
print('<pre>');
print_r($a);
print('<br />');
print_r($b);
print('</pre>');
?>
结果:
Array
(
[a] => a
=>
)
Array
(
[a] => a
)
(
[a] => a
=>
)
Array
(
[a] => a
)
访问世纪流年BLOG站时看到的一段文字,对设计模式的解释很风趣,能够让人很快的了解其含义,学到了不少东西,以下是文章的内容:
对设计模式很有意思的诠释,呵呵,原作者不详。
我来添加一句:世纪流年就是现在thinkPHP的原作者,我读大学的时候找他要到过前世纪流年BLOG站的模板!
阅读全文
对设计模式很有意思的诠释,呵呵,原作者不详。
我来添加一句:世纪流年就是现在thinkPHP的原作者,我读大学的时候找他要到过前世纪流年BLOG站的模板!
阅读全文
# cat stream
#! /bin/bash
# Write by Neil.xu qq:37391319 email: xurongzhong@gmail.com
# 2008-8-19 we need to monitor streams of LTS channels, so write this script
typeset in in_old dif_in dif_in1 dif_out1
typeset out out_old dif_out
in_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }' )
out_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')
while true
do
sleep 1
in=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }')
out=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')
dif_in=$((in-in_old))
dif_in1=$((dif_in * 8 / 1024 / 1024 ))
dif_out=$((out-out_old))
echo " IN: ${dif_in} bytes OUT: ${dif_out} bytes "
dif_out1=$((dif_out * 8 / 1024 / 1024 ))
echo "IN: ${dif_in1} mbps OUT: ${dif_out1} mbps"
in_old=${in}
out_old=${out}
done
#! /bin/bash
# Write by Neil.xu qq:37391319 email: xurongzhong@gmail.com
# 2008-8-19 we need to monitor streams of LTS channels, so write this script
typeset in in_old dif_in dif_in1 dif_out1
typeset out out_old dif_out
in_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }' )
out_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')
while true
do
sleep 1
in=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $1 }')
out=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{ print $9 }')
dif_in=$((in-in_old))
dif_in1=$((dif_in * 8 / 1024 / 1024 ))
dif_out=$((out-out_old))
echo " IN: ${dif_in} bytes OUT: ${dif_out} bytes "
dif_out1=$((dif_out * 8 / 1024 / 1024 ))
echo "IN: ${dif_in1} mbps OUT: ${dif_out1} mbps"
in_old=${in}
out_old=${out}
done
startkde :可以成功.请教: 为什么startx不能起? gnome-session &
最近在做公司的服务器网络监控。由于要做到实时监控,所以想到要用发送短信到手机的方式。在网上找到一个linux命令行下的飞信工具。来配合 nagios做监控。服务器有任何状况都可以发送短信到手机上。这样对于系统管理者来说很是方便。我在Debian和Ubuntu下测试成功。下面是飞信在debian系统的安装过程。
1.首先手机要开通中国移动的飞信业务。目前使用飞信发送短信是免费的。
2.下载飞信的linux客户端程序.解开包后只有一个文件sms。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要libace的glibc库的支持。阅读全文
1.首先手机要开通中国移动的飞信业务。目前使用飞信发送短信是免费的。
2.下载飞信的linux客户端程序.解开包后只有一个文件sms。不错。这个就是飞信发送短信的程序啦。现在的飞信还是不能用的。因为它需要libace的glibc库的支持。阅读全文