반응형

출처: http://ra2kstar.tistory.com/97

http://develop.sunshiny.co.kr/385

 

 

## 각각의 캐릭터 셋을 변경 - 이 변경 방법은 mysql 데몬이 재실행 될경우에 초기화 됨.
mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> ALTER DATABASE DB명 DEFAULT CHARACTER SET utf8;
commit;

 

MySQL 기본 패키지는 character set 이 latin1로 설정되어 있다. 따라서 서버에 따라서 세팅을 바꿔줘야 할 필요가 있다. 


나같은 경우에는 UTF-8로 통일하였다. 


우선 현재 mysql의 설정값을 확인해 보자 

 

mysql> show variables like 'c%';

+--------------------------+----------------------------+

| Variable_name         |    | Value                      |

+--------------------------+----------------------------+

| character_set_client      | latin1                     |

| character_set_connection | latin1                     |

| character_set_database   | latin1                     |

| character_set_filesystem | binary                     |

| character_set_results    | latin1                     |

| character_set_server     | latin1                     |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

| collation_connection     | latin1_swedish_ci          |

| collation_database       | latin1_swedish_ci          |

| collation_server         | latin1_swedish_ci          |

| completion_type          | 0                          |

| concurrent_insert        | 1                          |

| connect_timeout          | 10                         |

+--------------------------+----------------------------+

14 rows in set (0.02 sec)


역시 latin1으로 되어있다. 


명령어를 통해서도 mysql을 사용할때 변경 할 수 있지만, 이렇게 되면 데몬이 재실행 될때마다 다시 latin1으로 돌아간다. 따라서 고정적으로 바꿔주자. 



  기본 케릭터 셋들을 원하는 값으로 변경 ( UTF-8 로 변경하였다 ) 


$ vi /etc/my.cnf


[mysql]

 

default-character-set = utf8


[mysqld]

character-set-client-handshake=FALSE

init_connect="SET collation_connection = utf8_general_ci"

init_connect="SET NAMES utf8"

default-character-set = utf8

character-set-server = utf8

collation-server = utf8_general_ci


datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0


[client]

default-character-set = utf8


[mysqldump]

default-character-set = utf8


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid



그리고 재시작 
$ service mysqld restart 
Stopping MySQL: [ OK ] 
Starting MySQL: [ OK ] 

이제 최종적으로 status를 통해 서버와 mysql의 인코딩이 통일 되었는지 확인해보자 .

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.1.61, for redhat-linux-gnu (x86_64) using readline 5.1

Connection id:          8
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.1.61 Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 27 min 16 sec

Threads: 1  Questions: 52  Slow queries: 0  Opens: 23  Flush tables: 1  Open tables: 11  Queries per second avg: 0.31
--------------

mysql> show variables like 'c%' ;



반응형
반응형

출처: http://1004lucifer.blogspot.kr/2015/03/jsp-jsp-web-linux-tail-f-log.html

 

Web 에서 Linux/Unix 의 'tail -f logfile' 과 같이 보려고 인터넷을 찾아보다 마음에 드는게 없어서 직접 만들게 되었다.

Server 에서 tail 명령어를 사용할 때 grep 을 많이 사용해서 해당 기능도 추가했다.


모습은 다음과 같다.



사용방법
1. tail -f {} 부분에 실시간으로 확인 할 로그파일을 선택
2. grep {} 부분에 문자열 입력 시 해당 문자열이 매칭되는 경우에만 출력
3. grep -v {} 부분에 문자열 입력 시 해당 문자열이 매칭되는 경우에는 출력 제외
(grep 에 넣을 문자열은 정규표현식 지원된다.)




Source
https://github.com/1004lucifer/JSP_tail

 

 

tail.jsp

 

반응형
반응형

출처: http://snoopy81.tistory.com/377

 

