2016의 게시물 표시

리눅스와 윈도 듀얼부트시 타임존 세팅하기(windows and ubuntu dual boot timezone mismatch )

리눅스와 윈도 듀얼부트시 타임존 세팅하기 http://askubuntu.com/questions/169376/clock-time-is-off-on-dual-boot windows rtc time default : Local time ubuntu rtc time default (  >= ubuntu 15.04 ) : UTC time 나는 Local time으로 세팅하겠다.( 그러므로 ubuntu 쪽을 변경한다 ) sudo timedatectl set-local-rtc 1

multiline cat " << EOF"

Examples of cat <<EOF syntax usage in Bash: 1. Assign multi-line string to a shell variable $ sql = $ ( cat << EOF SELECT foo , bar FROM db WHERE foo = 'baz' EOF ) The $sql variable now holds the new-line characters too. You can verify with echo -e "$sql" . 2. Pass multi-line string to a file in Bash $ cat << EOF > print . sh #!/bin/bash echo \$PWD echo $PWD EOF The print.sh file now contains: #!/bin/bash echo $PWD echo / home / user 3. Pass multi-line string to a pipe in Bash $ cat << EOF | grep 'b' | tee b . txt foo bar baz EOF

lubuntu ( lxde ) monitor rotate

xrandr --output "$internal" --rotate "$xrandr_rotation"    display name : System Settings > Display   example) xrandr --output LVDS1 --rotate left xrandr --output LVDS1 --rotate right xrandr --output LVDS1 --rotate normal xrandr --output LVDS1 --rotate inverted     xrandr --output eDP-1 --rotate right xrandr --output HDMI-1 --rotate right

ubuntu routing (two network card)

ubuntu routing (two network card) 기본 게이트웨이를 wifi 쪽으로 향하고자 할 때 ( 이더넷은 내부망으로, wifi는 외부망으로 ) network 1 : eth0 192.168.0.117 gateway 192.168.0.1 network 2 : wlp1s0 192.168.1.2 gateway 192.168.1.1 routing default to network 2 #route del default #route add default gw 192.168.1.1 dev wlp1s0

docker redmine setup

Redmine Docker Setup 1. docker  reference : https://hub.docker.com/r/inspiredgeek/redmine-alpine/ docker run -d -p 3000:3000 inspiredgeek/redmine-alpine:3.3 2. # alpine version apk update && apk add subversion git ca-certificates && update-ca-certificates && apk add openssl git clone https://github.com/ZIMK/scm-creator.git git clone https://github.com/peclik/clipboard_image_paste.git git clone https://github.com/jgraichen/redmine_dashboard.git git clone https://github.com/tckz/redmine-wiki_graphviz_plugin.git apk add graphviz wget https://bitbucket.org/haru_iida/redmine_code_review/downloads/redmine_code_review-0.7.0.zip unzip redmine_code_review-0.7.0.zip bundle install rake redmine:plugins:migrate RAILS_ENV=production 3. config/scm.yml ( for scm creator ) 4. codereview error fix

create GPT disk in linux

sudo apt install gdisk sudo gdisk /dev/sda Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sda. The operation has completed successfully. create partitions with gparted ( GUI ) sudo gparted

vi 에서 함수 찾아가기(ctags)

http://www.joinc.co.kr/w/Site/Development/Env/UsedCtag vi 에서 함수 찾아가기 ctags 를 이용하면, 사용자 정의 함수가 나왔을때, 함수가 정의되어 있는 쏘스파일로 바로 점프할수 있으며, 또한 바로 원래의 쏘스파일로 되돌아올수 있다. 이렇게 함으로써 쏘스분석에 드는 시간을 상당히 줄일수 있다. # ctags -R vi commands Tag Command 설명 Ctrl+] 함수가 정의된 파일로 이동 Ctrl+t 이동하기 전 단계의 위치로 이동 :tselect <function-name> 같은 이름의 function-name이 여러개 일때, 목록을 보여준다. 번호를 이용해서 선택할 수 있다 :tnext 여러개의 함수이름이 존재할 때, 다음 함수를 선택한다. :tprevious 이전 함수를 선택한다. :tfirst 가장 처음에 찾았던 함수를 선택한다. :tlast 가장 마지막 함수를 선택한다.
ubuntu locale setting /etc/default/locale #  File generated by update-locale LANG="ko_KR.UTF-8" LANGUAGE="ko" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELEPHONE="ko_KR.UTF-8" LC_MEASUREMENT="ko_KR.UTF-8" LC_IDENTIFICATION="ko_KR.UTF-8"

ubuntu background changer

cmdline gsettings get org.gnome.desktop.background picture-uri 'file:///home/serrano/Pictures/x.jpg' gsettings set org.gnome.desktop.background picture-uri file:///home/serrano/Pictures/y.jpg variety wallch wally

apache log analysis script ( sed, awk ) 아파치 Access Log 분석 스크립트

