自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

clliu的专栏

会当凌绝顶 一览众山小

  • 博客(37)
  • 收藏
  • 关注

原创 利用Python替换文件中的字符串

Python对文件中字符串的替换操作没有利用sed那么方便。自己动手写一个,改造一下可以作为工具包给其他文件使用。直接贴上代码,基于Python 2.7.11。#!/bin/env python# -*- coding:utf-8 -*-import sysdef replace(file_path, old_str, new_str): try: f = open(

2016-12-30 17:37:26 16471

原创 Python中类的继承

继承是面向对象编程中一个重要的特性。通过继承机制,实现了代码的重用。同时继承也表明了类和类之间的关系。Python中类的继承简单示例(基于Python 2.7.11),代码如下:#!/usr/bin/env python#-*-coding:utf-8-*-class Grandpa: def __init__(self): self.age = 70

2016-12-08 23:32:52 576

原创 Python urllib2报错"UnicodeDecodeError: 'utf8' codec can't decode byte 0xa1"

用python的urllib2抓取web页面时发现中文显示的乱码:import urllib2#获取手机号的归属地url = "http://www.ip138.com:8080/search.asp?action=mobile&mobile=1380013"request = urllib2.Request(url)request.add_header('User-Agent',

2016-12-08 14:34:26 5962

原创 Win8.1 vmware station 10 无法联网

Win8上安装了VMWare Station 10,同时创建了虚拟机,联网正常。系统升级到Win8.1后发现虚拟机竟无法联网。解决办法:点击菜单栏中的"编辑"-->"虚拟网络编辑器"-->"恢复默认设置",恢复后联网正常。

2014-06-03 22:07:42 1064

原创 虚拟机无法启动

Cannot open the disk 'Red Hat Enterprise Linux 4 64-bit.vmdk' or one of the snapshot disks it depends on.原因分析:这种情况一般是由于非正常关机导致,此时会产生一些后缀为WRITELOCK的文件,解决方法就是删除这些WRITELOCK文件即可。切换到虚拟机目录,rm -f *.WRITE

2014-04-23 22:45:20 824

转载 Shell编写风格指南

Background▽ Bash is the only shell scripting language permitted for executables.Executables must start with #!/bin/bash and a minimum number of flags. Use set to set shell options so that call

2014-04-15 23:10:33 1174

原创 Asterisk上安装lua模块

asterisk支持lua脚本形式的dialplan,由于所使用的Linux发行版没有lua的rpm包,所以需要使用源码安装。记录过程如下:下载并安装lua:# wget http://www.lua.org/ftp/lua-5.1.4.tar.gz# tar zxf lua-5.1.4.tar.gz# cd lua-5.1.4# make输出:Please do 'm

2014-04-02 00:19:17 1761 1

原创 Asterisk12 上使用pjsip模块

PJSIP在Asterisk12中被集成进来,作为asterisk第二个SIP协议栈。以下是安装步骤,记录下来已备忘。首先安装版本控制工具git,在这里只是下载pjsip的代码;下载git-1.8.1.5到/home目录内:# cd /home# tar zxvf git-1.8.1.5.tar.gz# cd git-1.8.1.5下面编译安装:# make prefi

2014-03-29 12:44:03 6535 2

原创 Asterisk中利用ConfBridge实现三方通话

三方通话用到ConfBridge模块,将三方引入到会议室。在呼入和呼出的流程表现如下。呼入:1 客户C呼入,分机E1接听;2 E1 按键 *2 咨询分机E2,此时C听到等待音;3 E1和E2建立通话后,E1按键 ## 将E2引入到会议室,E2进入会议室后听到等待音;4 此时,E1恢复和C的通话;5 E1按键 ** 后,上方都进入会议室;使用的会议室号码是取的UN

2014-03-21 22:48:39 4900

原创 Fiddler2 无法捕捉到 Firefox的问题