※ Unix의 루트 디렉토리 아래에 있는 몇가지 특수 디렉토리

   1. /usr : 시스템 사용시 고정된 공유파일을 포함

   2. /bin : 명령어를 실행할 수 있는 파일을 가진 디렉토리

   3. /dev : 프린터, 모니터 등 입출력 장치파일들이 있는 디렉토리

   4. /etc : 시스템에서 사용되는 관리파일을 가짐

   5. /tmp : 임시파일을 만들기 위해 사용되는 파일

   6. /sbin : 관리자만이 쓰는 파일

 



♣ 메타문자 사용

  ▶ * : 0개 이상의 문자

  ▶ ? : 1개의 문자

  ▶ [ ] : 괄호 안의 어떤 한 문자 혹은 괄호 안의 범위의 문자

  ▶ [! ] : 괄호 안의 문자들과 대응하지 않는 것

  ▶ \* : 메티문자를 일반문자로 바꿀 경우 사용(\)



 

♣ Unix의 간단한 명령어

  ▶ ; : 한줄에 두 개 이상의 명령어 실행 (ex. $ cal;date)

  ▶ | : 동시수행 (ex. ls | more)



 

■■ a ■■

adduser : 루트로 로그인해서 이용자를 추가

   ● $ adduser -p wef21 -g aaa -s '/bin/bash' -d '/home/test01' user

▶ awk : 파일의 선택필드를 자름 (-F패턴 : 구분자를 써줌, 패턴을 생략하면 모든 라인에서 동작)

   ● $ awk -F: '$3>=1000 {print $1,$3}' passwd : passwd파일에서 UID가 1000보다 큰 유저명과 UID 출력

 

     $ ls -l | awk '{print $9,$5}' : 현재 디렉토리에서 파일명과 파일사이즈를 출력

 


■■ c ■■

cat : 파일의 내용을 출력

   ● $ cat -n test.log : test.log파일을 행 번호를 붙여서 보여줌

▶ chmod : 파일 및 디렉토리 사용권환 변경

   ● $ chmod 755 test : test 파일(디렉토리)의 권한을 rwxr-xr-x로 변경

▶ cp : 파일 복사

   ● $ cp ./test/text.txt . : test/text.txt파일을 현재 디렉토리로 복사

     $ cp -r test test01 : test디렉토리에 있는 모든 파일(서브 디렉토리의 모든 파일포함)을 test01로 복사


■■ d ■■

date : 현재 날짜를 보여줌

   ● $ date


■■ f ■■

▶ file : 파일 유형 출력

   ● $ file aaa.tar : aaa.tar: POSIX tar archive (GNU)

find : 주어진 파일명과 동일한 파일을 찾고, 그 경로를 출력

  ◈type : d-디렉토리, f-일반파일

 

  ◈user : 지정한 사용자 ID가 찾은 사용자 ID와 일치되면 출력

  ◈size : 파일 크기가 일치되면 출력(1블록 = 512byte)

    +2 : 파일의 크기가 1024byte 이상인 파일을 찾음

    -2 : 파일의 크기가 1024byte 미만인 파일을 찾음

  ◈mtime : 지정한 시간에 변경된 파일을 찾음

    +n : 지금으로부터 n일 이전에 수정된 파일

    -n : 지금시각으로부터 최근 n일 동안 수정된 파일

  ◈exec : 명령어를 실행, 인수는 {}로 표시, 명령어 끝은 항상 \;로 끝남


 

   ● $ find / -name test01 : 최상위 디렉토리부터 검색하여 파일명이 test01인 파일을 출력

     $ find . -name test01 : 현재 디렉토리부터 검색하여 파일명이 test01인 파일을 출력

     $ find ~ -name test01 : 홈 디렉토리부터 검색하여 파일명이 test01인 파일을 출력

     $ find . -mtime -10 exec rm {} \; : 10일 이내에 수정한 파일을 검색하여 삭제

 

     $ find . -type f -a -mtime -1 -exec cp {} ./back \; : 현재 디렉토리로부터 일반파일이고 최근 하루동안 수정한 파일을 back디렉토리로 복사

 

     $ find . -type d -exec chmod 777 {} \; : 현재 디렉토리로부터 파일형식이 디렉토리(폴더)인 파일의 권한을 777(rxwrxwrxw)로 변경

 

 

