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

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

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

    java技術研究

    統計

    留言簿(3)

    閱讀排行榜

    評論排行榜

    #

    ssh與Ubuntu(或centos)連接中文亂碼問題

    問題解決,解決方法如下:
    以secureCRT為例,菜單:選項-->會話選項...-->(類別)終端->外觀-->字符編碼,選擇UTF-8,然后確定。。。

    posted @ 2013-12-22 22:22 小秦 閱讀(247) | 評論 (0)編輯 收藏

    安裝和設置 OpenSSH Server

    安裝和設置 OpenSSH Server: sudo apt-get install openssh-server
    然后確認sshserver是否啟動了: ps -e |grep ssh  
    如果看到sshd那說明ssh-server已經啟動了。
    如果沒有則可以這樣啟動: sudo /etc/init.d/ssh start  
    ssh-server配置文件位于/ etc/ssh/sshd_config
    在這里可以定義SSH的服務端口,默認端口是22,你可以自己定義成其他端口號,如222。
    然后重啟SSH服務:
    sudo /etc/init.d/ssh stop  
    sudo /etc/init.d/ssh start  
    然后通過Xshell等軟件連接。Name為新建連接的名稱,選擇協議類型(Protocol)為“SSH”,Host為服務器的IP地址,端口(Port Number)為SSH協議的連接端口(默認為22),其他選項按照默認設置。

    我在ubuntu12.04系統實際操作中執行了sudo apt-get install openssh-server之后按照提示安裝成功。之后直接ssh localhost成功,然后外部機器就可以直接ssh過來了

    posted @ 2013-12-21 22:01 小秦 閱讀(308) | 評論 (0)編輯 收藏

    安裝VMware tools 時vmware-install.pl無法安裝的問題解決辦法

    1.啟動Rad Hat 9.0(圖形界面方式登陸),并且以管理員的身份登陸。不用管理員身份不能安裝。
    2.在VMware虛擬機的菜單中點擊:虛擬機->安裝VMware 工具->install。
    3.Red Hat 9.0自動掛載VMware Tools的虛擬光驅,并顯示在桌面。
    4.進去VMware Tools的虛擬光驅里,把VMwareTools-5.5.1-19175.tar.gz復制到/tmp目錄。
    5.進去/tmp目錄,把VMwareTools-5.5.1-19175.tar.gz解壓到當前目錄下的一個文件夾中(VMwareTools-5文件夾)。
    6.同時按住Ctrl+Alt+F1三個鍵,進入字符界面,并以root身份登陸。
    7.輸入以下命令:cp /tmp/VMwareTools-5/vmware-tools-distrib(進入vmware-tools-distrib目錄)。
    8.輸入:./vmware-install.pl(執行vmware-install.pl文件)。
    9.然后一路“回車”,能yes的就yes,就OK。
    10. 輸入reboot命令(重新啟動)。
    11.大功告成。

    posted @ 2013-12-21 21:34 小秦 閱讀(9180) | 評論 (0)編輯 收藏

    ubuntu默認root密碼

    安裝完Ubuntu后忽然意識到沒有設置root密碼,不知道密碼自然就無法進入根用戶下。到網上搜了一下,原來是這麼回事。Ubuntu的默認root密碼是隨機的,即每次開機都有一個新的root密碼。我們可以在終端輸入命令 sudo passwd,然后輸入當前用戶的密碼,enter,終端會提示我們輸入新的密碼并確認,此時的密碼就是root新密碼。修改成功后,輸入命令 su root,再輸入新的密碼就ok了。

    posted @ 2013-12-21 21:34 小秦 閱讀(171) | 評論 (0)編輯 收藏

    Apache Shiro 使用手冊(三)Shiro 授權(轉)

         摘要: 博客分類: 開發安全框架Shiro 授權即訪問控制,它將判斷用戶在應用程序中對資源是否擁有相應的訪問權限。 如,判斷一個用戶有查看頁面的權限,編輯數據的權限,擁有某一按鈕的權限,以及是否擁有打印的權限等等。 一、授權的三要素 授權有著三個核心元素:權限、角色和用戶。 權限 權限是Apache Shiro安全機制最核心的元素。它在...  閱讀全文

    posted @ 2013-09-05 17:04 小秦 閱讀(358) | 評論 (0)編輯 收藏

    mysql-bin文件過大導致的mysql錯誤(轉)

    mysql-bin文件是數據庫的操作日志,例如UPDATE一個表,或者DELETE一些數據,即使該語句沒有匹配的數據,這個命令也會存儲到日志文件中,還包括每個語句執行的時間,也會記錄進去的。

    這樣做主要有以下兩個目的:
    1:數據恢復:如果你的數據庫出問題了,而你之前有過備份,那么可以看日志文件,找出是哪個命令導致你的數據庫出問題了,想辦法挽回損失。
    2:主從服務器之間同步數據
          主服務器上所有的操作都在記錄日志中,從服務器可以根據該日志來進行,以確保兩個同步。

    處理方法分兩種情況:
    1:只有一個mysql服務器,那么可以簡單的注釋掉這個選項就行了。
           vi /etc/my.cnf把里面的log-bin這一行注釋掉,重啟mysql服務即可。
    2:如果你的環境是主從服務器,那么就需要做以下操作了。
        A:在每個從屬服務器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪個日志。
        B:使用SHOW MASTER LOGS獲得主服務器上的一系列日志。
        C:在所有的從屬服務器中判定最早的日志,這個是目標日志,如果所有的從屬服務器是更新的,就是清單上的最后一個日志。
        D:清理所有的日志,但是不包括目標日志,因為從服務器還要跟它同步。
         清理日志方法為:
        PURGE MASTER LOGS TO 'mysql-bin.010';
        PURGE MASTER LOGS BEFORE '2008-12-19 21:00:00';
        如果你確定從服務器已經同步過了,跟主服務器一樣了,那么可以直接RESET MASTER將這些文件刪除。


    查看mysql關于mysql-bin的配置
    show variables like '%max_binlog_size%'
    max_binlog_size 1073741824 默認大小為1G 
    但是mysql-bin文件過多會占用大量的磁盤空間,所以要對日志文件進行清理,方法如下: 
    1、禁止方法: vi /etc/my.cnf把里面的
    #log-bin=mysql-bin
    注釋掉,重啟mysql服務即可.
    2、mysql> reset master;或flush logs; (清除日志文件)
    3、mysql> set global expire_logs_days=2;只保留兩天的mysql-bin日志
    4、刪除ablelee.000003之前的而沒有包含ablelee.000003
          mysql> purge binary logs to 'ablelee.000003';

    posted @ 2013-08-21 10:13 小秦 閱讀(343) | 評論 (0)編輯 收藏

    Linux下查看文件和文件夾大小(轉)

    當磁盤大小超過標準時會有報警提示,這時如果掌握df和du命令是非常明智的選擇。

        df可以查看一級文件夾大小、使用比例、檔案系統及其掛入點,但對文件卻無能為力。
        du可以查看文件及文件夾的大小。

        兩者配合使用,非常有效。比如用df查看哪個一級目錄過大,然后用df查看文件夾或文件的大小,如此便可迅速確定癥結。

        下面分別簡要介紹

        df命令可以顯示目前所有文件系統的可用空間及使用情形,請看下列這個例子:

     

    以下是代碼片段:

    [yayug@yayu ~]$ df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             3.9G  300M  3.4G   8% /
    /dev/sda7             100G  188M   95G   1% /data0
    /dev/sdb1             133G   80G   47G  64% /data1
    /dev/sda6             7.8G  218M  7.2G   3% /var
    /dev/sda5             7.8G  166M  7.2G   3% /tmp
    /dev/sda3             9.7G  2.5G  6.8G  27% /usr
    tmpfs                 2.0G     0  2.0G   0% /dev/shm

     

        參數 -h 表示使用「Human-readable」的輸出,也就是在檔案系統大小使用 GB、MB 等易讀的格式。

        上面的命令輸出的第一個字段(Filesystem)及最后一個字段(Mounted on)分別是檔案系統及其掛入點。我們可以看到 /dev/sda1 這個分割區被掛在根目錄下。

        接下來的四個字段 Size、Used、Avail、及 Use% 分別是該分割區的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,當硬盤容量已滿時,您可能會看到已使用的百分比超過 100%,因為 FreeBSD 會留一些空間給 root,讓 root 在檔案系統滿時,還是可以寫東西到該檔案系統中,以進行管理。

        du:查詢文件或文件夾的磁盤使用空間

        如果當前目錄下文件和文件夾很多,使用不帶參數du的命令,可以循環列出所有文件和文件夾所使用的空間。這對查看究竟是那個地方過大是不利的,所以得指定深入目錄的層數,參數:--max-depth=,這是個極為有用的參數!如下,注意使用“*”,可以得到文件的使用空間大小.

        提醒:一向命令比linux復雜的FreeBSD,它的du命令指定深入目錄的層數卻是比linux簡化,為 -d。

     

    以下是代碼片段:

    [root@bsso yayu]# du -h --max-depth=1 work/testing
    27M     work/testing/logs
    35M     work/testing

    [root@bsso yayu]# du -h --max-depth=1 work/testing/*
    8.0K    work/testing/func.php
    27M     work/testing/logs
    8.1M    work/testing/nohup.out
    8.0K    work/testing/testing_c.php
    12K     work/testing/testing_func_reg.php
    8.0K    work/testing/testing_get.php
    8.0K    work/testing/testing_g.php
    8.0K    work/testing/var.php

    [root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
    27M     work/testing/logs/

    [root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
    24K     work/testing/logs/errdate.log_show.log
    8.0K    work/testing/logs/pertime_show.log
    27M     work/testing/logs/show.log

     

        值得注意的是,看見一個針對du和df命令異同的文章:《du df 差異導致文件系統誤報解決》。

        du 統計文件大小相加 
        df  統計數據塊使用情況

        如果有一個進程在打開一個大文件的時候,這個大文件直接被rm 或者mv掉,則du會更新統計數值,df不會更新統計數值,還是認為空間沒有釋放。直到這個打開大文件的進程被Kill掉。

        如此一來在定期刪除 /var/spool/clientmqueue下面的文件時,如果沒有殺掉其進程,那么空間一直沒有釋放。

        使用下面的命令殺掉進程之后,系統恢復。
        fuser -u /var/spool/clientmqueue

    http://www.yayu.org/look.php?id=162


     

    查看linux文件目錄的大小和文件夾包含的文件數

        統計總數大小

        du -sh xmldb/

        du -sm * | sort -n //統計當前目錄大小 并安大小 排序

        du -sk * | sort -n

        du -sk * | grep guojf //看一個人的大小

        du -m | cut -d "/" -f 2 //看第二個/ 字符前的文字

        查看此文件夾有多少文件 /*/*/* 有多少文件

        du xmldb/

        du xmldb/*/*/* |wc -l

        40752

        解釋:

        wc [-lmw]

        參數說明:

        -l :多少行

        -m:多少字符

        -w:多少字

     

    http://linux.chinaitlab.com/command/734706.html


    Linux:ls以K、M、G為單位查看文件大小

    #man ls

    ……

    -h, --human-readable

                    print sizes in human readable format (e.g., 1K 234M 2G)

    ……

    # ls

    cuss.war    nohup.out

    # ls -l

    total 30372

    -rw-r--r--    1 root root 31051909 May 24 10:07 cuss.war

    -rw-------    1 root root          0 Mar 20 13:52 nohup.out

    # ls -lh

    total 30M

    -rw-r--r--    1 root root 30M May 24 10:07 cuss.war

    -rw-------    1 root root     0 Mar 20 13:52 nohup.out

    # ll -h

    total 30M

    -rw-r--r--    1 root root 30M May 24 10:07 cuss.war

    -rw-------    1 root root     0 Mar 20 13:52 nohup.out

    posted @ 2013-08-21 09:55 小秦 閱讀(371) | 評論 (0)編輯 收藏

    解決Java/MySQL性能問題的思路(轉)

    碰到問題先別急,按下面的思路去套,先一步步地定位問題、細化問題。

    千萬別在論壇、群里問,我的機器好慢怎么回事?我的機器內存泄露了怎么回事?
    這類大而空的問題一點意義都沒有,其實誰都不知道。你要做的是用下面的思路、方法、工具去定位它

    ------------------------------
    解決問題思路

    Java程序問題(運行慢)
    先通過 top 查看整個CPU資源使用情況;
    通過top -Hp pid查看java進程的每一個線程占用CPU的情況;
    如果有一個線程占用CPU過高,有兩種可能:
    沒有內存了,Java垃圾回收線程不停地運行嘗試回收內存,但是每次無法收回,確認:
    jstat -gcutil pid 1s 觀察10多秒鐘就能發現了,看是不是內存使用率接近100%了
    類似于死循環(hash沖突攻擊),就是一個線程一直占用一個核的所有CPU資源(其實一個線程總是暫用一個核超過50%的資源都是不太正常的),解決:
    用我課堂的checkPerf腳本,定位這個線程具體執行的任務(能具體到某一行),對應看代碼解決。

    如果有很多線程,每個線程占用的CPU都不多,那基本是正常的。

    如果死鎖:
    jstack -l pid 多執行幾次,統計一下stack中總是在等待哪些鎖,可以對鎖id進行排序統計(sort uniq grep)

    上面列出來的都是明顯的瓶頸,最可怕的是哪里都沒有明顯的瓶頸,哪里都要偷一點點資源走,這是可以試試JProfiler這樣更專業一點的工具,同時要配合自己對業務的了​解來解決。

    Java內存的問題,如果有內存泄露(就是執行完fgc/old gc后不能回收的內存不斷地增加):
    快速解決:jmap -histo:live pid 來統計所有對象的個數(String/char/Integer/HashEntry 這樣的對象很多很正常,主要是盯著你們公司的包名下的那些對象)
    每隔一分鐘執行一次上面的命令,執行5次以上,看看你們公司報名下的對象數量哪個在一直增加,那基本上就是這個對象引起了泄露;
    用課堂上的工具HouseMD來動態監控創建這個對象的地方(一般來說很多時候創建了這些對象把他們丟到一個HashMap然后就不管了),分析一下有沒有釋放!
    上面的方法實在沒法定位就用: jmap -dump 導出整個內存(耗時間,需要很大的內存的機器才能對這個導出文件進行分析,會將JVM鎖住一段時間)
    在Eclipse的插件EMA中打開這個文件(2G的物理文件需要4G以上的內存,5G以上的需要將近20G的內存來分析了)
    盯著你們公司報名的那些對象,看看引用關系,誰拿著這些對象沒釋放(是否是必要的)

    MySQL 數據庫的性能問題
    大部分情況下是磁盤IO的問題(索引沒建好、查詢太復雜);
    索引問題的話分析慢查詢日志,explain 他們挨個解決。

    偶爾也有數據庫CPU不夠的情況,如果并發高CPU不夠很正常,如果并發不高,那很可能就是group by/order by/random之類的操作嚴重消耗了數據庫的CPU
    mysql -e "show full processlist" | grep -v Sleep | sort -rnk6 查看那些SQL語句執行的太長
    拿出這個SQL語句分析他們的執行計劃: explain SQL 然后改進;
    分析慢查詢日志,統計top10性能殺手的語句,挨個explain他們,然后改進(具體改進辦法具體分析,這里只談思路)

    總結一下數據庫問題就只有這三招:show full processlist/分析慢查詢日志/explain(然后建好聯合索引)

    posted @ 2013-07-02 08:39 小秦 閱讀(326) | 評論 (0)編輯 收藏

    MYSQL 5.5的編譯安裝全過程

    mysql:http:x//mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.14.tar.gz

    cmake:http://www.cmake.org/cmake/resources/software.html

     

    首先要安裝cmake
    #tar zxf cmake-2.8.5.tar.gz 
    #cd cmake-2.8.5 
    #./bootstrap 
    #make 
    #make install 

     

    依據源碼安裝mysql
    useradd mysql 
    tar zxf mysql-5.5.14.tar.g 
    cd mysql-5.5.14 
    CFLAGS="-O3" CXX=gcc
    CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"
    cmake . -LH|more //CMake下查看MySQL的編譯配置 


    /usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql \
    -DMYSQL_UNIX_ADDR=/opt/mysql/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EXTRA_CHARSETS=all \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DMYSQL_DATADIR=/opt/mysql/data \
    -DMYSQL_TCP_PORT=3306 \


    make; make install
    cd /opt
    chown -R mysql:mysql mysql
    cd /opt/mysql
    chmod 777 data
    ./scripts/mysql_install_db

    ./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/data

    update mysql.user set password=PASSWORD('1234') where User='root';
    flush privileges;

     

    show variables like 'character_set_%'; 字符集查看

    redhat需要裝的庫
    yum -y install patch make gcc gcc-c++ gcc-g77 flex bison file
    yum -y install libtool libtool-libs autoconf kernel-devel
    yum -y install libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel
    yum -y install freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel
    yum -y install glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel
    yum -y install ncurses ncurses-devel curl curl-devel e2fsprogs
    yum -y install e2fsprogs-devel krb5 krb5-devel libidn libidn-devel
    yum -y install openssl openssl-devel vim-minimal nano sendmail
    yum -y install fonts-chinese gettext gettext-devel
    yum -y install ncurses-devel
    yum -y install gmp-devel pspell-devel
    yum -y install unzip
    注意:如果忘記先安裝庫,在cmake的時候報錯了,得先把庫安裝一遍,然后刪除/opt/mysql-5.6.21/CMakeCache.txt重新cmake一遍就行了.


    mysql剛剛裝好root初始密碼是空的,直接回車就行了

    修改授權以便遠程機器能夠訪問
    在安裝mysql的機器上運行:

    1、d:\mysql\bin\>mysql -h localhost -u root //這樣應該可以進入MySQL服務器

    2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //賦予任何主機訪問數據的權限

    3、mysql>FLUSH PRIVILEGES //修改生效

    4、mysql>EXIT //退出MySQL服務器

     

    posted @ 2013-06-27 17:15 小秦 閱讀(240) | 評論 (0)編輯 收藏

    Spring事務控制之Hibernate(轉)

    眾所周知,Spring的事務控制是基于AOP來實現的,一個聲明了事務管理的方法(如某個Service的方法)在執行時會被攔截,攔截時執行的“附加”操作集中在:
    org.springframework.transaction.interceptor.TransactionInterceptor.invoke(MethodInvocation)
    作為一個環繞切面,該方法主要負責在目標方法執行前開始一個事務,在方法執行結束后提交事務。

     

    我們先來深入了解一下事務是如何創建的。從方法createTransactionIfNecessary()上可以看到,創建事務的主要方法是:

    org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(TransactionDefinition)

    作為抽象類的方法,getTransaction()只處理了一些通用性的檢查和設置,實質性的創建事務和開啟事務操作都是通過分別調用抽象方法:

    org.springframework.transaction.support.AbstractPlatformTransactionManager.doGetTransaction()

    org.springframework.transaction.support.AbstractPlatformTransactionManager.doBegin(Object,TransactionDefinition)

    來完成的,也就是說這些關鍵性的工作必須由各具體事務管理器來實現,對于hibernate的事務管理器來說,獲取事務對象的方法如下:

     

    開始事務的方法如下:

     

    以上是關于事務開始部分的代碼,下面我們來看一下事務提交時的代碼:
    同樣的,從方法commitTransactionAfterReturning()我們可以看出執行事務提交的方法主要通過回調
    org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(DefaultTransactionStatus)
    來實現的。

     

    補充:
    關于方法
    org.springframework.transaction.support.TransactionSynchronizationManager.getResource(Object key)
    如該方法的注釋所說,它主要是通過給定的key找到對應的資源,特別之處是這些資源實例是綁定在線程上的,也就是spring保證一個線程上一個key對應一個資源實例,不同的線程上綁定的是不同的資源實例。對應到Hibernate上來說,key是sessionFactory,資源是sessionHolder!
    作者:bluishglc
    轉自:

    http://www.2cto.com/kf/201207/142772.html

    posted @ 2013-06-06 12:57 小秦 閱讀(229) | 評論 (0)編輯 收藏

    僅列出標題
    共11頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 永久免费AV无码网站国产| 日韩国产精品亚洲а∨天堂免| 久久国产福利免费| 亚洲男人的天堂在线va拉文| 美女尿口扒开图片免费| 亚洲高清视频一视频二视频三| 国产成人+综合亚洲+天堂| 免费人成视网站在线观看不卡 | 亚洲黄色在线播放| 6080午夜一级毛片免费看| 亚洲精品私拍国产福利在线| 无码人妻精品中文字幕免费东京热| 亚洲黄色高清视频| 在线观看无码的免费网站| 久久亚洲精品成人无码| 亚洲国产专区一区| 黄色短视频免费看| 亚洲黄色免费在线观看| 在线观看日本免费a∨视频| 亚洲爆乳成av人在线视菜奈实| 免费永久看黄在线观看app| 在线播放免费人成视频网站| 亚洲色欲一区二区三区在线观看| 毛片免费在线观看| 亚洲三级中文字幕| 国产又大又黑又粗免费视频| 国产JIZZ中国JIZZ免费看| 亚洲一区二区三区首页| 男人的好看免费观看在线视频| 免费国产在线精品一区| 国产亚洲综合色就色| 美女被cao免费看在线看网站| 亚洲男同gay片| 国产亚洲精品成人a v小说| 最近的中文字幕大全免费8| 亚洲av无码成人精品国产| 中文字幕一精品亚洲无线一区| 足恋玩丝袜脚视频免费网站| 亚洲av无码专区国产不乱码| 亚洲免费人成在线视频观看| 99久久这里只精品国产免费|