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

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

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

    巷尾的酒吧

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      64 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

    #

    解決方法如下:     
    1>、進入超級用戶模式。也就是輸入"su -",系統會讓你輸入超級用戶密碼,輸入密碼后就進入了超級用戶模式。
    2>、添加文件的寫權限。也就是輸入命令"chmod u+w /etc/sudoers"。
    3>、編輯/etc/sudoers文件。也就是輸入命令"vim /etc/sudoers",輸入"i"進入編輯模式,找到這一行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"
    (這里的xxx是你的用戶名),然后保存(就是先摁一下Esc鍵,然后輸入":wq")退出。
    4>、撤銷文件的寫權限。也就是輸入命令"chmod u-w /etc/sudoers"。 至此,問題解決。
    posted @ 2012-10-15 22:50 abing 閱讀(207) | 評論 (0)編輯 收藏

    Telnet服務的安裝

           Red Hat Enterprise Linux安裝程序默認沒有安裝Telnet服務,可使用下面命令檢查系統是否已經安裝了Telnet服務或查看已經安裝了何種版本。

    rpm -q telnet-server

           如果系統還沒有安裝Telnet服務。可將Red Hat Enterprise Linux安裝盤放入光驅,加載光驅后找到Telnet服務的RPM安裝包文件,然后安裝Telnet服務。
    yum install telnet-server

    啟動和停止Telnet服務

           Telnet服務并不像其他服務(如HTTP和FTP等)一樣作為獨立的守護進程運行,它使用xinetd程序管理,這樣不但能提高安全性,而且還能使用xinetd對Telnet服務器進行配置管理。

           Telnet服務安裝后默認并不會被xinetd啟用,還要修改文件/etc/xinetd.d/telnet將其啟用。其實/etc/xinetd.d/telnet文件是xinetd程序配置文件的一部分,可以通過它來配置Telnet服務器的運行參數。編輯文件/etc/xinetd.d/telnet,找到語句“disable = yes”,將其改為“disable = no” 。然后使用以下命令重新啟動xinetd服務:#/etc/init.d/xinetd restart

        [root@RHCE~]#vi /etc/xinetd.d/telnet

    posted @ 2012-10-14 23:22 abing 閱讀(263) | 評論 (0)編輯 收藏

    啟動防火墻

    1) 重啟后生效
    開啟: chkconfig iptables on
    關閉: chkconfig iptables off   或者 /sbin/chkconfig --level 2345 iptables off

    2) 即時生效,重啟后失效

    service 方式
    開啟: service iptables start
    關閉: service iptables stop

    iptables方式

    查看防火墻狀態:
    /etc/init.d/iptables status

    暫時關閉防火墻:
    /etc/init.d/iptables stop

    重啟iptables:
    /etc/init.d/iptables restart


    需要說明的是對于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

    查看所有進程,包括服務,命令里ps -aux是netconfig在redhat里面是字符界面下的網卡配置工具。

    chkconfig --list

    可以列出sysV和xinet服務在各個runlevel的默認啟動狀態。

    service 服務名 參數

    查看狀態的參數好像是stat 吧。

    自啟動服務

    ntsysv 
    posted @ 2012-10-14 22:55 abing 閱讀(812) | 評論 (0)編輯 收藏

    一、Fedora 啟動sshd服務:

    1、先確認是否已安裝ssh服務:

      [root@localhost ~]# rpm -qa | grep openssh-server

     openssh-server-5.3p1-19.fc12.i686 (這行表示已安裝)

      若未安裝ssh服務,可輸入:

      #yum install openssh-server 

      進行安裝


    2、修改配置文件

       #vi /etc/ssh/sshd_config

       #Port 22  監聽的端口號,默認是22,可以自定義。

      #Protocol 2  支持的協議,默認就好,不用修改

      #PermitRootLogin yes 是否允許root直接登錄,最好設置為no

        #MMaxAuthTries 6 最大登錄數,默認是6,建議設置為3,防止別人密碼窮舉。

       修改完配置后,重啟SSH服務:

      [root@localhost ~]# /etc/rc.d/init.d/sshd restart

       Stopping sshd: [ OK ]

    Starting sshd: [ OK ]:


    3、查看sshd狀態:

       #service sshd status


    4、將端口22(或者自定義的其他端口)加到防火墻的設置中,標記為Accept

       #iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    (這句很重要,不然外部連接不了。)

       也可以將上述參數加入防火墻配置中:

       #vi /etc/sysconfig/iptables

      加入:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

       保存后重啟iptables即可

    詳情可以查閱 iptables的用法


    二、Fedora15/16/17 啟動sshd服務:

    由于Fedora 15/16使用systemd服務,

    1、啟動SSH服務與上面有些不同

    # systemctl start sshd.service

    或者 #service sshd start

    也可以用 restart 和 stop控制sshd服務


    2、設置系統啟動時開啟服務

    # systemctl enable sshd.service


    3、同樣也需開啟防火墻22端口

       #iptables -A INPUT -p tcp --dport 22 -j ACCEPT

       也可以將上述參數加入防火墻配置中:

       #vi /etc/sysconfig/iptables

       加入:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

       保存后重啟iptables即可

    詳情可以查閱 iptables的用法



    轉載請注明From: http://blog.163.com/jackswu@yeah
    posted @ 2012-10-14 20:06 abing 閱讀(1617) | 評論 (0)編輯 收藏

    在Unix下常遇到一些解包、壓包的問題。一般情況下將若干文件或文件夾打成tar包,是為了便于文件的傳輸和管理。例如,通過FTP從Unix平臺下載目錄結構較多的文件夾到Windows平臺或另外一Unix平臺,雖然文件夾不是太大,但由于每個文件很小,且非常多,每個文件都要進行文件頭、尾檢查校驗。下載速度會非常慢。如果打成tar包,傳輸就會快很多。存檔的文件夾打成tar包也容易管理。
    值得注意的是:tar文件只是將文件或文件夾打包,并沒有進行壓縮。如果文本文件較多,對其壓縮會節省很大的磁盤空間,傳輸將更快。壓縮和解壓縮方法可以參考下文給出的示例。
    下面我以Sun Solaris 5.8(其他unix如linux、aix大體相同)為例,就常見的一些問題向各位同仁作一下介紹,供大家在工作中參考。因水平有限,僅做拋磚引玉,歡迎大家積極補充。

    1、如何解開.tgz或.tar.gz文件?
    2、如何解開.z或.Z文件?
    3、如何解開.tar.Z文件?
    4、如何安裝、卸載、列出rpm包信息?(linux常用)
    5、如何使用tar命令測試、展開、生成tgz包?
    6、如何解開和生成tar文件?
    7、如何象在PC上的ARJ那樣的分解打包軟件?
    8、在Unix下如何壓縮文件?
    9、如何解開和生成其他包如.jar文件?
    10、拋磚引玉,待同仁補充

    ============================================================
    1、如何才能解開.tgz或.tar.gz文件?
    1)方法一:
    gzip -d filename.tar.gz 或 gzip -d filename.tgz
    tar -xvf filename.tar
    2)方法二:
    解壓并列表:
    gzip -dc filename.tgz | tar xvf -           #解.tgz文件
    gzip -dc filename.tar.gz | tar xvf -        #.tar.gz 同 .tgz文件
    只列表不生成文件:
    gzip -dc filename.tgz | tar tvf -           #解.tgz文件
    gzip -dc filename.tar.gz | tar tvf -        #.tar.gz 同 .tgz文件
    gzip的其他使用方法參見gzip -h

    ============================================================
    2、如何才能解開.z或.Z文件?
    1)解.z 文件: gzcat filename.z
    2)解.Z 文件:uncompress -c filename.Z

    ============================================================
    3、如何解.tar.Z文件?
    1)解壓并列表:
    zcat filename.tar.Z | tar xvf -            #解.tar.Z文件
    uncompress -c tast.tar.Z | xvf -           #uncompress -c 同 zcat
    2)只列表不生成文件:
    zcat filename.tar.Z | tar tvf -             #解.tar.Z文件
    uncompress -c filename.tar.Z | tvf -        #uncompress -c 同 zcat

    ============================================================
    4、如何安裝、卸載、列出rpm包信息?(linux常用)
    1)安裝rpm包時顯示進度,例如:用-vh參數,如rpm -ivh ipchains-1.3.6-1.i386.rpm
    2)直接通過ftp來安裝rpm包,例如:rpm -i
    3)校驗所有的rpm包,查找丟失的文件,例如:rpm –Va
    4)查找一個文件屬于哪個rpm包,例如:rpm -qf /usr/bin/who
    5)列出一個rpm包的描述信息,例如:rpm -qpi mon-0.37j-1.i386.rpm
    6)列出一個rpm包的文件信息,例如:rpm -qpl mon-0.37j-1.i386.rpm
    7)列出并過濾已經安裝的包,例如:rpm –q |grep IBM
    8)刪除已安裝的包,例如:rpm –e 包名
    9)其他rpm操作參見 # rpm --help

    ============================================================
    5、如何使用tar命令測試、展開、生成tgz包?
    tar zvfx filename.tgz                       #在當前目錄下展開這個包
    tar zvft filename.tgz                       #只測試不展開
    tar zvfx filename.tgz -C /new-dir           #展開后放到/new-dir目錄下
    tar zvfc filename.tgz /filename             #把/filename目錄下所有的文件及子目錄打包成filename.tgz

    ============================================================
    6、如何解開和生成tar文件?
    tar xvf filename.tar                              #當先目錄解包
    tar tvf filename.tar                              #只顯示不生成文件
    tar cvf filename.tar <file or dir list>          #生成包
    tar的參數很多,要仔細學習參見#tar -h

    ============================================================
    7、如何象在PC上的ARJ那樣的分解打包軟件?
    # split -b 100k big.file
       將big.file分解成若干500K的小文件 (名為xa, xb, xc, ...)
    # split -l 500 big.file
       將big.file分解成每個500 lines的小文件
    其它使用方法參見split –h

    ============================================================
    8、在Unix下如何壓縮文件?
    在unix下壓縮方法有多種,可以參見gzip、gunzip、zcat、compress等工具文檔,也可以參見上面所述的一些方法。下面僅以compress命令示例:
    例如:需要將/filename的文件打包并壓縮,需要做以下步驟:
    1)打包
    tar cvf filename.tar ./dir
    2)壓縮
    compress filename.tar #生成filename.tar.Z文件
    如果還原回原來的目錄結構
    1)解壓縮
    uncompress filename.tar.Z
    3)解tar包
    tar xvf filename.tar
    如果unix命令參數不熟悉,一般也可以通過ftp將壓縮或打包文件傳到PC上,利用Windows下的Winzip或rar等壓縮工具解開。

    ==========================================================
    9、如何解開和生成其他包如.jar文件?
    在unix上生成和解開jar包和對tar包的操作差不多。
    例如:
    jar cvf filename.jar /dirname    #將/dirname 打成jar包
    jar xvf filename.jar             #解開jar包
    jar tvf filename.jar             #只列表不解開jar包

    posted @ 2012-10-14 18:23 abing 閱讀(371) | 評論 (0)編輯 收藏

      在Microsoft SQL Server 2008系統中,數據庫管理員(Database Administration,簡稱為DBA)是最重要的角色。DBA的工作目標就是確保Microsoft SQL Server 2008系統正常高效地運行。DBA的工作也是最繁忙的工作,無論是性能調整,還是災難恢復,都離不開DBA的支持。
      一般地,作為一個DBA,至少應該做好以下12項任務:
      任務一:安裝和配置;
      任務二:容量規劃;
      任務三:應用架構設計;
      任務四:管理數據庫對象;
      任務五:存儲空間管理;
      任務六:安全管理;
      任務七:備份和恢復;
      任務八:性能監視和調優;
      任務九:調度作業;
      任務十:網絡管理;
      任務十一:高可用性和高可伸縮性管理;
      任務十二:故障解決;
      下面簡單描述這些DBA的任務
      任務一:安裝和配置。
      DBA的第一項任務是安裝和配置Microsoft SQL Server 2008軟件系統,為順利使用Microsoft SQL Server 2008軟件創建良好的環境。無論是安裝還是配置,都應該根據實際需要來進行,使得系統滿足用戶的實際需求。需要注意的是,系統配置不是一勞永逸的,應該隨時根據需求的變化和環境的需要,進行監視和適當地調整。
      任務二:容量規劃。
      容量規劃是對整個Microsoft SQL Server 2008系統進行一個總體的規劃。規劃的重點應該放在解決瓶頸問題上。可以從內容和期限兩個方面考慮系統的容量規劃。
      從內容上來看,應該考慮的主要內容包括:硬件容量規劃、軟件規劃、網絡規劃。硬件容量規劃包括磁盤空間、CPU、I/O等規劃。軟件規劃包括操作系統的安裝和配置規劃、數據庫規劃、數據庫對象內容和數量規劃等。網絡規劃包括網絡硬件、網絡軟件和協議、網絡客戶數量流量和分布、網絡拓撲結構等規劃。
      從期限上來看,應該考慮短期、中期和長期規劃。短期規劃的目的是滿足當前日常業務的需要。中期規劃主要是滿足業務發展和擴大的需要。長期規劃主要是滿足業務極限需要等。例如,如果預測某個系統的當前并發用戶數量是1000,3年后的用戶可能達到1000萬,那么這時既不能按照1000用戶的需求來設計,也不能一下子按照1000萬用戶的需求來設計,一定要采取一個折中的形式。
      任務三:應用架構設計。
      應用架構設計包括數據庫設計、應用程序設計和相應的技術架構設計。
      數據庫設計應該考慮數據庫的邏輯需求、數據庫的創建方式和數量、數據庫數據文件和日志文件的物理位置等。一般情況下,可以在Microsoft SQL Server 2008系統成功安裝之后,根據規劃的目標,手工創建數據庫。
      應用設計應該考慮開發工具的選擇、API技術、內部資源和外部資源的結合、應用架構的分布等。需要強調是在應用設計時,DBA應該與開發人員共同工作,確保他們編寫出優化的代碼,盡可能地使用服務器的資源。
      技術架構設計主要包括表示層、邏輯層和數據層的分布。這些分布不應該考慮到硬件資源和用戶需求。既不能片面地追求過高的硬件資源,也不能僅僅局限于當前的環境,一定要按照可擴展的觀點來綜合考慮。
      任務四:管理數據庫對象。
      管理數據庫對象是使用數據庫的最基本、最重要的工作。這些對象包括表、索引、視圖、存儲過程、函數、觸發器、同義詞等。為了完成管理數據庫對象的工作,DBA應該能夠很好地回答諸如下面的這些問題。
      系統應該包括哪些數據?
      應該怎樣存儲這些數據?
      應該在系統中創建哪些表?
      應該在這些表中創建哪些索引,以便加速檢索?
      是否應該創建視圖?為什么要創建這些視圖?
      應該創建哪些存儲過程、函數、CLR對象?
      應該在哪些表上創建觸發器?應該針對哪些操作創建觸發器?
      是否應該創建同義詞?
      任務五:存儲空間管理。
      存儲空間管理任務就是怎樣為數據分配空間、怎樣保持空間可以滿足數據的不斷增長。隨著業務量的繼續和擴大,數據庫中的數據也會逐漸地增加,事務日志也不斷地增加。存儲空間管理任務主要圍繞下面幾個問題。
      當前的數據庫由那些數據文件組成?
      事務日志的大小應該如何設置?
      數據的增長速度是多大?
      如何配置數據文件和日志文件的增長方式?
      數據庫中的數據何時可以清除或轉移到其他地方?
      任務六:安全管理。
      安全性是DBA重要的日常工作之一。安全管理的主要內容包括賬戶管理和權限管理。賬戶管理就是在數據庫中應該增加哪些賬戶、這些賬戶應該組合成哪些角色等等。權限管理是對象權限和語句權限的管理,應該回答下面這些問題:
      這些賬戶或角色應該使用哪些對象?
      這些賬戶或角色應該對這些對象執行哪些操作?
      這些賬戶或角色應該在數據庫中執行哪些操作?
      如何設置架構?如何建立架構和對象、架構和用戶的關系?
      任務七:備份和恢復。
      無論系統運行如何,系統的災難性管理是不可缺少的。天災、人禍、系統缺陷都有可能造成系統的癱瘓、失敗。怎樣解決這些災難性問題呢?辦法就是制訂和實行備份和恢復策略。備份就是制作數據的副本,恢復就是將數據的副本復原到系統中。備份和恢復工作是DBA的一項持續性的重要工作,其執行頻率根據數據的重要程度和系統的穩定程度來確定。
      任務八:性能監視和調優。
      根據企業的經營效益評價企業的管理水平,根據學生的考試成績評價學生的學習好壞。作為一個大型軟件系統,Microsoft SQL Server 2008系統的運行好壞必須得到正確地監視、評價和相應的調整。這是DBA的一項高級工作。借助一些工具和運行性能指標,DBA應該能夠監視系統的運行。如果某些運行指標出現了問題,DBA應該及時地采取補救措施,使得系統始終保持高效運行狀態。
      任務九:調度作業。
      DBA不可能一天24小時不停地盯住系統的運行,及時地執行某些指定的操作。Microsoft SQL Server 2008系統提供了許多工具,DBA應該充分利用這些工具和機制,解決下面一些問題。
      調度哪些作業應該由系統執行?
      這些作業應該在何時執行?
      如何確保這些作業可以正確地執行?
      如果自動執行的作業執行失敗時,應該如何處理?
      如何使得系統可以均衡地執行相應的操作?
      任務十:網絡管理。
      作為一種分布式的網絡數據庫,網絡管理的任務更加的重要。Microsoft SQL Server 2008系統提供了網絡管理工具和服務,DBA應該借助這些工具進行服務規劃和管理網絡操作。
      任務十一:高可用性和高可伸縮性管理。
      作為一個DBA,必須保持系統具有高可用性和高可伸縮性。可用性是一項度量計算機系統正常運行時間的指標。可伸縮性描述應用程序可以接受的并發用戶訪問的數量問題。影響系統可用性的主要因素包括:網絡可靠性、硬件故障、應用程序失敗、操作系統崩潰、自然災害等。無論是數據庫系統管理員,還是應用程序設計人員,都應該最小化系統破壞的幾率,最大化系統的可用性。在設計系統的可用性時,應該確定采取什么樣的可用性策略來滿足可用性的需求。
      可用性的需求可以通過3個方面描述,即運行的時間、連接性需求和數據的緊密和松散要求。在確定可用性的需求時,首先考慮系統的運行時間。一般地,數據庫應用程序有兩種運行時間,即在工作時間是可用的和在任何時間都是可用的。如果只是要求在工作時間是可用的,那么可以把系統的維護等工作安排在周末進行。但是,有許多應用程序要求每天運行24小時、每周運行7天,例如,在線超市等,這時必須采取措施保證系統總是運行的。不同的應用程序有不同的連接性要求。大多數的應用程序和電子商務解決方案要求采用可靠的網絡連接。這時,要求永久性的在線連接,必須最小化各種異常現象的發生。有些應用程序允許用戶離線使用。這時,系統的可用性要求降低了。大多數應用程序要求數據是同步使用的。用戶對數據的請求,系統必須立即做出回應。這是緊密型的數據要求,這種情況必須保證系統的高可用性。有些應用程序不需要數據是同步的,對用戶的請求可以延遲回應。這種要求是數據松散型的要求,這時系統的可用性需求比較低。
      任務十二:故障解決。
      雖然不希望Microsoft SQL Server 2008系統出現故障,但是故障可能是無法避免的。這些故障可能每天都會發生。有些故障是人為不小心造成的,有些故障可能是系統中的缺陷形成的,有些故障可能是莫名其妙的。作為一個DBA,在系統中的其他用戶心目中是Microsoft SQL Server系統的權威。無論是大事還是小事,DBA都應該做到迅速診斷、準確判斷、快速修復。從這個意義上來說,DBA是一個數據庫系統的專業醫生。
    原文出處:http://www.mysqlops.com/2011/11/03/sql-server-dba.html
    TechTarget中國原創內容,原文鏈接:http://www.searchdatabase.com.cn/showcontent_54849.htm
    posted @ 2012-10-13 13:00 abing 閱讀(187) | 評論 (0)編輯 收藏

    第一種:(Thread)

    package com.abin.lee.servlet.mythread.thread;

    public class Mythread extends Thread{
     private String name;
     public Mythread(String name) {
      this.name=name;
     }
     public void run() {
      synchronized(this.name){
       System.out.println("開始時間:"+System.currentTimeMillis()+",線程名字:"+Thread.currentThread().getName());
       System.out.println("name="+name);
       System.out.println("結束時間:"+System.currentTimeMillis()+",線程名字:"+Thread.currentThread().getName());
     
      }
     }
     
    }



    測試代碼:

    package com.abin.lee.servlet.mythread.thread;

    public class MythreadTest {
     public static void main(String[] args) {
      Mythread mythread1=new Mythread("ManyThread");
      Mythread mythread2=new Mythread("ManyThread");
      mythread1.start();
      mythread2.start();
     }

    }




    第二種:(Runnable)

    package com.abin.lee.servlet.mythread.runnable;

    public class MyRunnable implements Runnable{
     private String name;
     public MyRunnable(String name) {
      this.name=name;
     }
     public synchronized void run(){
       System.out.println("開始時間:"+System.currentTimeMillis()+",線程名字:"+Thread.currentThread().getName());
       System.out.println("name="+name);
       try {
        Thread.sleep(3000);
       } catch (InterruptedException e) {
        e.printStackTrace();
       }
       System.out.println("結束時間:"+System.currentTimeMillis()+",線程名字:"+Thread.currentThread().getName());
     }
    }




    測試代碼:

    package com.abin.lee.servlet.mythread.runnable;

    public class MyRunnableTest {
     public static void main(String[] args) {
      MyRunnable myRunnable=new MyRunnable("ManyThread");
      Thread thread1=new Thread(myRunnable);
      Thread thread2=new Thread(myRunnable);
      thread1.start();
      thread2.start();
     }
    }




    第三種:(Callable)這種說明一下,這個實現多線程的方式是在JDK1.5引進的,在java.util.concurrent.Callable  這個并發包下面,并且提供同步返回結果的多線程。

    package com.abin.lee.servlet.mythread.callable;

    import java.util.concurrent.Callable;
    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantLock;

    public class MyCallable implements Callable<String>{
     private String name;
     public MyCallable(String name) {
      this.name=name;
     }
     public String call() throws Exception {
      Lock lock=new ReentrantLock();
      lock.lock();
      String result="";
      try {
       System.out.println("開始時間:"+System.currentTimeMillis()+",線程名字:"+Thread.currentThread().getName());
       System.out.println("name="+name);
       if(name.equals("ManyThread")){
        result="success";
       }else{
        result="failure";
       }
       try {
        Thread.sleep(3000);
       } catch (InterruptedException e) {
        e.printStackTrace();
       }
       System.out.println("結束時間:"+System.currentTimeMillis()+",線程名字:"+Thread.currentThread().getName());
     
      } catch (Exception e) {
       e.printStackTrace();
      }finally{
       lock.unlock();
      }

       return result;
      
     }
     
    }




    測試代碼:

    package com.abin.lee.servlet.mythread.callable;

    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Future;

    import org.junit.Test;

    public class MyCallableTest {
     @Test
     public void testMyCallable() throws InterruptedException, ExecutionException{
      ExecutorService executor=Executors.newFixedThreadPool(3);
      MyCallable myCallable=new MyCallable("ManyThread");
      Future future1=executor.submit(myCallable);
      System.out.println("future1="+future1.get());
      Future future2=executor.submit(myCallable);
      System.out.println("future2="+future2.get());
      Future future3=executor.submit(myCallable);
      System.out.println("future3="+future3.get());
      
     }

    }

    測試結果:

    開始時間:1350056647659,線程名字:pool-1-thread-1
    name=ManyThread
    結束時間:1350056650661,線程名字:pool-1-thread-1
    future1=success
    開始時間:1350056650661,線程名字:pool-1-thread-2
    name=ManyThread
    結束時間:1350056653661,線程名字:pool-1-thread-2
    future2=success
    開始時間:1350056653662,線程名字:pool-1-thread-3
    name=ManyThread
    結束時間:1350056656663,線程名字:pool-1-thread-3
    future3=success

     

    posted @ 2012-10-12 23:43 abing 閱讀(284) | 評論 (0)編輯 收藏

    package org.abin.lee.basic.regex;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class MyRegex {
    public static boolean getResult(String future){
    boolean result=false;
    String regex="^[0-9a-zA-Z_]+@?[0-9a-zA-Z_]+.[a-zA-z]+$";
    // String regex="^1(3[4-9]?|5[018-9]?|8[07-9]?)[0-9]{8}$";
    Pattern pattern=Pattern.compile(regex);
    Matcher matcher=pattern.matcher(future);
    result=matcher.matches();
    return result;
    }
    public static void main(String[] args) {
    boolean flag=false;
    String future="varyall@tom.com";
    // String future="13588844873";
    flag=getResult(future);
    System.out.println("flag="+flag);
    }
    }
    posted @ 2012-10-12 11:12 abing 閱讀(222) | 評論 (0)編輯 收藏

    public interface RegExpConst {
    /**
    * 手機號碼
    * 移動:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
    * 聯通:130,131,132,152,155,156,185,186
    * 電信:133,1349,153,180,189
    */
    String MOBILE = "^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
    /**
    * 中國移動:China Mobile
    * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
    */
    String CM = "^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";
    /**
    * 中國聯通:China Unicom
    * 130,131,132,152,155,156,185,186
    */
    String CU = "^1(3[0-2]|5[256]|8[56])\\d{8}$";
    /**
    * 中國電信:China Telecom
    * 133,1349,153,180,189
    */
    String CT = "^1((33|53|8[09])[0-9]|349)\\d{7}$";
    /**
    * 大陸地區固話及小靈通
    * 區號:010,020,021,022,023,024,025,027,028,029
    * 號碼:七位或八位
    */
    String PHS = "^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
    }
    posted @ 2012-10-11 23:36 abing 閱讀(206) | 評論 (0)編輯 收藏

    關鍵詞:正則 oracle 數據庫 web 開發 正則表達式 oracle正則表達式 regexp_like f REGEXP_SUBSTR 中文 oracle9 數據庫正則表達式 數字 REGEXP_LIKE oracle表達式 10g中的正則表達式 oracle正則表達式 表達式 sql 正則表達式函數 百分號 轉義字符 匹配 10g 使用正則表達式 oracle正則表達式regexp_like 正則替換 正則表達 字母數字組合 regexp_instr "/"的 ORACLE 語法 like 通配符 匹配中文 sql轉義除號 POSIX正則表達式 oracle數據庫表達式 轉義符 regexp_substr $ replace函數 oralce正則表達式 oracle常用字符 轉義 數字匹配 alnum 2233 REPLACE INTO oralce數字匹配 11g 子表達式 oralce 使用 0 REGEXP_REPLACE REGEXP_LIKE() 中文字符 字符串匹配 oracle,正則表達式 百分號的轉義字符 單字符匹配 9 ORACLE轉義 函數 replace 字母 正則表達式 數據庫 匹配中文 關鍵 符號 分號 匹配單字符 REGEXP_INSTR sql中百分號 至少出現 匹配一部分內容
    本文摘要:
    10g正則表達式提高了SQL靈活性。
    無關的空白檢測,或者分解多個正則組成的字符串等問題。
    10g支持正則表達式的四個新函數分別是:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、和REGEXP_REPLACE。
    正則表達式代替了老的百分號(%)和通配符(_)字符。
    匹配輸入字符串的開始位置,在方括號表達式中使用,此時它表示不接受該字符集合。
    匹配前面的子表達式零次或一次。
    目前,正則表達式已經在很多軟件中得到廣泛的應用,包括*nix(Linux, Unix等),HP等操作系統,PHP,C#,Java等開發環境。

    Oracle 10g正則表達式提高了SQL靈活性。有效的解決了數據有效性, 重復詞的辨認, 無關的空白檢測,或者分解多個正則組成
    的字符串等問題。

    Oracle 10g支持正則表達式的四個新函數分別是:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR、和REGEXP_REPLACE。
    它們使用POSIX 正則表達式代替了老的百分號(%)和通配符(_)字符。

    特殊字符:
    '^' 匹配輸入字符串的開始位置,在方括號表達式中使用,此時它表示不接受該字符集合。
    '$' 匹配輸入字符串的結尾位置。如果設置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 'n' 或 'r'。
    '.' 匹配除換行符 n之外的任何單字符。
    '?' 匹配前面的子表達式零次或一次。
    '*' 匹配前面的子表達式零次或多次。
    '+' 匹配前面的子表達式一次或多次。
    '( )' 標記一個子表達式的開始和結束位置。
    '[]' 標記一個中括號表達式。
    '{m,n}' 一個精確地出現次數范圍,m=<出現次數<=n,'{m}'表示出現m次,'{m,}'表示至少出現m次。
    '|' 指明兩項之間的一個選擇。例子'^([a-z]+|[0-9]+)$'表示所有小寫字母或數字組合成的字符串。
    num 匹配 num,其中 num 是一個正整數。對所獲取的匹配的引用。
    正則表達式的一個很有用的特點是可以保存子表達式以后使用, 被稱為Backreferencing. 允許復雜的替換能力
    如調整一個模式到新的位置或者指示被代替的字符或者單詞的位置. 被匹配的子表達式存儲在臨時緩沖區中,
    緩沖區從左到右編號, 通過數字符號訪問。 下面的例子列出了把名字 aa bb cc 變成
    cc, bb, aa.
    Select REGEXP_REPLACE('aa bb cc','(.*) (.*) (.*)', '3, 2, 1') FROM dual;
    REGEXP_REPLACE('ELLENHILDISMIT
    cc, bb, aa
    '' 轉義符。

    字符簇:
    [[:alpha:]] 任何字母。
    [[:digit:]] 任何數字。
    [[:alnum:]] 任何字母和數字。
    [[:space:]] 任何白字符。
    [[:upper:]] 任何大寫字母。
    [[:lower:]] 任何小寫字母。
    [[:punct:]] 任何標點符號。
    [[:xdigit:]] 任何16進制的數字,相當于[0-9a-fA-F]。

    各種操作符的運算優先級
    轉義符
    (), (?:), (?=), [] 圓括號和方括號
    *, +, ?, {n}, {n,}, {n,m} 限定符
    ^, $, anymetacharacter 位置和順序
    | “或”操作

    --測試數據
    create table test(mc varchar2(60));

    insert into test values('112233445566778899');
    insert into test values('22113344 5566778899');
    insert into test values('33112244 5566778899');
    insert into test values('44112233 5566 778899');
    insert into test values('5511 2233 4466778899');
    insert into test values('661122334455778899');
    insert into test values('771122334455668899');
    insert into test values('881122334455667799');
    insert into test values('991122334455667788');
    insert into test values('aabbccddee');
    insert into test values('bbaaaccddee');
    insert into test values('ccabbddee');
    insert into test values('ddaabbccee');
    insert into test values('eeaabbccdd');
    insert into test values('ab123');
    insert into test values('123xy');
    insert into test values('007ab');
    insert into test values('abcxy');
    insert into test values('The final test is is is how to find duplicate words.');

    commit;

    一、REGEXP_LIKE

    select * from test where regexp_like(mc,'^a{1,3}');
    select * from test where regexp_like(mc,'a{1,3}');
    select * from test where regexp_like(mc,'^a.*e$');
    select * from test where regexp_like(mc,'^[[:lower:]]|[[:digit:]]');
    select * from test where regexp_like(mc,'^[[:lower:]]');
    Select mc FROM test Where REGEXP_LIKE(mc,'[^[:digit:]]');
    Select mc FROM test Where REGEXP_LIKE(mc,'^[^[:digit:]]');

    二、REGEXP_INSTR

    Select REGEXP_INSTR(mc,'[[:digit:]]$') from test;
    Select REGEXP_INSTR(mc,'[[:digit:]]+$') from test;
    Select REGEXP_INSTR('The price is $400.','$[[:digit:]]+') FROM DUAL;
    Select REGEXP_INSTR('onetwothree','[^[[:lower:]]]') FROM DUAL;
    Select REGEXP_INSTR(',,,,,','[^,]*') FROM DUAL;
    Select REGEXP_INSTR(',,,,,','[^,]') FROM DUAL;

    三、REGEXP_SUBSTR

    SELECT REGEXP_SUBSTR(mc,'[a-z]+') FROM test;
    SELECT REGEXP_SUBSTR(mc,'[0-9]+') FROM test;
    SELECT REGEXP_SUBSTR('aababcde','^a.*b') FROM DUAL;

    四、REGEXP_REPLACE

    Select REGEXP_REPLACE('Joe Smith','( ){2,}', ',') AS RX_REPLACE FROM dual;
    Select REGEXP_REPLACE('aa bb cc','(.*) (.*) (.*)', '3, 2, 1') FROM dual;

    SQL> select * from test;

    ID MC
    -------------------- ------------------------------------------------------------
    A AAAAA
    a aaaaa
    B BBBBB
    b bbbbb

    SQL> select * from test where regexp_like(id,'b','i'); --不區分數據大小寫

    ID MC
    -------------------- ------------------------------------------------------------
    B BBBBB
    b bbbbb

    #End
    posted @ 2012-10-11 20:58 abing 閱讀(285) | 評論 (0)編輯 收藏

    僅列出標題
    共7頁: 上一頁 1 2 3 4 5 6 7 下一頁 
    主站蜘蛛池模板: 亚洲毛片αv无线播放一区| 和老外3p爽粗大免费视频| 亚洲AV无码国产精品色午友在线| 香蕉高清免费永久在线视频| 一级毛片在线免费看| 成人一级免费视频| 亚洲中文字幕无码中文字| 久久亚洲私人国产精品vA | 久久精品亚洲综合| 亚洲AV中文无码乱人伦在线视色| 国产啪精品视频网免费| 无人在线观看免费高清| 在线免费视频你懂的| 国产综合成人亚洲区| 中文字幕乱码亚洲精品一区| 亚洲黄色网站视频| 久久久久亚洲精品天堂| 亚洲国产精品无码久久久不卡 | 国产精品亚洲а∨天堂2021| 亚洲国产激情在线一区| 亚洲精品国产啊女成拍色拍| 亚洲av无码专区在线播放| 亚洲精品无码永久中文字幕| 亚洲色偷拍区另类无码专区| 免费国产小视频在线观看| 国产麻豆剧传媒精品国产免费| 亚洲中文无码永久免费| 国产91免费视频| h片在线免费观看| 日韩国产免费一区二区三区| 18以下岁毛片在免费播放| 97免费人妻在线视频| 亚洲美女视频免费| 免费黄色福利视频| 久久国产免费福利永久| 24小时免费直播在线观看| 扒开双腿猛进入爽爽免费视频| 天天操夜夜操免费视频| 日韩免费一级毛片| 亚洲国产精品尤物YW在线观看| 亚洲一级特黄大片无码毛片|