finger : who 명령어를 보충하는 명령어, 특정 사용자에 대한 정보 출력

   ● $ finger
▶ free : 메모리의 사용상태와 남은 상태, 버퍼의 상태등을 보여줌
   ● $ free


■■ g ■■

▶ grep : 파일 중에서 어떤한 패턴을 검색 (grep 문장 파일명)

   ● $ grep -n single test.txt : test.txt파일에서 "single"과 매치되는 라인을 출력

     $ grep -v single test.txt : test.txt파일에서 "single"과 매치되지 않는 라인을 출력

     $ grep -n single /home -R : home 폴더 및 하위에 있는 모든 파일에서 "single"과 매치되는 라인을 출력

     $ grep -l single /etc : etc 폴더 및 하위에 있는 모든 파일에서 "single"과 매치되는 라인이 있는 파일명 출력

     $ grep -i single test.txt : test.txt파일에서 대소문자 구분없이 "single"과 매치되는 라인을 출력

 

     $ grep ^soon passwd : passwd파일에서 soon으로 시작하는 라인을 찾음

 

     $ grep bash$ passwd : passwd파일에서 bash로 끝나는 라인을 찾음

 

     $ grep -n 1-5-1[0-9] passwd : passwd파일에서 (1-5-10 ~ 1-5-19)의 문자열이 들어가는 라인을 라인번호와 같이 출력

 

 

     $ ls -l | grep ^- : 현재폴더에서 일반파일 찾음
▶ gzip : 파일 압축/해제 (파일명.gz으로 압축됨, 디렉토리파일은 압축이 안됨)
   ● $ gzip aaa.tar : aaa.tar파일을 aaa.tar.gz으로 압축
     $ gzip -d aaa.tar.gz : aaa.tar.gz압축 파일의 압축해제

 

 

■■ h ■■

▶ help : help 명령어

   $ mkdir --help : mkdir명령어에 대한 help를 보여줌

 


■■ i ■■

▶ id : 사용자의 로그인명, ID, 그룹 ID 등을 출력

   ● $ id


■■ k ■■

▶ kill : 실행되고 있는 프로세서 ID를 입력해서 프로세서를 종료

   ● $ kill -9 2341 : 2341의 pid를 가진 프로세서를 강제 kill


■■ l ■■

▶ ln : 파일 연결 (-s는 Symbolic Link, -s옵션이 없으면 Hard Link)

   ● $ ln -s test test101 : test(원본)를 test101(공유)와 심볼릭(-s) 링크

 

     $ ln -s back bbbb

 

         drwxr-xr-x+ 1 snoopy None     0 Jan  9 17:08 back

         lrwxrwxrwx  1 snoopy None     4 Jan  9 17:10 bbbb -> back

 

 

▶ ls : 디렉토리와 파일의 정보를 출력

   ● $ ls -al : 모든 파일에 대한 파일의 정보를 출력
     $ ls -t : 최종 수정된 시간별로 정렬하여 출력

     $ ls -F : 파일의 특성을 출력


■■ m ■■

▶ mkdir : 디렉토리를 만듦

   ● $ mkdir -p ./test/test01 : 부모디렉토리까지 한번에 만듦

▶ mv : 파일 이름 변경 및 이동

   ● $ mv test1 test2 : test1의 이름을 test2로 변경

     $ mv -i : 이미 존재하는 파일을 덮어 쓸 것인지를 물어봄


■■ n ■■

▶ nohup : 로그아웃 후에도 백그라운드 명령을 계속 실행(결과는 nohup.out에 저장)

   ● $ nohup ls -l : ls -l 명령어를 백그라운드로 실행 (ls -l의 결과는 nohup.out에 저장되어 있음)


■■ p ■■

