<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Skynet

    ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks

    #


    1.windows cygwin 版本 
      find . -type d|
       
    du |
        
    gawk '{if($1=="0"){print $2}}' |     #我這使用 cygwin判斷 $1==0  ,如果使用 linux 那就 $1=="4"
           sort 
    -ru |
             gawk '{system(
    "rmdir "$0)}'

    2.linux  版本(其實(shí),這個(gè)太不嚴(yán)謹(jǐn)!)
    find . -type d|
        du 
    -|
         gawk 
    '{if($1=="4"){print $2}}' |   
           
    sort -ru |
             gawk 
    '{system("rmdir "$0)}'

    3.shell + python
    查找 文件夾大小py,參考:獲取文件夾大小的python代碼
    #!/bin/python
    import os,sys
    from os.path import join, getsize

    def getdirsize(dir):
            size 
    = 0L;
            
    for root, dirs, files in os.walk(dir):
                   
    size += sum([ getdirsize(join(root,dname)) for dname in dirs ]);
                    size += sum([getsize(join(root, name)) for name in files]);
                    
    return size;

    dir_path
    =sys.argv[1];
    filesize 
    = getdirsize(dir_path);
    print dir_path,"\t",filesize ;

    shell
    find . -type d -exec python getDirSize.py {} \;|
    sort
     -ru |
    gawk 
    '{if($2=="0"){print $1}}' |
    gawk 
    '{system(" rmdir "$0)}'





    find . -type d #查找文件夾
    du  #文件夾大小
    gawk '{if($1=="0"){print $2}}' #文件夾為 0 輸出
    sort -ru #為刪除準(zhǔn)備( 比如 文件夾 ./t1 空 ./t1/t11 空 。排序?yàn)?先 ./t1/t11 后 ./t1 。這刪除就不會錯(cuò)  )
    gawk '{system("rmdir "$0)}' #野蠻的刪除







    其他:
    結(jié)合sort -u  可以找出最小或最大 幾個(gè)文件

    #!python
    #
     python this.py /home/xj_liukaiyi/imusic/ ".*128kbps\/.*\.mp3"
    import os,sys,re
    from os.path import join, getsize

    def getdirsize(dir,refile):
        
    for root, dirs, files in os.walk(dir):
        
    for dname in dirs :
            getdirsize(join(root,dname),refile)
            
    for name in files :
                ffname
    =join(root,name)
                
    if re.search(refile,ffname):
                    
    print "%09d\t%s" % (getsize(ffname),ffname)

    dir_path
    =sys.argv[1];
    file_re
    =sys.argv[2];

    filesize 
    = getdirsize(dir_path,file_re);


    posted @ 2009-03-18 15:03 劉凱毅 閱讀(3704) | 評論 (2)編輯 收藏

    比如 日志,和shell運(yùn)行
    #!/bin/perl -w
    use Time::Local;

    my $log_input_file="~/log";
    sub set_log_input_file{
      
    $log_input_file=$_[0];
    }


    #&perl_log("tt","/home/xj_liukaiyi/log");
    sub perl_log{
      
    my $log_msg=shift @_;
      
    print $log_msg,"\n";
      
    system 'ttmp1=$(date +%Y-%k-%d);ttmp2=$(date +%M:%S);echo "$ttmp1 $ttmp2:'."$log_msg".'" >>'.$log_input_file;
    }

    #&system_util("xls -l","~/log");
    sub system_util{
      
    my $comm=shift @_;
      
    my @return=system $comm;
      
    if ( $return[(@return-1)] == 0 ) { 
         
    &perl_log("[success]".$comm,$log_input_file);
      }
    else{
         
    &perl_log("[error]".$comm,$log_input_file);
      }
      
    return $return[(@return-1)];
    }

    1;

    excel 讀取util 
    require("/home/xj_liukaiyi/src/perl/excel/excelUtil.pl");&parse_excel("2w.xls","歌曲列表","&read_wlh);
    #!/bin/perl -w
    use Spreadsheet::ParseExcel;
    use Spreadsheet::ParseExcel::FmtUnicode; 
    use Encode;
    use Unicode::Map();
    my $Map = new Unicode::Map("GB2312");


    my $excelCODE='gb2312';
    my $coslCODE='utf8';

    my %parseCache ;
    my %writeCache ;

    my $oFmtJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map =>$excelCODE); 
    my $oExcel = new Spreadsheet::ParseExcel;



    #
    #&parse_excel("all4.xls","樂撲","&read_lp); 
    # sub read_lp{  $_[1 .. 2.3  ] }
    sub parse_excel{
     
    my $sExcelName=shift;
     
    my $sSheetName=shift;
     
    my $action_fun=shift;
     
     
    my($iR, $iC, $oWkS,$oWkC);
     
    #開啟 excel
     my $oBook = $oExcel->Parse($sExcelName,$oFmtJ);
     
    #根據(jù) sheet 名稱匹配 
     for(my $iSheet=0$iSheet < $oBook->{SheetCount} ; $iSheet++){
        
    my $t_oWkS = $oBook->{Worksheet}[$iSheet];
        
    my $sWkSName=encode($coslCODE,decode($excelCODE,$t_oWkS->{Name} ));
        
    if($sWkSName=~/$sSheetName/){
          
    $oWkS=$t_oWkS;
          
    last;
       }
     }


     
    for(my $iR = $oWkS->{MinRow} ;
         
    defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ;
         
    $iR++){
         
    my @arr_row;
         
    for(my $iC = $oWkS->{MinCol} ;
             
    defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ;
             
    $iC++){
           
    $oWkC=$oWkS->{Cells}[$iR][$iC];
           
    my $col_value="";
               
    $col_value=encode($coslCODE,decode($excelCODE,$oWkC->Value) ) if ($oWkC) ;
               
    push(@arr_row,$col_value);
             }
          
    push(@arr_row,$iR);
         
    $action_fun->(@arr_row);
        }
    }

    #使用 demo
    find . -maxdepth 1 -name "*xls" -exec perl -'
    require("/home/xj_liukaiyi/src/perl/excel/excelUtil.pl");
    my $file=$ARGV[0];
    sub myRead{
      my $str="";
      foreach$tmp(@_){
        $str+"$tmp\t";
      }
      system "echo $str >> $file.data";
    }
    &parse_excel("$file",0,\&myRead);
    print "$file\n";
    ' {} \;



    posted @ 2009-03-17 13:49 劉凱毅 閱讀(1434) | 評論 (1)編輯 收藏


    /usr/bin/convmv -r -f UTF-8 -t GBK --notest --lowmem  .
    posted @ 2009-03-15 15:41 劉凱毅 閱讀(222) | 評論 (0)編輯 收藏


    文件屬性查看:
    file test.mp3
    >>test.mp3: MP3, 128 kBits, 44.1 kHz, JStereo

    ffmpeg -i test.mp3
    >>Input #0, mp3, from 'test.mp3':
      Duration: 00:04:31.26, start: 0.000000, bitrate: 128 kb/s
        Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
    At least one output file must be specified



    lame :linux 其他格式轉(zhuǎn) mp3 工具 ;
    位數(shù) --abr 16/8/4
    聲道 -m s/m
    采樣率 --resample 16/44.1..
    碼率/比特率 -b 128/64
     lame --resample 16 --abr 16  -m s -b 128 test.mp3  07_128.mp3


    ffmpeg : linux 視頻音頻處理
    *位數(shù)
    采樣率 -ar
    聲道 -ac 1/2
    碼率/比特率 -ab 32/218  <acc>
      ffmpeg -i test.mp3 -ar 44100  -ac 2 -ab 32  18_32.aac



    <wav>
      ffmpeg -i test.mp3 -ar 22050  -ac 1 -ab 32  _32.wav


    <wma>
      ffmpeg -y  -i test.mp3 -acodec wmav2  -ar 44100  -ac 2 -ab 32000 24.wma

    sox : linux 開源音頻轉(zhuǎn)換(只支持開源格式).
    <vox_2>
      ffmpeg -y  -i test.mp3 -acodec pcm_alaw  -ar 4000  -ac 1 -ab 32000  22_tmp.wav
      sox 22_tmp.wav -r 8000  22.vox


    posted @ 2009-03-14 12:05 劉凱毅 閱讀(1551) | 評論 (0)編輯 收藏


    cvs -> root project

    到需要掛載到 eclipes的目錄下
    1.dos>mvn eclipes:eclipes
    2.dos>mvn package
    3.eclipes>  import > General .. > Existing projectint .... > (所需要 子工程)





    posted @ 2009-03-12 11:45 劉凱毅 閱讀(292) | 評論 (0)編輯 收藏



    工具小腳本
    #!/bin/perl
    use File::Find;
    use Log::FileSimple;

    #use strict;
    #use warnings;

    # 說明: 
    #     遍歷出 "/cygdrive/c/Documents and Settings/Administrator/"  
    #       滿足 "^.*\.txt$" 添加文件
    #         并運(yùn)行 "ls -l $fileAllName " 
    #    運(yùn)行日志 ./log
    #
    # perl this.pl  
    #     "ls -l $fileAllName " 
    #     "/cygdrive/c/Documents and Settings/Administrator/"  
    #     "^.*\.txt$"
    #     ./log
    #
    # run_comm 參數(shù)1 替換說明:
    #     $filePath  為輸入?yún)?shù)2,遍歷根目錄 "/cygdrive/c/Documents and Settings/Administrator/"  
    #    $fileAllName 為當(dāng)前遍歷,滿足正則條件的 全路徑+文件名
    #    $logicFileAllName  為當(dāng)前遍歷,滿足正則條件的 邏輯路徑+文件名
    #    $logicFilePath 為當(dāng)前遍歷,邏輯路徑
    #    $logicFileName 文件名稱
    #    $logicFileExp  文件后綴  
    #        (test.txt 文件  
    #            $logicFileName 為 test 
    #            $logicFileExp 為 txt
    #            )


    my $run_comm=$ARGV[0];
    my $file_path=$ARGV[1];
    my $file_find_rex=$ARGV[2];
    my $logfile=$ARGV[3];


    my $log = new Log::FileSimple(name=> 'Log::FileSimple logs',
                                  file      
    => "$logfile",
                                  mask      
    => -1,
                                  autoflush 
    => 0,
                                  );

    sub fileThumb{
     
    eval{
      
    $_tmp_run_comm=$run_comm ;
      
    if/$file_find_rex/ ){
        
    $fileNum++;
        
    $_tmp_run_comm=~s/\$filePath/$file_path/g;
        
        
    my $_file_all_name=$File::Find::name;
        
    $_tmp_run_comm=~s/\$fileAllName/$_file_all_name/g;
        
    my $_logic_file_all_name=$_file_all_name;
              
    $_logic_file_all_name=~s/$file_path//g;
            
    $_logic_file_all_name=~s/^\s*\.//g;
        
    $_tmp_run_comm=~s/\$logicFileAllName/\.\/$_logic_file_all_name/g;
        
    if($_logic_file_all_name=~/^(.*)\/([^\/]*)\.([^\.]*)$/){
          
    my $_logic_file_path=$1;
          
    my $_logic_file_name=$2;
          
    my $_logic_file_exp=$3;
          
    $_tmp_run_comm=~s/\$logicFilePath/\.\/$_logic_file_path/g;
          
    $_tmp_run_comm=~s/\$logicFileName/$_logic_file_name/g;
          
    $_tmp_run_comm=~s/\$logicFileExp/$_logic_file_exp/g;
          }
        
    #print $_tmp_run_comm,"\n";
        my @return=eval{system("$_tmp_run_comm 2>&1 \|echo \$\? ")};
        
    if ( $return[(@return-1)] != 0 ) { 
          
    $log->log(message=>"success($fileNum):$_file_all_name");
           }
    else{
          
    $log->log(message=>"error($fileNum):$_file_all_name");
            }
      }
     }
    }


    find(
    \&fileThumb,$file_path);

    posted @ 2009-03-02 17:51 劉凱毅 閱讀(1241) | 評論 (0)編輯 收藏


    可能最簡單的 soap 哦!
    服務(wù)器為 java tomcat
    下載服務(wù)器:http://www.apache.org/dist/ws/
       axis/ 為java
       axis-c/    為 c

    1.我這下載的 axis 1_4 版本 ,解壓 /webapps/axis  放到 tomcat 的webapps
    啟動tomcat(這就不修改任何,如有需要 該 web.xml 等配置了) 參考 >>
        blog 主 還有很多介紹 axis 大家可以 看看  日志 > 其下的 "學(xué)習(xí)"

    直接寫個(gè)文件 HelloWorld.jws 放到 %TOMCAT_HOME%"webapps"axis
    public class HelloWorld {   
         
    public String sayHello()   {   
         
    return "HELLO soap!";    
     }    


    等不及 可以使用 看看
    http://127.0.0.1:8080/axis/HelloWorld.jws?method=sayHello
    結(jié)果 :
    <soapenv:Envelope>
    <soapenv:Body>
    <sayHelloResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <sayHelloReturn xsi:type="xsd:string">HELLO soap!</sayHelloReturn>
    </sayHelloResponse>
    </soapenv:Body>
    </soapenv:Envelope>


    客戶段
    perl cpan >> install  SOAP::Lite
    #!perl -w
    use SOAP::Lite;
    print SOAP::Lite
        
    -> proxy('http://127.0.0.1:8080/axis/HelloWorld.jws')
        
    -> uri('http://127.0.0.1:8080/axis/HelloWorld.jws')
        
    -> sayHello()
        
    -> result;
    結(jié)果: HELLO soap!




    posted @ 2009-03-02 00:00 劉凱毅 閱讀(1454) | 評論 (0)編輯 收藏


    安裝參考:
       http://www.cnblogs.com/cerxp/archive/2008/04/22/1165620.html

    相對 memcached 增強(qiáng)的功能:
      1. 墜機(jī)后,“緩存”初始化回到斷電前
      2. 支持同步(可看成集群)Memcachedb 簡單使用

    代價(jià):
      比 memcached 慢 15%
    參考:http://swik.net/Jabber-linux/Jabber+XMPP+resource/memcachedb%E7%9A%84%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/b1odq

    posted @ 2009-02-26 16:23 劉凱毅 閱讀(345) | 評論 (0)編輯 收藏



      看看我這張 web  系統(tǒng)架構(gòu)圖,那就知道 使用統(tǒng)一存儲格式的好處了。
      在這種結(jié)構(gòu)中你就單純使用 java ,或 php 某一種單一語言描述格式,存儲你集群交互的數(shù)據(jù)嗎!?使用
    ProtocolBuffers 吧,Google 已經(jīng)有 現(xiàn)成的api來幫你擴(kuò)展了。

    參考:
    http://blog.csdn.net/lcj8/archive/2009/02/17/3900157.aspx




         作為 Memcached 就是為集群使用,那么作為在緩存存儲的數(shù)據(jù)我想也應(yīng)該適用與各種環(huán)境,這時(shí)候 數(shù)據(jù)結(jié)構(gòu)協(xié)議 Google ProtocolBuffers
    參考:http://code.google.com/apis/protocolbuffers/docs/overview.html
    其他語言:http://code.google.com/p/protobuf/wiki/OtherLanguages
    (可適用與多種語言,
        javascript 讀取緩存中的數(shù)據(jù) ,你可以想象下你的 web服務(wù)開發(fā) 的將來!)



    目前學(xué)習(xí)perl 中 就先上個(gè)這的代碼:
    參考:
    http://search.cpan.org/~gariev/Google-ProtocolBuffers-0.08/lib/Google/ProtocolBuffers.pm#___top
    #!/bin/perl -w
    use Cache::Memcached;
    use Google::ProtocolBuffers;
    #開啟 memd
    my $memd = new Cache::Memcached{servers => ['10.0.2.15:11211'] };

    #聲明 緩存 存儲 protocol 格式
    my $key='test';
    Google
    ::ProtocolBuffers->parse("
      message Person{
        required int32 id           =1;
        required string name        =2;
      }
    ",{create_accessors=>1});

    my $data=Person->encode({
      id
    =>123,
      name
    =>'liukaiyi'
    });

    #緩存存儲
    $memd->add($key =>$data,3600);

    #######################################################################


    my $memd = new Cache::Memcached{servers => ['10.0.2.15:11211'] };
    my $person;{
      #從緩存中取出
      
    $person = Person->decode($memd->get($key));
    }

    print $person->id,"-",$person->name;

     


    結(jié)果:
      123-liukaiyi


    posted @ 2009-02-26 13:45 劉凱毅 閱讀(1569) | 評論 (0)編輯 收藏

     
      這大體上可以看出,服務(wù)器端口緩存技術(shù)。

      memcached 官方:http://www.danga.com/memcached/
      安裝前,先安裝 libevent
      其上為 linux 軟件一般安裝,看他們r(jià)eadme文檔
      $>memcached -d -u nobody -m 512 127.0.0.1 -p 11211
     
      如果有異常,
      ln -s /usr/local/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2
      參考 
    http://blog.chinaunix.net/u2/70049/showart_1665279.html
      我這就使用 perl 語言了,
       其他語言參考 http://code.google.com/p/memcached/wiki/Clients

       perl 使用 cpan> install Cache::Memcached ;#會使用 perl 我就不說了
    代碼說明:不停對 key 為test 的值進(jìn)行遞增  
    #!/bin/perl -w
    use Cache::Memcached;

    my $memd = new Cache::Memcached{servers => ['127.0.0.1:11211'] };
    my $key = 'test';
    $memd->add($key => 1,3600) or warn 'Alread added';
    while(1){
      
    print $memd->get($key),"\n";
      
    $memd->incr($key) or warn 'FAIL!';
    }


    使用 telnet 127.0.0.1 11211
         $> get  test
         VALUE test 0 2
         97 #這就是我們遞增的值,當(dāng)然你使用什么語言取都是一樣的
         END

    posted @ 2009-02-25 16:23 劉凱毅 閱讀(1791) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共12頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 
    主站蜘蛛池模板: 亚洲区精品久久一区二区三区| 四虎成人精品永久免费AV| 99久久精品国产亚洲| 啊v在线免费观看| 国产四虎免费精品视频| 成人黄网站片免费视频| 一级毛片a女人刺激视频免费| 亚洲av永久无码精品三区在线4| 亚洲国产另类久久久精品黑人| 国产一区二区三区免费视频| 99久久综合国产精品免费| 日韩免费观看一区| 久久毛片免费看一区二区三区| 鲁啊鲁在线视频免费播放| 亚洲国产精品嫩草影院| 亚洲日韩乱码中文无码蜜桃臀| 久久精品国产亚洲AV麻豆~| 成人午夜亚洲精品无码网站| 免费播放春色aⅴ视频| 国产男女性潮高清免费网站| 手机在线免费视频| A在线观看免费网站大全| 国产精品免费观看| 99免费观看视频| 久久久久久国产精品免费免费男同| 国产福利在线观看永久免费| 又硬又粗又长又爽免费看| 免费人成动漫在线播放r18| 黄色a三级免费看| 免费无遮挡无遮羞在线看| 免费福利资源站在线视频| 无码天堂va亚洲va在线va| 粉色视频成年免费人15次| 含羞草国产亚洲精品岁国产精品 | a级毛片毛片免费观看久潮喷| 一级毛片成人免费看a| 青青草国产免费国产是公开| 视频免费1区二区三区| 一级一级一级毛片免费毛片| 韩国免费A级毛片久久| 国产午夜精品久久久久免费视|