Fiddler 是很好的HTTP捉包工具,当安装了Fiddle 2后可能会出现一些诡异的现象。现象1. 无法捕捉Firefox网络包,即使选中了Fiddler -> Rules -> User Agents -> Firefox  也无济于事;现象2. Firefox无法上网;解决办法:打开Firefox,工具 --> Monitor wit Fiddler,会发现有三个子

2014-03-14 12:27:26 2922

原创 利用SIPp对SIP Proxy进行Register压测用到的文件

SIPp功能很强大,通过配置流程可以实现大部分的SIP场景。下面是利用SIPp实现的对OpenSIPS进行REGISTER进行压测的xml文件和csv文件。register.xml <![CDATA[ REGISTER sip:[remote_ip]:[remote_port] SIP/2.0 Via: SIP/2.0/[transport] [l

2014-03-08 21:41:34 1850

原创 possibly undefined macro: AC_TYPE_SSIZE_T

在安装安装SIPp-3.3时遇一些问题:当执行 autoreconf -ivf出错:Can't exec "aclocal": No such file or directory at /usr/bin/autoreconf line 174.Use of uninitialized value in pattern match (m//) at /usr/

2014-03-07 20:43:27 2559

原创 利用bat切换IP

DHCP方式和静态IP方式切换的bat,很方便的。@echo offrem name:ip_switch.bat@echo switch network between home and work networkif "%1" == "home" goto homeif "%1" == "work" goto workif "%1" == "" goto donothi

2014-03-06 22:02:40 926

转载 Shell脚本调试技术

一. 前言shell编程在unix/linux世界中使用得非常广泛,熟练掌握shell编程也是成为一名优秀的unix/linux开发者和系统管理员的必经之 路。脚本调试的主要工作就是发现引发脚本错误的原因以及在脚本源代码中定位发生错误的行,常用的手段包括分析输出的错误信息,通过在脚本中加入调试语句, 输出调试信息来辅助诊断错误,利用调试工具等。但与其它高级语言相比,shell解释器缺乏相应的调

2013-05-23 23:04:41 520

原创 Perl解析json数据

filename: json_test.pl解析json格式数据 1.解析curl返回的json数据;2.解析文件中的json串。测试用文件json_result.txt的内容见本段代码后;#!/usr/bin/perl -wuse WWW::Curl::Easy;use JSON;use Data::Dumper;my $json = new JSON;my $curl

2013-04-25 22:34:19 2220

原创 利用dd克隆系统

由于项目需求,需要在小型设备上安装一些配置相同的系统(CentOS及一些应用软件)。由于整个系统的安装及部署比较麻烦,包括安装操作系统、从svn服务器上co下来相应版本的代码并make && make install、配置网络、配置启动项等等一些东西。考虑到这些配置的一致性,因此比较合适的方法就是安装好一套系统后将之clone到其他设备上。        第1:安装好一台设备,该设备上已经

2013-04-14 20:59:52 2219

原创 利用rsync同步文件

1. rysnc简介rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输。rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜像对每个目标只需要一次传送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输

2013-03-11 23:48:22 1149

原创 setjmp AND longjmp

setjmp/longjmp的典型用途是异常处理机制的实现:利用longjmp恢复程序或线程的状态,甚至可以跳过栈中多层的函数调用。两个函数的原型在setjmp.h中。int setjmp(jmp_buf env)        创建本地的jmp_buf缓冲区并且初始化,用于将来跳转回此处。这个子程序保存程序的调用环境于env参数所指的缓冲区,env将被longjmp使用。如果是从setj

2013-03-09 22:24:56 897

原创 Asterisk dialplan中部分function使用说明

这里介绍一下Asterisk Dialplan中使用比较多的function,帮助大家理解。这些function在Asterisk1.8.5.0上验证通过。CUT()根据分隔符,从字符串中获取子串。语法:CUT(varname,char-delim,range-spec)varname: 字符串char-dellim: 分隔符,默认为"-"range-spec: 子

2012-12-10 09:38:44 1837

转载 tmpwatch让/tmp目录内的文件"离奇"消失

今天服务器上/tmp下的php上传目录upload又没了,不是第一次了,郁闷的很google下后找到原因,原来是tmpwath干的好事。cat /etc/cron.daily/tmpwatchtmpwatch 文件内容 /usr/sbin/tmpwatch -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix -x /tmp/

2012-08-07 19:38:49 1104

转载 vim使用技巧

读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率。部分技巧在vi上也可以使用,但是现在基本上都是用vim了。2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程。3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工

2012-08-03 12:38:24 344

转载 全局变量、局部变量、静态全局变量、静态局部变量的区别

<br />C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。<br /><br />从作用域看:<br />全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。<br />静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别

2010-10-08 18:38:00 512

转载 Linux Shell脚本ldd命令原理及使用方法

<br />Linux Shell脚本ldd命令原理及使用方法<br /><br />1、首先ldd不是一个可执行程序,而只是一个shell脚本<br /><br />2、ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下:LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE等。当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它都

2010-09-29 11:01:00 1226

原创 PHP中字符串分割、获取子串以及向文本框中添加值

<br />1、以空格和逗号分割字符串<br />$str = "a bb ccc dddd,eeeee";<br />$arr = preg_split('/[/s+,]/' , $str);<br />//若只以空格来分割字符串,可以使用preg_split('//s+/' , $str)。<br />print_r($arr);<br />输出结果:<br />Array ( [0] => a [1] => bb [2] => ccc [3] => dddd [4] => ee

2010-09-16 13:28:00 5402

原创 Elastix1.5.2-2源码分析(二)

index.php源码标注

2010-09-15 21:24:00 2876

转载 How-to: Write an Asterisk Module, Part 3

How-to: Write an Asterisk Module, Part 3

2010-09-13 15:39:00 810

转载 How-to: Write an Asterisk Module, Part 2

How-to: Write an Asterisk Module, Part 2

2010-09-13 15:27:00 478

转载 How-to: Write an Asterisk Module, Part 1

Have you ever wanted to write an Asterisk module? While some of the Asterisk modules are quite complicated, the anatomy of an Asterisk module is pretty simple. Let’s start with the “Hello World” of Asterisk modules: res_helloworld.

2010-09-13 15:21:00 705

原创 PHP调试中常用的几种输出方法

PHP开发中,经常会查看变量的值,因此经常会将变量的值输出到页面以便于查看。

2010-09-10 15:40:00 11925

转载 Linux查看CPU信息、机器型号等硬件信息

<br />测试机器的硬件信息:<br />查看CPU信息(型号)<br /># cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c<br />      8  Intel(R) Xeon(R) CPU            E5410   @ 2.33GHz<br />(看到有8个逻辑CPU, 也知道了CPU型号)<br /><br /># cat /proc/cpuinfo | grep physical | uniq -c<b

2010-09-10 14:22:00 584

转载 FreeSWITCH 与 Asterisk 比较

FreeSWITCH 与 Asterisk 比较

2010-09-01 18:21:00 3738

原创 Elastix1.5.2-2源码分析(一)

Elastix 1.5.2-2 源码分析之大体介绍

2010-08-31 21:56:00 1938

原创 忘记CentOS root密码的解决办法

<br />开机进入 grub 选项: <br />(1)在你要进入的系统上按 'e'键进入详细设定; <br />(2)将光标移动到 kernel 上并按 'e' 键进入编辑界面; <br />(3)然后出现如下信息:<br />grub edit> kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/<br />将光标移动该项上,按 'e' 键对该项进行编辑,在后面输入:[空格]rhgb quiet single<br />按下 [enter

2010-08-31 13:43:00 599

原创 将文件备份到FTP服务器上

将文件备份到ftp服务器上

2010-08-31 09:58:00 1572

转载 (转)Asterisk内核框架

Asterisk核心框架介绍

2010-08-30 17:44:00 1525

原创 OpenVox 8FXO板卡驱动安装记录

OpenVox A800P和A1200P的板卡驱动安装及问题解决方法

2010-08-30 17:39:00 2279

原创 linux patch使用笔记

介绍diff和patch的使用

2010-08-30 17:33:00 6783

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除