▶ ps : 프로세서에 관한 리스트를 보여

   ● $ ps -e : 현재 시스템 내에 실행 중인 프로세스에 관련된 정보를 출력

     $ ps -f : 프로세서에 대한 모든 정보를 출력

▶ pwd : (print working directory) 현재 작업 directory를 출력

   ● $ pwd

■■ r ■■

▶ rm : (remove) 파일을 제거(한번 삭제된 파일은 다시 복구 할 수 없음)

   ● $ rm -f test1 : 권한이 없는 파일이라도 강제로 지움

     $ rm -r test1 : 서브디렉토리를 포함한 모든 내용을 지움

     $ rm -i test1 : 각 파일에 대하여 지울 것인지 물어 봄

▶ rmdir : (remove directory) 디렉토리를 삭제(디렉토리에 파일이 존재할 경우 삭제할 수 없음) => rm -rf 사용

   ● $ rmdir test1 : 해당 디렉토리를 삭제


■■ s ■■

▶ su : 사용중에 다른 ID로 재접속하는 명령어

   ● $ su user01 : user01로 접속 (사용자ID 없이 su만 입력하면 root로 접속)


■■ t ■■

▶ tail : 파일의 마지막 n개의 내용을 보고자 할 때 사용

   ● $ tail -f test.log : test.log파일의 최근 변경된 내용을 출력

▶ tar : 파일 묶음/해제

   ● $ tar -cvf back.tar . : 현재 폴더의 모든 파일을 back.tar로 묶음

     $ tar -cvf home.tar /home : home 디렉토리를 home.tar로 묶음
     $ tar -xvf back.tar : back.tar파일의 묶음을 해제

 

     $ tar -tvf aaa.tar : aaa.tar파일의 묶음을 해제하지 않고 안의 내용을 출력

▶ touch : 파일의 최종 시간을 변경/파일 크기가 0인 빈파일 생성
   ● $ touch test : test파일의 최종 시간을 현재시간으로 변경
     $ touch aaa : 사이즈가 0인 aaa파일(일반파일)을 생성

 


■■ w ■■

▶ wc : 파일내의 정보 출력 / 명령문의 개수 출력

   ● $ wc -l test.txt : test.txt파일내의 라인수 출력

 

     $ wc -w test.txt : test.txt파일내의 단어수 출력

 

     $ wc -c test.txt : test.txt파일내의 문자수 출력

 

 

▶ who : 시스템에 로그인된 사용자를 보여줌

   ● $ who

▶ whoami : 사용자의 ID를 출력

   ● $ whoami


 

■■ 기타 ■■

▶ > : 출력 재지정(저장)

   ● $ ls -l > t.file : ls -l의 결과를 t.file로 저장

     $ ls -l > /dev/null : ls -l의 결과를 버림

▶ < : 입력 재지정(입력)

   ● $ cat < test/test.txt : test/test.txt파일로 부터 입력받아 cat 실행



■■■■ 연습문제 ■■■■
1. 홈 디렉토리 이하에 생성된 모든 디렉토리의 개수를 출력하시오.
  ==>> $ find ~ -type d | wc -l

2. 홈 디렉토리 이하에 있는 디렉토리의 권한을 700로 변경하시오
  ==>> $ find ~ -type d -exec chmod 700 {} \;

3. etc 밑의 일반파일에서 unix라는 문자열이 포함된 파일명을 출력하시오.
  ==>> $ find /etc -type f -exec grep -l 'unix' {} \;

 

반응형

'프로젝트 관련 조사 > 시스템 구축' 카테고리의 다른 글

[OSSEC] JSON output으로 syslog 던지기  (0) 2015.12.09
[OSSEC] OSSEC DB 구조  (0) 2015.12.04
이메일 파싱  (0) 2015.11.27
OSSEC intall  (0) 2015.11.25
vmware 네트워크 설정 파일 위치  (0) 2015.11.19
반응형

mysql> SELECT something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 7;

 

 

 

 

반응형

+ Recent posts