/etc/resolv.conf 파일을 수정 한다.



# Generated by NetworkManager
nameserver 168.126.63.1
nameserver 168.126.63.2






사실.. 이건 뭐.. 다른 방법도 있는데.. 디렉터리를 자주 잊어버려.. 서..

혼자 확인하고자...

VNCをサービスとして動作させる(デスクトップセッション)



CentOSのVNCサービスの起動には三種類があります。
違いの説明は別ページに掲載します。

VNCを動作させる(解説)

VNCをサービスとして起動させる流れは、以下のようになります。

1.sysconfigにvncserver接続のパラメータを記述する
2.vncpasswordを設定する
3.vncserverを起動する
4.デフォルトのウィンドウマネージャがtwmなので修正する
5.vncserverを再起動する
6.ファイアウォールを解放する
7.別の端末からVNCで接続する

1./etc/sysconfig/vncserversを図のように編集する

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd"

VNCSERVERSの値に、ディスプレイ番号1とrootのデスクトップセッションへ接続するように記述します。
VNCSERVERSARGSにディスプレイ番号1のサーバの設定情報を入力しています。
デフォルトからlocalhostなども削除してあります。




2.vncpasswordを設定する

コマンドから

#vncpasswd

と入力し、rootデスクトップセッションへ接続するためのVNC接続用パスワードを設定します。
~/.vnc/passwdファイルが生成されます。
VNCサービスはパスワードが設定されていないと起動しません。

なお、/etc/sysconfig/vncserversファイルのVNCSERVERARGSに「-SecurityTypes none」が設定されている場合は接続時にパスワードが問われなくなります。
ただしVNCの起動に相変わらずパスワードファイルは必要です。vncpasswdで生成しておく必要があります。



3.vncserverを起動する


コマンドからvncserverを起動し、自動起動に設定します。

#services vncserver start
#chkconfig vncserver on

これにより、~/.vncの下にデスクトップセッション用のVNCの設定情報が書き込まれます。



4.デフォルトのウィンドウマネージャがtwmなので修正する

~/.vnc/xstartupファイルを編集します。
最終二行をコメントアウトし、gnome-sessionを追記します。


もちろんtwmでなにも困らない人は、編集する必要がありませんとも。

5.設定を再読み込みさせるため、vncserver を再起動する

vncserverを再起動します。
#services vncserver restart


6.ファイアウォールを解放する

コマンドがGUIで実施します。GUからの方が簡単でしょう。
[システム]-[管理]-[セキュリティレベルとファイアウォールの設定]を起動します。

[その他のポート]に5901番を追加します。


これでOKです。
なぜ5901かと言えば、手順1で指定したディスプレイ番号にVNCのデフォルトポート5900を加えた数字をポート番号として利用するという暗黙の了解があるからです。

ちなみにコマンドから解放する場合はiptablesファイルを編集します。
#vi /etc/sysconfig/iptables

そして一番下のREJECT行の上に、5900番ポートを許可します。

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 5901 -j ACCEPT


나는 이렇게 바꿔서 설정..

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901  -j ACCEPT




画像では5900になってますが、5901を記述します。
保存した後、iptablesを再起動します。

#service iptables restart

※iptableコマンドで5900番を許可すれば良さそうなものですが、実はうまく行きません。
iptable -Lを実行すればわかりますが、よくあるように
#iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
と入力しても、実際に記述されるのはINPUTテーブルの「RH-Firewall-1-INPUT」の次に追加されます。
つまり評価されません。
ならばと
#iptables -A RH-Firewall-1-INPUT -p tcp --dport 5901 -j ACCEPT
と記述しても、今度は「REJECT」行の次に追加されるので、やはり評価されません。
ファイルを直接記述しましょう。

7.別の端末からVNCで5901番ポートへ接続する

VNCパスワードの入力後、rootのデスクトップが表示されます。



なお、この接続の場合はログオフしてはいけません。
デスクトップセッションのGNOMEが終了してしまい、VNCServerを再起動しないと次のVNC接続ができなくなります。
ここではウィンドウを閉じるのが正しい操作です。












출처 : http://hp.vector.co.jp/authors/VA022911/tec/centos/vnc1.htm
















리눅스 환경의 JAVA에서 MySQL 연결을 위한 드라이버 설정


1. 드라이버 다운로드

자신이 사용하는 MySQL 버전에 맞게 다운로드

- MySQL 5.0 하위 버전

- MySQL 5.1 이상(현재 최신버전)

- 다른 버전 선택

위 링크로 이동하면, 'mysql-connector-java-x.x.x.tar.gz'(또는 *.zip) 파일을 다운로드 받을 수 있다. 단, 오라클 계정으로 로그인을 해야한다.
(오라클 계정 하나면 오라클, 자바, MySQL 관련 자료를 쉽게 얻을 수 있으니 계정이 없는 사람은 이번 기회에 만들어 두는게 좋을 듯)

