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

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

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

    搬磚頭

    Knocking on Heaven's Door
    posts - 34, comments - 6, trackbacks - 0, articles - 0

    history|grep halt
    cat .bash_history|grep halt

    不同的系統(tǒng)history文件是不一樣的,
    一般是$HOME目錄下

    查找find / -name "*history"
    主要是root及oracle下的

    Redhat的root
    /root/.bash_history

    /var/log下呀
    查看wtmp文件
    who wtmp.n

    posted @ 2008-04-24 14:26 生活在別處 閱讀(144) | 評論 (0)編輯 收藏

    一、一些重要的概念(關于Linux系統(tǒng)的一些重要特性)
        由于我們用Windows太多,我就感覺我自己除了會點鼠標之外對于Windows系統(tǒng)沒有太多的了解,甚至沒有Linux多.
        1、文件系統(tǒng)結構
        2、文件類型
           一切都是文件,包括普通文件、設備文件、目錄等等
        3、運行級別
           Linux有6個運行級別
        4、管道
        5、重定向
        6、交換分區(qū)
        7、根目錄下各個目錄的意義
    二、文本編輯
        1、vi的用法
    三、常用的命令
        1、基本
        包括:cd   clear  alias  unalias  date  ls  pwd  man exit  echo
        2、文件管理
        包括:cat  more  rm  head  tail  grep  cp  mv  wc find
        3、目錄管理
        包括:mkdir  rmdir  rm  find  file  du  df
        4、權限命令
           如何設定我們用戶和文件以及系統(tǒng)的權限。
           包括:chmod  chown  chgrp umask
        5、系統(tǒng)命令
           包括:mount  umount  uname  free  env
                 uptime  setup  xinetd  top  kill  關機命令
        5、常用的網絡命令
           關于網絡管理以及使用的一些命令
    四、安裝與卸載(限于Redhat以及相似系統(tǒng))
         1、RPM命令
         2、Oracle9i安裝卸載以及基本管理
    五、相關工具的命令
        1、FTP
        2、Telnet
    六、常見的系統(tǒng)設置
        1、運行級別
        2、共享(NFS)
        3、修改Swap
        4、設定系統(tǒng)環(huán)境變量(JDK安裝)
        5、系統(tǒng)備份(打包、壓縮以及解壓縮)
        6、常見的標志(權限:r w x s t 標志:l b c d)
    七、Shell編程
        1、Shell變量和參數(shù)
        2、環(huán)境變量
        3、位置參數(shù)
        4、運算符
        5、常用語句
        6、函數(shù)
        7、控制
        8、運行方式
    八、Linux安裝
    九、Crontab簡單應用

    以前的存檔,源未知

    posted @ 2008-02-21 14:24 生活在別處 閱讀(311) | 評論 (0)編輯 收藏


    1) 重啟后生效
    開啟: chkconfig iptables on
    關閉: chkconfig iptables off

    2) 即時生效,重啟后失效
    開啟: service iptables start
    關閉: service iptables stop

    需要說明的是對于Linux下的其它服務都可以用以上命令執(zhí)行開啟和關閉操作。

    在開啟了防火墻時,做如下設置,開啟相關端口,
    修改/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
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT

    posted @ 2008-02-21 14:22 生活在別處 閱讀(863) | 評論 (0)編輯 收藏

    碰到了問題,找到了解決,存檔一下
    關鍵字: jdk 字符集 linux
    原因:首先,JFreeChart和中文驗證碼的亂碼問題和jsp的編碼無關,是由于Java虛擬機找不到字體文件造成的,所以同類的Swing或者AWT的中文亂碼問題也適用

    環(huán)境:
    JDK1.5(JDK版本很重要,如果是1.4.2版本的話,JRE目錄下的字體配置文件不大一樣)
    RedHat4.0
    Tomcat5.0

    解決方法:
    1.確認%JavaHome%/jre/lib/fonts目錄下存在zysong.ttf
    2.在%JavaHome%/jre/lib/fonts目錄下執(zhí)行"ttmkfdir -o fonts.dir"命令,重新生成fonts.dir文件
    3.確認/usr/share/fonts/zh_CN/TrueType目錄存在,如果不存在則mkdir創(chuàng)建
    4.確認/usr/share/fonts/zh_CN/TrueType目錄下存在zysong.ttf
    5.在%JavaHome%/jre/lib目錄下,執(zhí)行 cp fontconfig.RedHat.3.properties.src fontconfig.properties
    6.重新啟動tomcat,大功告成!

    需要下載zysong.ttf

    posted @ 2008-02-21 14:19 生活在別處 閱讀(711) | 評論 (0)編輯 收藏

  • Ctrl + Shift + T:打開類型:顯示"打開類型"對話框來在編輯器中打開類型。"打開類型"選擇對話框顯示工作空間中存在的所有類型如類、接口等
  • Ctrl + Shift + R:打開資源:打開"打開資源"對話框以打開工作空間中的任何資源。在Package Explorer中不必瀏覽文件便可快速打開任意一個文件。使用這個快捷鍵可以打開一個對話框,在里面輸入你想查找的文件或者通配符既可。
  • Ctrl + O: 快速大綱:打開當前所選類型的輕量級大綱圖。在一個文件中直接打開一個成員變量(如字段、方法),尤其是有許多類似的方法名的時候這個快捷鍵將變得非常有用。
  • Ctrl + L, 輸入行數(shù): 轉至行:打開一個對話框,允許您輸入編輯器應該跳至的行號。僅適用于編輯器。輸入行號,可以快速跳轉到源文件中的第N行,
  • Ctrl + Q:上一個編輯位置:顯示上一個編輯操作的發(fā)生位置,返回到最近的修改位置。即使你查看不同的文件時,你也可以使用該快捷鍵來找到你最近對文件的修改位置。尤其是在文件比較大時,顯得更為有用。
  • Ctrl + T: 快速類型層次結構:打開當前選擇的類型的輕量級層次結構查看器,可以實現(xiàn)快速轉到一個supertype或者subtype.
  • Ctrl + E:快速跳轉到另外一個編輯器。注意Ctrl + F6也可以實現(xiàn)這個功能,在使用的時候可以注意一下他們的異同。
  • Ctrl + ./Ctrl +,:在一個文件中快速定位到一個問題(如錯誤、警告等)
  • Alt + and Alt + :來回跳轉至你所查閱的文件
  • F3: 快速轉到一個類型聲明。同時也可以按住ctrl健并點擊該超鏈接變量或者類或者你想查看的任何聲明都可以。

  • 更多
    ctrl+space
    alt+上下箭頭
    ctrl+alt+上下箭頭
    ctrl|+/
    ctrl+d

    posted @ 2007-11-02 17:01 生活在別處 閱讀(315) | 評論 (0)編輯 收藏

    以前碰到過,要tomcat開機啟動的問題,后來用root用戶啟,但是風險很大
    這次碰巧看到了解決辦法,趕緊收了下來
    原帖名字:ubuntu7.04 安裝tomcat6
    來源:http://tristonxu.spaces.live.com/blog/cns!6C727D52D9679258!382.entry

    終于搞定了,如果僅僅安裝tomcat,那是很容易的,問題是如何讓他隨ubuntu啟動運行,這才是問題的關鍵!現(xiàn)在終于搞定了,唉...俺還是比較笨,居然用了兩天的時間才解決,而且問題解決之后,才發(fā)現(xiàn)之前原來一直是在成功的門前徘徊。想想,人生何嘗不是這樣,有多少人用一輩子的時光在成功的門前晃蕩...
    呵呵~還是趕緊把它記錄下來吧,年紀大了阿...

    一、安裝之前
    1、下載tomcat
    最新的tomcat是apache-tomcat-6.0.13.tar.gz,下載地址是:http://tomcat.apache.org/download-60.cgi

    安裝之前要先安張jdk,最好選擇JDK5.0以上版本吧。

    二、安裝ing
    1、解壓apache-tomcat-6.0.13.tar.gz到安裝目錄下。
    根據(jù)俺的實際情況,我把tmcat安裝在/opt目錄下
    shell>sudo tar zxvf apache-tomcat-6.0.13.tar.gz /opt
    解壓之后,會在/opt下生成一個apache-tomcat-6.0.13文件夾

    2、在/usr/local下建立一個軟鏈接
    shell>cd /usr/local
    shell>sudo ln -s /opt/apache-tomcat-6.0.13 tomcat6

    3、測試安裝
    運行啟動腳本,測試tomcat是否安裝成功
    shell>sudo /usr/local/tomcat6/bin/startup.sh
    然后打開FF,用http://localhost:8080 訪問tomcat。一般來講,會成功的。呵呵~

    三、讓tomcat開機啟動
    根據(jù)apache網站的Document說明(這個說明也寫得很差,嗚嗚!),要是tomcat作為一個守護程序運行,需要用到jsvc工具。(這個工具是啥玩意,俺也不懂,懶得研究,居然tomcat自帶,那就最好了)
    1、準備工作
    Tomcat安裝后,如果讓Tomcat用root身份啟動,Tomcat將會擁用root權限,這將可能給系統(tǒng)帶來安全隱患,黑客可能利用這個來攻擊我們的系統(tǒng),所以我們得添加一個獨立運行此服務的用戶,用下面的命令:

    shell>sudo useradd -d /usr/local/tomcat6 -s /usr/sbin/nologin tomcat
    以上命令為系統(tǒng)增加一個tomcat用戶,并且設置為nologin

    設置用戶tomcat5對tomcat的權限
    shell>sudo chown -R tomcat:tomcat /usr/local/tomcat6
    shell> sudo chown -R tomcat:tomcat /opt/apache-tomcat-6.0.13

    2、安裝jsvc
    shell>cd /usr/local/tomcat6/bin
    shell>sudo tar xvfz jsvc.tar.gz
    shell>cd jsvc-src
    shell>sudo sh support/buildconf.sh
    如果成功,命令終端打印出下面report:
    support/buildconf.sh: configure script generated successfully

    [注:在此之前,我的系統(tǒng)安裝了autoconf,可以使用shell>sudo apt-get install autoconf 進行安裝]
    為configure添加執(zhí)行權限
    shell>sudo chmod 755 configure
    shell>sudo ./configure --with-java=/usr/lib/j2sdk1.6-sun (這是俺系統(tǒng)的JDK安裝的位置)
    shell>sudo make

    okay!如果沒有出現(xiàn)錯誤的話,jsvc就安裝成功了!

    3、設置啟動腳本
    接下來,就是把jsvc中帶有的一個tomcat5.sh的一個模板復制到/etc/init.d目錄下,然后根據(jù)自己的情況,進行修改。
    shell>sudo cp /usr/local/tomcat6/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
    上面的命令是移動文件tomcat5.sh到/etc/init.d/里面并改名為tomcat

    修改/etc/init.d/tomcat文件:
    shell>cd /etc/init.d
    shell>sudo gedit tomcat

    俺的tomcat文件修改完如下:

    #!/bin/sh
    ##############################################################################
    #
    # Copyright 2004 The Apache Software Foundation.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    # http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    ##############################################################################
    #
    # Small shell script to show how to start/stop Tomcat using jsvc
    # If you want to have Tomcat running on port 80 please modify the server.xml
    # file:
    #
    # <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
    # <Connector className="org.apache.catalina.connector.http.HttpConnector"
    # port="80" minProcessors="5" maxProcessors="75"
    # enableLookups="true" redirectPort="8443"
    # acceptCount="10" debug="0" connectionTimeout="60000"/>
    #
    # That is for Tomcat-5.0.x (Apache Tomcat/5.0)
    #
    # Adapt the following lines to your configuration
    JAVA_HOME=/usr/lib/j2sdk1.6-sun
    CATALINA_HOME=/usr/local/tomcat6
    DAEMON_HOME=/usr/local/tomcat6/bin
    TOMCAT_USER=tomcat

    # for multi instances adapt those lines.
    TMP_DIR=/var/tmp
    PID_FILE=/var/run/jsvc.pid
    CATALINA_BASE=/usr/local/tomcat6

    CATALINA_OPTS=
    CLASSPATH=\
    $JAVA_HOME/lib/tools.jar:\
    $CATALINA_HOME/bin/commons-daemon.jar:\
    $CATALINA_HOME/bin/bootstrap.jar

    case "$1" in
    start)
    #
    # Start Tomcat
    #
    $DAEMON_HOME/jsvc-src/jsvc \
    -user $TOMCAT_USER \
    -home $JAVA_HOME \
    -Dcatalina.home=$CATALINA_HOME \
    -Dcatalina.base=$CATALINA_BASE \
    -Djava.io.tmpdir=$TMP_DIR \
    -wait 10 \
    -pidfile $PID_FILE \
    -outfile $CATALINA_HOME/logs/catalina.out \
    -errfile '&1' \
    $CATALINA_OPTS \
    -cp $CLASSPATH \
    org.apache.catalina.startup.Bootstrap
    #
    # To get a verbose JVM
    #-verbose \
    # To get a debug of jsvc.
    #-debug \
    exit $?
    ;;

    stop)
    #
    # Stop Tomcat
    #
    $DAEMON_HOME/src/native/unix/jsvc \
    -stop \
    -pidfile $PID_FILE \
    org.apache.catalina.startup.Bootstrap
    exit $?
    ;;

    *)
    echo "Usage tomcat.sh start/stop"
    exit 1;;
    esac

    [注:需要修改的地方,我都用紅色標出來]
    如果在其他linux系統(tǒng),這樣就okay了,但是在ubuntu中,還需要進行一步,就是把在rc2.d中設置一個軟鏈接

    在/etc/rc2.d目錄下建立S16apache軟聯(lián)接到/etc/init.d/tomcat
    shell>cd /etc/rc2.d
    shell>ln -s /etc/init.d/apache2 S16apache
    [注:rc2.d目錄下的文件要以S后就數(shù)字開頭,表示啟動的順序。而rc2.d中的2,表示這個目錄下文件在開機時的運行級別(runlevel)為2]

    四、結束
    重新啟動系統(tǒng)
    shell>sudo reboot -n
    啟動后,就可以在FF中直接輸入http://localhost:8080。如果成功,就可以看見一直可愛的kitten拉~~~



    posted @ 2007-11-02 16:40 生活在別處 閱讀(1650) | 評論 (0)編輯 收藏

            項目開發(fā)中,碰到的問題,原先設計的字段,定為VARCHAR2類型,最大長度為4000 bytes,實際的應用中,內容往往超過兩千漢字,沒辦法正常插入,因此改為clob大字段類型。
            采用Hibernate,實現(xiàn)Clob和Blob對象的存取, 網上有很多解決方案,但是比較老,實際運用中,可能會碰到各種問題。下面是我采用的方案,比較簡單,希望對碰到這個問題的人,有幫助。
            目前oracle的driver已經支持JDBC 直接操作 CLOB了,但是使用舊的driver的時候,會遇到各種問題,如2k字符的問題。
             最新的oracle10g的driver,已經解決了這些問題。我項目用ojdbc14-10.2.0.3.0.jar 連接oracle9i數(shù)據(jù)庫,可以正常讀寫CLOB。
             Hibernate存取Clob和Blob對象,將 clob用string方式處理。
             Hibernate Annotations方式,只要映射成Lob類型就可以,對該字段的讀寫,就是一般的操作方式。

            @Lob
        public String getTxt() {
            
    return txt;
        }

            好了,就是這么簡單!

    posted @ 2007-11-02 16:17 生活在別處 閱讀(3595) | 評論 (3)編輯 收藏

    WIN下的tomcat5的日志是按日期來記錄的.移到linux下發(fā)現(xiàn)tomcat/logs下只有一個catalina.out件.
    時間一長.發(fā)現(xiàn)日志文件暴增.對于管理真是不方便.
    要是能像win下的tomcat那樣分日期記錄就好了.思來想去就想到用cron來分割日志文件.
    試試吧.
    先google一下.cronolog-1.6.2.tar.gz
    1.下載cronolog-1.6.2.tar.gz
    2.安裝
    # tar zxvf cronolog-1.6.2.tar.gz
    # ./configure
    # make
    # make install
    搞定!
    默認是安裝在/usr/local/sbin/下.
    3.配置
    重點來了.注意嘍!!!
    在tomcat/bin/catalian.sh中找到
    org.apache.catalina.startup.Bootstrap "$@" start \     >> "$CATALINA_BASE"/logs/catalina.out 2&1 &
     
    把上面的內容改成:
    org.apache.catalina.startup.Bootstrap "$@" start \
    |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &
    修改好了.重啟
    #./catalina.sh start
    現(xiàn)去看看勞動成果吧.
    # ls /tomcat/logs/
    就會發(fā)現(xiàn)logs下面多了幾個如同catalina.2006.06.01.log的文件了.

    posted @ 2007-10-30 10:07 生活在別處 閱讀(2569) | 評論 (0)編輯 收藏

        最近發(fā)現(xiàn)服務器被人窮舉掃描,網上找了辦法搞定了

    原貼:http://blog.chinaunix.net/u/17030/showart_315674.html

    我的服務器每天都會有無數(shù)的SSH失敗嘗試記錄,有些無聊的人一直不停的掃描,這些人真夠無聊的,沒事吃飽了撐著,老找些軟件在那里窮舉掃描,所以大家第一要記的設置一個好的夠復雜的密碼。

    怎么樣防,如果要一條一條將這些IP阻止顯然治標不治本,還好有DenyHosts軟件來代替我們手搞定他。

    DenyHosts是Python語言寫的一個程序,它會分析sshd的日志文件,當發(fā)現(xiàn)重復的攻擊時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏IP的功能。

    DenyHosts官方網站為:http://denyhosts.sourceforge.net

    以下是安裝記錄(以CentOS 4.3, DenyHosts 2.5 為例)

    安裝

    # cd /usr/local/src
    # wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5.tar.gz
    # tar -zxvf DenyHosts-2.5.tar.gz
    # cd DenyHosts-2.5
    # python setup.py install

    默認是安裝到/usr/share/denyhosts目錄的。

    配置

    # cd /usr/share/denyhosts/
    # cp denyhosts.cfg-dist denyhosts.cfg
    # vi denyhosts.cfg

    根據(jù)自己需要進行相應的配置(解釋見下文件的配置文件)

    設置啟動腳本

    # cp daemon-control-dist daemon-control
    # chown root daemon-control
    # chmod 700 daemon-control

    完了之后執(zhí)行daemon-contron start就可以了。

    # ./daemon-control start

    如果要使DenyHosts每次重起后自動啟動還需做如下設置:

    # cd /etc/init.d
    # ln -s /usr/share/denyhosts/daemon-control denyhosts
    # chkconfig –add denyhosts
    # chkconfig –level 2345 denyhosts on

    或者修改/etc/rc.local文件:

    # vi /etc/rc.local

    加入下面這條命令

    /usr/share/denyhosts/daemon-control start

    DenyHosts配置文件:

    vi /etc/denyhosts.cfg

    SECURE_LOG = /var/log/secure
    #ssh 日志文件,它是根據(jù)這個文件來判斷的。

    HOSTS_DENY = /etc/hosts.deny
    #控制用戶登陸的文件

    PURGE_DENY = 5m
    #過多久后清除已經禁止的

    BLOCK_SERVICE = sshd
    #禁止的服務名

    DENY_THRESHOLD_INVALID = 1
    #允許無效用戶失敗的次數(shù)

    DENY_THRESHOLD_VALID = 10
    #允許普通用戶登陸失敗的次數(shù)

    DENY_THRESHOLD_ROOT = 5
    #允許root登陸失敗的次數(shù)

    HOSTNAME_LOOKUP=NO
    #是否做域名反解

    ADMIN_EMAIL = iakuf@163.com
    #管理員郵件地址,它會給管理員發(fā)郵件

    DAEMON_LOG = /var/log/denyhosts
    #自己的日志文件

    然后就可以啟動了:

    service denyhost start

    可以看看/etc/hosts.deny內是否有禁止的IP,有的話說明已經成功了。


    =========================================================
    原文地址 http://www.taoran.net/tech/denyhosts.html

    DenyHosts是用Python2.3寫的一個程序,它會分析/var/log/secure(redhat,F(xiàn)edora Core)等日志文件,當發(fā)現(xiàn)同一IP在進行多次SSH密

    碼嘗試時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏蔽該IP的目的。

    DenyHosts官方網站為:http://denyhosts.sourceforge.net


    一、檢查安裝條件

    1、首先判斷系統(tǒng)安裝的sshd是否支持tcp_wrappers(默認都支持)
    # ldd /usr/sbin/sshd
    libwrap.so.0 => /usr/lib/libwrap.so.0 (0x0046e000)

    2、判斷默認安裝的Python版本
    # python -V
    Python 2.3.4

    二、已安裝Python2.3以上版本的情況(以RedHat AS4為例)

    1、安裝DenyHosts

    # cd /usr/local/src
    # wget http://umn.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
    # tar zxf DenyHosts-2.6.tar.gz
    # cd DenyHosts-2.6
    # python setup.py install
      
       程序腳本自動安裝到/usr/share/denyhosts
       庫文件自動安裝到/usr/lib/python2.3/site-packages/DenyHosts
       denyhosts.py自動安裝到/usr/bin

    2、設置啟動腳本
    # cd /usr/share/denyhosts/
    # cp daemon-control-dist daemon-control
    # chown root daemon-control
    # chmod 700 daemon-control
    # grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
    # vi denyhosts.cfg
      根據(jù)自己需要進行相應的修改
    ----------------denyhosts.cfg------------------------
    SECURE_LOG = /var/log/secure
    #RedHat/Fedora Core分析該日志文件
    #其它版本linux根據(jù)denyhosts.cfg-dist內提示選擇。

    PURGE_DENY = 30m
    #過多久后清除

    DENY_THRESHOLD_INVALID = 1
    #允許無效用戶(/etc/passwd未列出)登錄失敗的次數(shù)

    DENY_THRESHOLD_VALID = 5
    #允許有效(普通)用戶登錄失敗的次數(shù)

    DENY_THRESHOLD_ROOT = 3
    #允許root登錄失敗的次數(shù)

    HOSTNAME_LOOKUP=NO
    #是否做域名反解
    ----------------denyhosts.cfg------------------------

    如果需要DenyHosts隨系統(tǒng)重啟而自動啟動,還需做如下設置:
    # vi /etc/rc.local
        加入下面這條命令
    /usr/share/denyhosts/daemon-control start

    3、啟動

    # /usr/share/denyhosts/daemon-control start



    三、未安裝Python2.3以上版本的情況(以RedHat AS3、Python2.2為例)

    1、安裝Python最新版本的源碼包,不必卸載原有低版本Python
    # cd /usr/local/src
    # wget http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tar.bz2
    # tar jxf Python-2.5.1.tar.bz2
    # cd Python-2.5.1
    # ./configure --prefix=/usr/local/python
    # make
    # make install

    2、安裝DenyHosts
    # cd /usr/local/src
    # wget http://umn.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
    # tar zxf DenyHosts-2.6.tar.gz
    # cd DenyHosts-2.6
    # vi setup.py
      將"/usr/bin/env python"替換為"/usr/local/python/bin/python",在第一行
    # vi daemon-control-dist
      將"/usr/bin/env python"替換為"/usr/local/python/bin/python",注意有兩處
    # /usr/local/python/bin/python setup.py install

       程序腳本自動安裝到/usr/share/denyhosts
       庫文件自動安裝到/usr/local/python/lib/python2.5/site-packages/DenyHosts
       denyhosts.py自動安裝到/usr/local/python/bin

    # ln -s /usr/local/python/bin/denyhosts.py /usr/bin

    posted @ 2007-10-30 10:01 生活在別處 閱讀(672) | 評論 (1)編輯 收藏

    原帖地址: http://m.tkk7.com/Unmi/archive/2007/07/25/132391.html


    做了一個 Java 程序放在 Solaris 下運行,用到許多的第三方包,有 *.zip 的和 *.jar的,放在 lib 目錄下,然后寫了一個 shell 腳本來運行那個 java 程序,那就要在 classpath 中包含所有在 lib 中的第三方包。

    原來的做法是在 classpath中把lib目錄中一個個的包文件名用冒號連綴起來,比如
    classpath=.:lib/a.jar:lib/b.jar:lib/c.jar:lib/d.zip
    java -classpath $classpath com.unmi.Main

    碰到程序升級,在lib中增加或減少了包文件,又要再重新修改那個啟動 java 程序的 shell 腳本,甚是麻煩。由此想寫個 shell,功能是能列舉lib目錄下所有第三方包,用冒號連綴成一個 classpath 變量,這樣的話,無論在 lib 目錄中增減包,都不需要再次修改那個啟動 java 程序的 shell 腳本,就像 tomcat,無論是 common/lib 還是 app/WEB-INF/lib 中的第三方包,即放即用。

    記得在以前一個公司,有見過這樣的腳本,不過記不清了,大致是用 while 循環(huán)來生成那樣一個classpath 變量的。

    還好在網上有高人出手相救,在 CSDN 發(fā)了一個貼:

    http://community.csdn.net/Expert/topic/5671/5671131.xml?temp=.7013971

    過一天就有人回復,完成這一功能的代碼是:

    #!/bin/sh

    _jar=`ls | grep "..*\.zip$"`
    _zip=`ls | grep "..*\.jar$"`
    _classpath="${_jar} ${_zip}"
    classpath=`echo ${_classpath} | sed -e 's/ /:/g'`
    echo ${classpath}

    這里根據(jù)我們前面的需求,是要列出 lib 目錄下的 *.zip 或 *.jar 包,所以 shell 改寫為:

    #!/bin/sh

    _jar=`ls lib | grep "..*\.zip$"`  #列舉lib目錄下的 *.zip 文件
    _zip=`ls lib | grep "..*\.jar$"`  #列舉lib目錄下的 *.zip 文件
    _classpath="${_jar} ${_zip}"
    classpath=`echo ${_classpath} | sed -e 's/ /:lib\//g'`   #包名前都要帶個 lib/
    echo ${classpath}

    這樣,你就可以使用這個 classpath 變量了

    java -classpath .:${classpath} com.unmi.Main #把當前目錄 . 也加到 classpath 中

    在此非常感謝 mymtom(mymtom) 的回復。

    最后回頭來想想這也就是在原來的 JRE 版本需要手工處理這些事情,如果能用上新版 6.0 Mustang JRE,就可以用它的新特性之一,classpath 通配符,java -classpath .;lib\*.jar:lib\*.zip 了,可是相信大多數(shù)同我一樣,還享受不起最新版,只能暫且麻煩一些了。
    posted on 2007-07-25 21:14 Unmi 閱讀(685) 評論(4)  編輯  收藏

    Feedback

    # re: [導入]Linux/Unix下讀取lib目錄下所有包生成classpath的Shell 2007-07-27 09:41 blackstone
    提供另一種辦法

    #!/bin/sh
    #獲取當前目錄
    PWD=`pwd`
    for i in lib/*;
    do CLASSPATH=$PWD/$i:"$CLASSPATH";
    done

    export CLASSPATH=.:$CLASSPATH

    java Your Main Class  回復  更多評論
      

    # re: [導入]Linux/Unix下讀取lib目錄下所有包生成classpath的Shell 2007-07-27 13:07 Unmi
    太好,更簡練了,對我來說寫成下來那樣子就行了

    #!/bin/sh
    CP=.
    for file in lib/*;
    do CP=${CP}:$file;
    done
    echo $CP
    #我只要用這個CP就行
      回復  更多評論
      

    # re: [導入]Linux/Unix下讀取lib目錄下所有包生成classpath的Shell 2007-09-30 10:38 飛貓
    這個更方便:
    CLASSPATH=`find lib -name *.jar|xargs|sed "s/ /:/g"`
    CLASSPATH=".:$CLASSPATH"
    echo $CLASSPATH

      回復  更多評論 
      
     
    DOS批處理腳本枚舉 lib 目錄下的 jar 和 zip 文件,拼成 classpath 的腳本

    @echo off
    setlocal EnableDelayedExpansion
    set cp=.
    for /F %%a in ('dir lib\*.jar lib\*.zip /b') do set cp=!cp!;%%a
    @echo %cp%

    posted @ 2007-10-10 16:50 生活在別處 閱讀(4873) | 評論 (0)編輯 收藏

    僅列出標題
    共4頁: 上一頁 1 2 3 4 下一頁 
    主站蜘蛛池模板: 在线综合亚洲中文精品| 羞羞视频免费观看| 香蕉免费一区二区三区| MM131亚洲国产美女久久| 婷婷亚洲综合一区二区| 国产精品四虎在线观看免费| 最新亚洲卡一卡二卡三新区| 成人免费一区二区三区在线观看| 亚洲一级毛片中文字幕| 成人免费毛片内射美女-百度| 亚洲伦理中文字幕| 搡女人免费视频大全| 久久亚洲精品无码gv| 一区国严二区亚洲三区| 免费看一级高潮毛片| 在线亚洲97se亚洲综合在线| 91精品全国免费观看青青| 亚洲天堂男人天堂| 青青视频观看免费99| 亚洲国产无线乱码在线观看 | fc2成年免费共享视频18| 夜色阁亚洲一区二区三区| 国产福利在线观看永久免费| 精品久久香蕉国产线看观看亚洲| 国产午夜精品久久久久免费视 | 日日躁狠狠躁狠狠爱免费视频| 亚洲精品国自产拍在线观看| 国产啪精品视频网站免费尤物 | 亚洲伦理一区二区| 无码永久免费AV网站| 精品国产_亚洲人成在线| 亚洲人成人一区二区三区| 最近中文字幕电影大全免费版| 亚洲色丰满少妇高潮18p| 又黄又爽一线毛片免费观看| 无码少妇精品一区二区免费动态| 久久夜色精品国产噜噜亚洲a| 四虎永久成人免费影院域名| 性xxxxx大片免费视频| 亚洲av无码成人精品区一本二本 | 亚洲成年网站在线观看|