아파치 Access Log 분석 스크립트 목표 날짜 시각  URI 횟수 20160116 00  /MainAction.do?ActionName=RefreshSesseion 101 날짜 시각 IP 횟수 20160116 00 10.10.10.10  5 필요 데이터 이해(공백 기준 구분) 아래는 아파치의 기본 access.log 이다. 10.10.10.10 - - [05/Jan/2016:00:00:31 +0900] "GET /MainAction.do?ActionName=RefreshSesseion&fake=9779425681 HTTP/1. 200 13 다음은 AWK를 통하여 잘라내고자 하는 데이터이다.($1: 공백에 의해 구분되는 첫번째 컬럼) $1 IP 10.10.10.10  $4 시각 [ 16/Jan/2016:00 :00:31 $7 URI /MainAction.do?ActionName=RefreshSesseion &fake=9779425681 $9 응답코드 200 $10 응답데이터바이트 중간 목표 포맷 10.10.10.10  16/Jan/2016:00  /MainAction.do?ActionName=RefreshSesseion 200 수행절차 데이터 필터링 불필요한 데이터를 미리 제거한다.여기서는 테스트,모니터링용 주소 제외 사용자 호출 중심으로 필터링한다 여기서는 .do ( 각종 img등 제외) 주소 단순화  세부 파라메터는 제거한다.(.do?action=abc&data=b ==> .do?action=abc ) 데이터 단순화 및 저장 IP, 날짜시각, URI, 응답코드 날짜 시각 URI 횟수 저장한 파일 읽기 AWK 수행 배열구분자 지정 각 줄에 대하여 count[날짜시각,주소]++ 출력 연월일 시각 URI 횟수 해설 파이프 및 regexp를 사용한 필터링, awk를 사용한 테이블 구

Apache HTTPD KeepAlive, Timeout

먼저,  KeepAlive  On 으로 세팅합니다.  KeepAlive  는 접속 유지 개념으로, 만약 접속중에 다른 이미지를 호출하면 새로운 연결을 만들지 않고 (새로운 쓰레드나 프로세스를 띄우지 않고) 그냥 있는 연결로 이미지를 보여주겠다는 개념인데요  이게 중요한 이유가, <img src=xxx> 인 경우 그때마다 연결을 새로 만들거든요..  KeepAlive  Off 인경우 말입니다.  그런데.. KeepAlive  는 양날의 검인것이,  KeepAlive Timeout 에 적혀 있는 시간이 지날때까지  접속이 안끊깁니다. 즉, 계속 연결이 살아 있으니, 동시접속 한계에 부딪치게 되죠.  따라서  KeepAlive  On  KeepAlive Timeout 2  (2초간 접속을 끊지 않고 기다린다..)  이렇게 설정하는것이 최상입니다. 경우에 따라서는  KeepAlive Timeout 1 이렇게 1초만 설정하기도 하죠.  1초~2초 사이를 줍니다.  1초, 2초의 기준은 사이트를 직접 운영하면서, 스코아 보드를 보면서 셋팅해야 되요. 이정도가 적당하겠구나.. 하구요  그다음 중요한 설정이  Timeout 30  이부분입니다. 아파치 디펄트는 Timeout 300 으로 되어 있는데요  "아무 신호가 들어오지 않더라도 접속을 유지시켜 주는 시간" 을 말합니다.  대형사이트의 경우 Timeout 10 이런식으로 아주 작게 잡습니다.  dos 공격을 방지하기 위해서죠. 

JAVA GC ( Hotspot JVM ) 가비지컬렉션

이미지
JAVA GC ( Hotspot JVM ) 가비지컬렉션 (펌) 아래의 글은 Sun(Oracle?) Hotspot JVM을 기반으로 정리한 내용이다. JVM에서 GC는 크게 Minor GC와 Major GC로 나뉜다. Minor GC는 Young Generation영역을 정리하는 GC이고, Major GC는 Old Generation영역을 정리하는 GC이다. 그리고 Major GC는 Full GC로도 불린다. 하지만 일부 CMS Collector를 설명하는 글에서는 Major GC와 Full GC를 구분하기도 하는 것 같다. Major GC와 Full GC의 명확한 구분은 잘 모르겠다.                       Java Heap Memeory 구조 GC의 종류는 아래와 같다.  =========================================================================================== 1. Serial Collector   - 단일 Thread로 GC 작업을 수행   -  "-XX:+UseSerialGC"  옵션 사용하여 활성화 할 수 있다.    - 요즘 H/W환경에서는 사용할 필요가 없는? GC라고 생각된다.   2. Parallel Collector   - 복수의 Thread로 GC작업을 수행한다    -  "-XX:+UseParallelGC"   옵션을 사용하여 Minor GC 에서 parallel collector를 활성화 할 수 있다.   -  "-XX:+UseParallelOldGC"  옵션을 사용하여 Major GC에서 parallel collector를 활성화 할 수 있다.    - 복수의 Thread를 사용하여 GC를 수행하기 때문에 Serial Collector에 비해서 GC가 빨리 수행된다.   - 최대 성능을 내기 위한 GC라고 생각된다. 3. CMS Collector   - Major

Tomcat Web Application 모니터링 툴 – javamelody 설정 방법

Tomcat Web Application 모니터링 툴 – javamelody 설정 방법(펌) Javamelody( https://github.com/javamelody/javamelody/wiki ) 1. Jar 설정 WEB-INF/lib 내 javamedloy.zip내의 javamelody.jar와 jrobin-x.jar를 복사한다. 내 경우는 maven 을 사용하므로, 기존의 pom.xml에 다음과 같이 dependency를 추가하였다. 1 2 3 4 5 < dependency > < groupId >net.bull.javamelody</ groupId > < artifactId >javamelody-core</ artifactId > < version >1.43.0</ version > </ dependency > 2. web.xml 설정 기존에 실행하던 웹 애플리케이션을 모니터링/분석해야 하므로, web.xml의 내용을 편집한다. 보통 web.xml에서는 선언된 순서로 우선순위를 지니므로, 다른 서블릿 선언보다 위쪽에 다음의 설정을 추가로 기록한다. 1 2 3 4 5 6 7 8 9 10 11 < filter > < filter-name >monitoring</ filter-name > < filter-class >net.bull.javamelody.MonitoringFilter</ filter-class > </ filter > < filter-mapping > < filter-name >monitoring</ filter-name > < url-pattern >/*</ url-pattern > </ filt