2. 드라이버 설치(압축풀기)

설치라고 해봐야 별거 없다. tar 명령으로 압축풀어주면 끝
(jdk가 설치 되어있고, JAVA_HOME 환경변수 설정이 완료된 상태로 가정)

<ex>
# tar zxvf mysql-connector-java-5.1.26.tar.gz
# cd mysql-connector-java-5.1.26
# mv mysql-connector-java-5.1.26-bin.jar $JAVA_HOME/lib/

3. 환경변수 추가(classpath)

# vi /etc/profile
...
export CLASSPATH=.:$JAVA_HOME/lib/mysql-connector-java-5.1.26-bin.jar
(위와 같이 입력 후 저장)

# sh /etc/profile
(프로파일 변경 내용이 적용 되도록 해줌)

4. 연동확인

- 서버 호스트 : MySQL 서버의 아이피
- 포트 : MySQL 서버에 설정된 포트번호
- DB명 : 접속 할 DB명
- mysql 계정 : mysql DB의 user 테이블에 설정된 계정
- 패스워드 : mysql 계정에 설정된 패스워드

각자 환경 및 설정에 맞게 입력 후 java 파일을 컴파일 하여 실행했을 때 에러 또는 예외 메시지가 나오지 않았다면, 연동 성공
(위 소스를 컴파일 했을 때 발생되는 경고는 'conn' 객체를 사용하는 곳이 없어서 나는 경고 이므로 무시해도됨)

* 'Class.forName("com.mysql.jdbc.Driver");'
이 부분은 'org.gjt.mm.mysql.Driver'으로 넣어줘도 상관 없음
하지만 'com.mysql.jdbc.Driver' 로 넣어주는 것을 권장.
'org.gjt.mm.mysql.Driver'는 예전 버전에서 사용하던 방식이고, 지금은 'com.mysql.jdbc.Driver' 로 많이 사용함. (기능적인 차이는 없음)


5. Exception 해결방법

- 예외 1
Exception in thread "main" java.lang.NoClassDefFoundError: java.util.concurrent.ConcurrentHashMap
   at com.mysql.jdbc.NonRegisteringDriver.<clinit>(NonRegisteringDriver.java:83)
   at java.lang.Class.initializeClass(libgcj.so.7rh)
   at java.lang.Class.initializeClass(libgcj.so.7rh)
   at java.lang.Class.forName(libgcj.so.7rh)
   at java.lang.Class.forName(libgcj.so.7rh)
   at CheckMySQL.main(CheckMySQL.java:14)

(MySQL 버전보다 높은 드라이버를 사용할 때 발생)

- 예외 2
Exception in thread "main" java.lang.NoClassDefFoundError: CheckMySQL.class
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: CheckMySQL.class not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:/usr/local/jdk1.6.0_45/lib/mysql-connector-java-3.1.0-alpha-bin.jar,file:/usr/local/tomcat-7.0.29/lib/servlet-api.jar,file:/home/tomcat/web/WEB-INF/classes/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.7rh)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)

(잘못된 방법으로 클래스 파일을 실행했을 때 발생, 실행시 class 확장자를 넣어줬을 경우)

* 컴파일은?
# javac CheckMySQL.java

* 실행은?
#java CheckMySQL

- 예외 3
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./,file:/usr/local/tomcat-7.0.29/lib/servlet-api.jar,file:/home/tomcat/web/WEB-INF/classes/], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.7rh)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.Class.forName(libgcj.so.7rh)
   at java.lang.Class.forName(libgcj.so.7rh)
   at CheckMySQL.main(CheckMySQL.java:14)

(드라이버를 찾을 수 없으므로, 환경변수 설정 적용이 되지 않은 경우이거나 적용은 되었으나 jar파일이 해당 위치에 없어서 불러오지 못했을 수도 있다. 처음부터 천천히 다시 해보는 것이 좋음. 여기서 중요한 부분은 '/etc/profile'에 classpath 를 잡아주고  '/etc/profile'을 다시 불러오게 해줘야 한다는 점 - 다시 불러온다는 의미가 이해하기 어렵다면 리눅스 로그아웃 후 다시 로그인 하면됨)

* 위 예외 3가지에 대한 해결 방법이 각자 환경에 따라 달라질 수 있으므로 참고만 할 것!









출처 : http://jino8752.blogspot.kr/2013/09/java-mysql.html


레퍼런스 :

