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

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

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

    posts - 25, comments - 69, trackbacks - 0, articles - 2

    SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]

    SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])

    SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [Customers$]')


    ?

    posted @ 2006-04-02 18:28 壯士日志 閱讀(235) | 評論 (0)編輯 收藏

    crontab是一個很方便的在unix/linux系統上定時(循環)執行某個任務的程序

    基本用法:
    ?1. crontab -l
    ???? 列出當前的crontab任務
    ?2. crontab -d
    ???? 刪除當前的crontab任務
    ?3. crontab -e (solaris5.8上面是 crontab -r)
    ???? 編輯一個crontab任務,ctrl_D結束
    ?4. crontab filename
    ???? 以filename做為crontab的任務列表文件并載入

    crontab file的格式:
    ??? crontab 文件中的行由 6 個字段組成,不同字段間用空格或 tab 鍵分隔。前 5 個字段指定命令要運行的時間
    ?????? 分鐘 (0-59)
    ?????? 小時 (0-23)
    ?????? 日期 (1-31)
    ?????? 月份 (1-12)
    ?????? 星期幾(0-6,其中 0 代表星期日)
    ?????? 第 6 個字段是一個要在適當時間執行的字符串

    例子:
    ????? #MIN HOUR DAY MONTH DAYOFWEEK COMMAND
    ????? #每天早上6點10分
    ????? 10 6 * * * date
    ????? #每兩個小時
    ????? 0 */2 * * * date??? (solaris 5.8似乎不支持此種寫法)
    ????? #晚上11點到早上8點之間每兩個小時,早上8點
    ????? 0 23-7/2,8 * * * date
    ????? #每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
    ????? 0 11 4 * mon-wed date
    ????? #1月份日早上4點
    ????? 0 4 1 jan * date


    補充:在使用crontab的時候,要特別注意的是運行腳本中能夠訪問到的環境變量和當前測試環境中的環境變量未必一致,一個比較保險的做法是在運行的腳本程序中自行設置環境變量(export)

    ?

    posted @ 2006-04-02 18:28 壯士日志 閱讀(3480) | 評論 (0)編輯 收藏

    Log4j由三個重要的組件構成:日志信息的優先級,日志信息的輸出目的地,日志信息的輸出格式。日志信息的優先級從高到低有ERROR、WARN、INFO、DEBUG,分別用來指定這條日志信息的重要程度;日志信息的輸出目的地指定了日志將打印到控制臺還是文件中;而輸出格式則控制了日志信息的顯示內容。

      一、定義配置文件

      其實您也可以完全不使用配置文件,而是在代碼中配置Log4j環境。但是,使用配置文件將使您的應用程序更加靈活。Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性文件(鍵=值)。下面我們介紹使用Java特性文件做為配置文件的方法:

      1.配置根Logger,其語法為:

      log4j.rootLogger = [ level ] , appenderName, appenderName, …

      其中,level 是日志記錄的優先級,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如在這里定義了INFO級別,則應用程序中所有DEBUG級別的日志信息將不被打印出來。 appenderName就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。

      2.配置日志信息輸出目的地Appender,其語法為:

      log4j.appender.appenderName = fully.qualified.name.of.appender.class
      log4j.appender.appenderName.option1 = value1
      …
      log4j.appender.appenderName.option = valueN

      其中,Log4j提供的appender有以下幾種:
      org.apache.log4j.ConsoleAppender(控制臺),
      org.apache.log4j.FileAppender(文件),
      org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件),
      org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
      org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)

      3.配置日志信息的格式(布局),其語法為:

      log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
      log4j.appender.appenderName.layout.option1 = value1
      …
      log4j.appender.appenderName.layout.option = valueN

      其中,Log4j提供的layout有以下幾種:
      org.apache.log4j.HTMLLayout(以HTML表格形式布局),
      org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
      org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
      org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)

      Log4J采用類似C語言中的printf函數的打印格式格式化日志信息,打印參數如下: %m 輸出代碼中指定的消息

      %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL
      %r 輸出自應用啟動到輸出該log信息耗費的毫秒數
      %c 輸出所屬的類目,通常就是所在類的全名
      %t 輸出產生該日志事件的線程名
      %n 輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n”
      %d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921
      %l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main(TestLog4.java:10)

      二、在代碼中使用Log4j

      1.得到記錄器

      使用Log4j,第一步就是獲取日志記錄器,這個記錄器將負責控制日志信息。其語法為:

      public static Logger getLogger( String name)

      通過指定的名字獲得記錄器,如果必要的話,則為這個名字創建一個新的記錄器。Name一般取本類的名字,比如:

      static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

      2.讀取配置文件

      當獲得了日志記錄器之后,第二步將配置Log4j環境,其語法為:

      BasicConfigurator.configure (): 自動快速地使用缺省Log4j環境。
      PropertyConfigurator.configure ( String configFilename) :讀取使用Java的特性文件編寫的配置文件。
      DOMConfigurator.configure ( String filename ) :讀取XML形式的配置文件。

      3.插入記錄信息(格式化日志信息)

      當上兩個必要步驟執行完畢,您就可以輕松地使用不同優先級別的日志記錄語句插入到您想記錄日志的任何地方,其語法如下:

      Logger.debug ( Object message ) ;
      Logger.info ( Object message ) ;
      Logger.warn ( Object message ) ;
      Logger.error ( Object message ) ;

    ?

    posted @ 2006-04-02 18:27 壯士日志 閱讀(256) | 評論 (0)編輯 收藏

    本文給出了一些指導性的意見和建議,用于幫助用戶在產品開發中遵循自由軟件的許可證條款,并避免出現違反自由軟件許可證的情況發生。

    1.如果您不接受 GPL/LGPL 許可證,請勿使用任何遵循該許可證條款發布的軟件。如果您在自己的產品中使用了 GPL/LGPL 軟件,則說明您已經接受了 GPL/LGPL 許可證中定義的所有條款,并有義務向產品的最終用戶提供源代碼——無論該源代碼是否經過您的修改。如果經過了您自己的修改,則必須公開“衍生作品”的源代碼,并以相同的許可證條款發布。

    2.當您從 GPL/LGPL 軟件中拿出 10 行以上的源代碼用于自己的作品中時,則您的作品將成為該 GPL/LGPL 軟件的衍生作品,無論您的作品的整體代碼規模有多大。因此,如果您不打算將自己的作品作為自由軟件發布,則應該遠離自由軟件代碼,以免因為受到自由軟件代碼的影響而編寫出和這些軟件相類似的代碼。

    3.如果在您的作品中使用了 GPL/LGPL 軟件,但沒有對這些軟件做任何修改,則可以在產品手冊或者其他類似的文檔中、程序界面上或者幫助信息中指明您使用的自由軟件名稱、版權擁有者以及能夠獲取該自由軟件全部源代碼的公共網站或第三方。如果因為某種原因,最終用戶無法從您提到的第三方或者公共網站上獲得該自由軟件的源代碼,您應該擔負提供源代碼的責任和義務。

    4.GPL/LGPL 條款賦予您修改作品的權利,經修改之后的作品稱為“衍生作品”。當您的衍生作品以某種方式發布時(典型情況就是用于您的產品中),您必須依照 GPL/LGPL 許可證發布您的衍生作品。當然,一種更加可取的辦法是,將自己所做的修改提交給原始作品的維護者,并由該維護者負責發布,而您在產品中始終使用由維護者發布的作品。

    5.自由軟件不等于免費。提供自由軟件的人可以要求您支付一定的費用,該費用通常有兩層含義:第一,自由軟件以某種介質發行時,該介質的制作、發布等費用;第二,當您希望獲得對某自由軟件的技術支持、缺陷修正等服務,要求某個人或組織提供相應的產品質量擔保時,該組織或個人可以要求您就質量擔保收取服務費用,甚至是專有軟件產品慣用的使用許可費用。這里提到的組織或個人是任何遵循上述自由軟件許可證條款發布自由軟件、并向您提供質量擔保的組織或個人,并不限于自由軟件作品的作者或主要的版權擁有人。

    6.對 LGPL 條款的自由軟件(通常是函數庫)的“正常使用”,通常的理解是,始終以動態鏈接的形式鏈接這個函數庫——如果以靜態的方式鏈接,將使該函數庫成為您作品的一部分,從而使之成為該函數庫的衍生作品。但實質上,LGPL 許可證的宗旨和精神是禁止將自由軟件成為專用和獨享的軟件,而至少應該確保其他軟件也能通過某種途徑使用這個函數庫的接口。當然,靜態鏈接顯然違背了上述精神和宗旨,從而是不允許將私有作品和 LGPL 函數庫靜態鏈接在一起。但如果您的產品沒有提供任何擴展功能,而只能由您自己的私有作品使用其中包含的某 LGPL 函數庫,這無異于將該函數庫靜態鏈接到您自己的私有作品中。因此,我們認為這種情況下,您的作品是該函數庫的“衍生作品”——無論您的作品通過靜態鏈接還是通過動態鏈接的方式鏈接該 LGPL 函數庫。

    上述這種情況經常會出現在嵌入式系統中。在這種情況下,您可以有如下選擇:

    ? * 以動態鏈接方式鏈接 LGPL 函數庫,并為您的產品提供擴展接口及程序上載接口,
    ??? 以便用戶或者其他人能夠對該產品進行擴展。

    ? * 最簡單的方式:將衍生作品置于 LGPL 條款下發布。

    ? * 和 LGPL 條款的版權擁有人聯系,看看是否能夠以其他許可證方式授權您
    ??? 在自己的產品中使用該函數庫,而不必遵循 LGPL 條款使自己的作品成為
    ??? 衍生作品。許多自由軟件為商業用戶提供另外一種可選的許可方式。

    ? * 當然,如果您覺得麻煩,可以選擇不使用任何自由軟件。

    ?

    posted @ 2006-04-02 18:26 壯士日志 閱讀(836) | 評論 (0)編輯 收藏

    令狐沖十四歲那年進入華山,那年岳琳珊八歲,岳不群白天給兩人指點劍法,晚上令狐沖給小師妹講故事哄她入睡。后來,岳不群陸續收了勞德諾,陸大有等徒弟,又忙于修煉紫霞神功,就沒有時間指點徒弟。于是他做了一個HUB,從此華山派實現教育電子化,岳不群在網上同時給每個徒弟授課,這種方法很快在五岳劍派內部推廣。為了在五岳劍派之間互連,嵩山派掌門左冷禪研制出路由器,使得五岳劍派之間可以互聯互通。令狐沖晚上就通過網絡給小師妹講故事。
      很快,岳琳珊已經十六歲,變成了一個亭亭玉立的小姑娘了。令狐沖發現自己的目光總是不由自主的在小師妹身上停留,每次和小師妹在一起的時候,總能聽到自己強烈的心跳聲,經過了一段時間的茶飯不思后,終于有一天晚上,令狐沖在網上給小師妹發了一首情意綿綿的詩:你是風兒我是沙,你是蜜蜂我是花,你是梳子我是頭發,你是牙膏我是牙刷。
      第二天,華山派開例會,令狐沖懷著忐忑不安的心情來到了會議室,發現小師妹紅著臉躲在師父后面,而其它的師弟都在偷偷朝自己笑,開完會,一個調皮的師弟就過來叫牙刷師兄,趕緊蒙面逃走。問陸大有,才知道是勞德諾用一個叫NetXRay的工具把自己在網上的大作全抓了出來。令狐沖悔恨萬分,于是,閉門研究RFC,成功的研制出LanSwitch。它能夠識別設備MAC地址,這樣,令狐沖發送給小師妹的數據只有她一個人能夠收到。令狐沖晚上可以在網上放心的給小師妹講故事,偶爾手癢還能敲幾句平時心里想又說不出口的話來過癮,然后,紅著臉想象小師妹看到后的表情。
      // LanSwitch是二層交換設備,它可以理解二層網絡協議地址MAC地址。二層交換機在操作過程中不斷的收集資料去建立它本身的地址表,這個表相當簡單,主要標明某個MAC地址是在哪個端口上被發現的,所以當交換機接收到一個數據封包時,它會檢查該封包的目的MAC地址,核對一下自己的地址表以決定從哪個端口發送出去。而不是象HUB那樣,任何一個發方數據都會出現在HUB的所有端口上(不管是否為你所需)。這樣,LanSwitch在提高效率的同時,也提高了系統的安全性。//
      接下來的一年,岳不群大量招收門徒,華山派得以極大的壯大,所使用的LanSwitch也多次級連。但門徒中難免魚龍混雜,當時華山派一批三、四代弟子崇拜萬里獨行田伯光,成立了一個田協,經常廣播爭論比賽八百米還是一千米很合理的問題;第三代弟子中有一個叫xxx的,每天在華山派內部廣播xx大法;更讓令狐沖受不了的是,隨著師父年齡的增大,變得越來越羅嗦,每句話都要重復二十遍,然后在網上廣播。令狐沖想和小師妹,陸大有等人專門使用一個廣播域,但如果另外使用一個LanSwitch的話,師父肯定不會同意,于是,他修改了LanSwitch的軟件,把小師妹,陸大有等人和自己劃成一個虛擬網(VLAN),其它人使用另外的VLAN,廣播包只在VLAN內發送,VLAN間通過路由器連接。岳不群也深受田協,xxx其害,但為與左冷禪抗爭,用人之際,只能隱忍,知道了這件事,大為高興,但仍為令狐沖私自修改軟件一事,罰他到思過崖面壁一年,一年之內不得下山。 在華山派內重新使用VLAN進行子網劃分,分為五個子網,師父和師娘,小師妹還有林平之在一個VLAN,xx功弟子用一個VLAN;田協弟子用一個VLAN,其它弟子用一個VLAN,而思過崖上也有單獨的一個VLAN。令狐沖到了思過崖,并不難過,終于,世界安靜了,依靠左冷禪的路由器,令狐沖還可以每天在網上給小師妹講故事,聊天。
      // 局域網交換機的引入,使得網絡節點間可獨享帶寬,但是,對于二層廣播報文,二層交換機會在各網絡節點上進行廣播;同時,對于二層交換機無法識別的MAC地址,也必須在廣播域內進行廣播。當多個二層交換機級連時,二層交換網絡上的所有設備都會收到廣播消息。在一個大型的二層廣播域內,大量的廣播使二層轉發的效率大大減低,為了避免在大型交換機上進行的廣播所引起的廣播風暴,需要在一個二層交換網絡內進一步劃分為多個虛擬網(VLAN)。在一個虛擬網(VLAN)內,由一個工作站發出的信息只能發送到具有相同虛擬網號(VLANID)的其他站點,其它虛擬網(VLAN)的成員收不到這些信息或廣播幀。采用虛擬網(VLAN)可以控制網絡上的廣播風暴和增加網絡的安全性。不同虛擬網(VLAN)之間的通信必須通過路由器進行。//
    ?
      但是幸福永遠是短暫的,接下來總是無盡的煩惱。隨著整個五岳劍派勢力的增大,路由器的速度越來越慢。令狐沖發現每次給小師妹講故事時,小師妹的回答總是姍姍來遲,而且話也很少,總是"嗯","噢"或者"我聽著呢"。終于有一天,路由器再也PING不通的,令狐沖三天沒有得到小師妹的消息,對著空空的顯示屏,再也忍不住,在一個下著雪的晚上,偷偷下山找小師妹,到了小師妹窗前,發現小師妹正在網上和小林子熱烈的聊天,全沒注意一邊的自己,內心一陣酸痛,回到思過崖,大病一場。病好后潛心研究,終于有一天,做出來一個路由器,這時,令狐沖發現,此時華山派已經有了三十個VLAN,路由器必須為每個VLAN分配一個接口,接口不夠用,而且,兩個子網內通過路由器的交換速度遠遠低于二層交換的速度。
      // 二層交換機劃分虛擬子網后,就出現了一個問題:不同虛擬子網之間的轉發需要通過其它路由器來實現。二層交換機的不同VLAN節點間的轉發需要通過路由器設備來實現大大浪費了端口,而路由器的高成本,低效率又使它無法滿足大量子網情況下的三層轉發需求,三層交換的概念就在這種情況下被提了出來。//
      這天晚上,令狐沖心灰意懶,借酒消愁,這時,一個黑影出現在他的面前,原來是一個道風仙骨的老人,正是風清揚。風清揚聽了令狐沖的疑惑,說:路由器接口不夠,把路由器做在LanSwitch內部不就可以了;交換速度慢,是因為路由器查找的是網段路由,而LanSwitch直接查MAC對應出端口,當然速度快。為什么不能直接根據IP地址查到出端口呢?令狐沖一聽,大為仰慕,但還是不明白,IP地址那么多,而且經常變化,如何能夠直接查到出端口呢?風清揚說:
      "你先坐下,讓我來問你,華山派有多少弟子?"
      "一萬六千左右。"
      "你全知道他們住哪里嗎?"
      "不知道。"
      "岳不群要你找一個不知道住哪里的人,如何去找?"
      "查華山派電話號碼查詢系統,找到他的地址,然后去找他。"
      "如果你回來后再讓你找這個人,又如何去找?"
      "如何.... ,查華山派電話號碼查詢系統,找到他的地址,然后去找他。"
      "你不知道到這個人的地址嗎?"
      "知道,但師父說,華山派的地址那么多,而且經常變化,不用知道地址。"
      "岳不群這小子,把徒弟都教成木頭了!我問你,你自己認為應該如何找?"
      "直接去找!"
      "好!你這人還不算太苯。那你知道了一個人的地址后,是不是永遠記住了?"
      "有的人記住了。其它的都忘了。"
      "為什么忘了?"
      "因為我記不了那么多人,而且一段時間沒有去找他。"
      "華山派電話號碼查詢系統里的地址是如何獲得的?"
      "我在空曠處大喊一聲他的名字,他聽到后就會來找我,告訴我他的地址。"
      風清揚又問了大把類似腦筋急轉彎的問題,然后風清揚說:"現在你明白根據IP地址直接查出端口的道理了嗎?等到你明白這個道理,你自然會做出三層交換機來",令狐沖仔細回憶了今天的話,終于明白了和二層轉發由MAC地址對應到出端口的道理一樣,三層轉發也可以直接由IP地址對應到出端口,IP地址的路由可以通過ARP來學習,同樣需要老化。這樣,VLAN間轉發除第一個包需要通過ARP獲得主機路由外,其它的報文直接根據IP地址就能夠查找到出端口,轉發速度遠遠高于路由器轉發的速度。抬頭看時,風清揚已經走了。
      一年后,令狐沖下思過崖,成功的推出Quidway S8016路由交換機。實現了VLAN間的互通,并且與嵩山,黑木崖等路由器實現互通。
      // 三層交換機是在二層交換機的基礎上增加三層交換功能,但它不是簡單的二層交換機加路由器,二而是采用了不同的轉發機制。路由器的轉發采用最長匹配的方式,實現復雜,通常使用軟件來實現,。而三層交換機的路由查找是針對流的,它利用CACHE技術,很容易采用ASIC實現,因此,可以大大的節約成本,并實現快速轉發。
      很多文章會提及三層交換機和路由器的區別,一般的比較是三層交換機又快又便宜。這些話沒有錯,但場合是匯聚層。我們看到,在匯聚層,面向三層交換機直接下掛的主機,因為能夠獲得其主機路由,所以三層交換機能夠實現快速查找;而對于通過其它路由器連接多個子網后到達的主機,三層交換機和路由器的處理是一樣的,同樣采用最長匹配的方法查找到下一跳,由下一跳路由器進行轉發。
      因此,通常的組網方式是在骨干層使用GSR,匯聚層使用三層交換機。當然,對于一個小型的城域網,也可以直接拿三層交換機組網,不需要GSR。//

    posted @ 2006-04-02 18:25 壯士日志 閱讀(209) | 評論 (0)編輯 收藏

    僅列出標題
    共3頁: 上一頁 1 2 3 
    主站蜘蛛池模板: 高清国语自产拍免费视频国产| 国产亚洲人成A在线V网站| 美女被免费视频网站| 国产精品亚洲二区在线观看| 日韩免费高清大片在线| 亚洲欧美日韩一区二区三区在线| 亚洲精品国产高清不卡在线| 国产精品区免费视频| 亚洲欧美日韩自偷自拍| 精品亚洲综合久久中文字幕| 国产美女在线精品免费观看| 国产成人1024精品免费| 亚洲中文无码a∨在线观看| 亚洲av无码国产精品色在线看不卡 | 亚洲一区免费观看| 亚洲av综合av一区二区三区 | 国产免费变态视频网址网站| 免费在线观影网站| 亚洲av第一网站久章草| 亚洲AV日韩AV永久无码免下载| 国产片免费在线观看| 91久久青青草原线免费| h视频免费高清在线观看| 亚洲制服丝袜一区二区三区| 久久久久一级精品亚洲国产成人综合AV区| 青青草无码免费一二三区| 新最免费影视大全在线播放| 91丁香亚洲综合社区| 久久精品7亚洲午夜a| 亚洲国产成人久久综合一区77| 日本最新免费网站| 国内精品一级毛片免费看| 免费人成再在线观看网站| 精品国产日韩久久亚洲| 亚洲高清视频免费| 亚洲热线99精品视频| 亚洲高清最新av网站| 日韩精品免费电影| 亚洲精品免费网站| 亚洲网站免费观看| 无码免费一区二区三区免费播放|