月度归档:2014年02月

一个保证端口运行的shell程序

#配置部分
function checkinfos(){ 
echo "
10079 /data0/uscpool/uscpool /data0/uscpool/dbmcidian.conf >/dev/null 2>&1   & 
"   
} 

#根据端口解析命令 
function port_cmd(){ 
   checkinfos | grep $1 | awk '{print $2,$3,$4,$5,$6}' 
} 
 
#获取所有需要检测的端口 
function check_ports(){ 
   checkinfos | awk '{print $1}' 
} 
 
#检测一个端口 
function do_port(){ 
  port_running=$(/usr/sbin/lsof -i :$1 | wc -l)                                                  
  if [ $port_running -gt 0 ] ; then                                                              
     echo "$1 OK" ;                                                                              
  else                                                                                           
     cmd=$(port_cmd $1)                                                                          
      $($cmd) > /dev/null 2>&1 & 
  fi                                                                                             
}        


#开始执行                                                                                        
ports=$(check_ports)                                                                             
                                                                                                 
for port in $ports ;                                                                             
do                                                                                               
  do_port $port                                                                                  
done    

查看php源代码时候可能需要的两个函数

/**
* get function defined files.
*/
function get_fun_src($fun){
    if(function_exists($fun)){
        $reflection = new ReflectionFunction($fun);
        return $reflection->getFileName();  
    } else {
        return false;
    }
}

/**
* get the object class defined files.
*/
function get_obj_src($obj){
    if($obj) {
        $class_reflection = new ReflectionClass($obj);
        return $class_reflection->getFilename();
    } else {
        return false;
    }
}