1. http://confluence.goldpitcher.co.kr/display/GPJIRA/Configuring+database+connection+results+in+Error%3A+Host+%27xxxxxxx%27+is+not+allowed+to+connect+to+this+MySQL+server
2. 
http://noon.tistory.com/1477
3. 
http://www.mkyong.com/jdbc/how-to-connect-to-mysql-with-jdbc-driver-java/
4. http://ra2kstar.tistory.com/120#recentTrackback










Tcpreplay is a suite of command-line utilities that are used to "replay" previously captured packet dumps in a real network. In order to use tcpreplay, you first need to capture live network traffic using packet capture tools such as tcpdump, rewrite TCP/IP packet headers of the captured packets appropriately (usually MAC and IP addresses), and then re-inject the packets on to any arbitrary network under consideration.

tcpreplay is useful when you are testing network devices and middleware, such as routers, switches, firewalls and intrusion detection/prevention systems, because it allows you to test the devices under a controlled environment using reproducible scenarios.

If you would like to install tcpreplay on Linux, you can refer to the following distro-specific instructions.

To install tcpreplay on Ubuntu or Debian, run the following:

$ sudo apt-get install tcpreplay

To install tcpreplay on Fedora, simply run:
$ sudo yum install tcpreplay

To install tcpreplay on CentOS or RHEL 5 or earlier, firstset up RPMforge repository on your system. Then, installtcpreplay using yum.

$ sudo yum install tcpreplay

To install tcpreplay on CentOS or RHEL 6 or higher, build tcpreplay from the source, and install it manually as follows.

$ sudo yum groupinstall "Development Tools"
$ sudo yum install libpcap-devel
$ wget http://downloads.sourceforge.net/project/tcpreplay/tcpreplay/3.4.4/tcpreplay-3.4.4.tar.gz
$ tar xvfvz tcpreplay-3.4.4.tar.gz
$ cd tcpreplay-3.4.4
$ ./configure --enable-dynamic-link
$ make
$ sudo make install







출처 : http://xmodulo.com/how-to-install-tcpreplay-on-linux.html










.bash_profile과 .bashrc의 차이점

25 Nov 2013

bash를 쓰다보면 환경변수를 지정하면 편할 때가 종종 있는데 .bash_profile에 써야할 지.bashrc 파일에 써야할 지 자주 헷갈립니다.. 저와 비슷한 경험을 하실 분들을 위해서 여기 간단히 정리해 둡니다. .bash_profile은 처음 로그인할 때 실행되고 그 이후에는 인터렉티브 bash를 실행하면 .bashrc가 실행됩니다.

근데 이 로그인이라는 표현도 헷갈립니다. 이는 예를 들어 보는 것이 편합니다.

  • console에 로그인 하거나
  • ssh를 통해서 로그인하거나
  • Mac OSX이나 Linux에서 터미널 프로그램을 실행하거나 탭을 늘이거나

이들 각각이 모두 로그인으로 간주 됩니다. 그래픽 세션 로그인과 좀 의미가 다릅니다.

그 이외의 경우란 아래와 같습니다. - screen이나 tmux 에서 새로운 윈도우를 실행

여기 Mac에서 각각을 확인하기 위해 실행해 본 내용입니다.

  1. .bash_profile에 echo "bash_profile".bashrc에 echo "bashrc" 라고 각각 마지막 줄에 추가해줍니다.

    • 터미널창이나 탭을 열어 봄

    결과: bash_profile 출력됨 - bash 실행 (인터렉트브)

    결과:bashrc 출력됨 - bash -c "pwd" 실행

    결과: bashrc 실행안됨

  2. .bashrc에만 /usr/local/bin/mysql을 PATH에 추가함

    • 터미널 창을 열고 which mysql

      결과: 못찾음

    • 이 상태에서 bash실행하고 그 안에서 which mysql

      결과: 찾음

    • 내부 bash에서 나와서 bash -c "which mysql"

      결과: 못찾음

    • 내부 bash에서 나오지 않고 bash -c "mysql"

      결과: 찾음

로그인 bash는 .bash_profile만 로드하기 때문에 .bashrc에 적혀 있는 내용도 실행하도록.bash_profile내에 아래와 같은 라인으로 .bashrc내용을 가져오는 것이 편합니다. 사실 많은 배포판에서도 기본 그렇게 하고 있지만 OSX 등 기본적으로 그렇게 되어있지 않는 OS나 배포판을 사용하고 있다면 추가해 주는 것도 좋은 방법입니다.

[[ -r ~/.bashrc ]] && . ~/.bashrc

참고: Stackoverflow difference btw profile and rc and environment











출처 : http://www.ryeonho.com/posts/bash_profile-bashrc-difference.html



감사합니다. 

문제가 되면 삭제 하겠습니다.

좋은 지식 더 널리 공유 하고자 하는것이니 양해 바랍니다.












+ Recent posts