sed를 이용하면 된다. 


http://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html




예제 1)

코드

$ echo '<google/>' | sed 's|<\([^/]*\)/>|<\1></\1>|'


결과

$ <google></google>



예제 2)


코드

echo "<path>aaaaaaaa/bbbb/ccc</path>" | sed 's|<\path>\(.*\)<\/path>|<\path>'"$TESTBOX_DIR/logs"'</\path>|'



결과

<path>ABC/logs</path>


Posted by '김용환'
,




sed '' 명령어에서 특정 환경 변수를 출력해야 하는 경우가 있다. 이럴 때는 보통 'eval $(..)' 또는 'echo $변수' 와 같은 것을 생각하고 적용해보면 잘 동작이 안된다.

sed 'AB' 안에서 환경변수를 사용하려면 'A''B' 이렇게 나누고, 그 가운데에 "$변수"를 추가하면 환경변수를 사용할 수 있다. 즉 sed 'A'"$변수명"'B' 의 꼴이다. 



sed 'A'"$변수명"'B' 


 sed 's/xxx/'"$PWD"'/'


Posted by '김용환'
,


회사에서 네트웍 ACL때문에 고생하기 전에..

간단히 웹서버를 띄운다음 다른 서버에서 telnet 을 이용해서 테스트한다. 

간단한 웹 서버를 python을 통해 찾았다. 


-----------------------


python 2.4 이상부터 쓸 수 있는 간단한 툴이다. 


<A 서버>

$ python -m SimpleHTTPServer 9000

Serving HTTP on 0.0.0.0 port 9000 ...

(서버 동작)


<B 서버>

$telnet A서버 80




Posted by '김용환'
,

ldap 구축이 시간이 걸려.

먼저 ip기반으로 nexus를 연동할 예정

앞단에 web서버(nginx)를 두어 ip blocking방법으로 방어함.


1. nginx, nexus 설치 및 연동


0) 설치 디렉토리 선정

mkdir /app/install


1) wget 설치

yum install wget



2) nginx 다운로드

wget nginx.org/download/nginx-1.2.7.tar.gz

tar zxvf nginx-1.2.7.tar.gz


3) rewrite 기능 때문에 pcre 설치

curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz

tar zxvf pcre-8.21.tar.gz 

cd /app/install/pcre-8.21

./configure --prefix=/usr/local

make

make install


* 참조 
http://nginx.org/en/docs/http/converting_rewrite_rules.html



4) nginx 설치 


/app/install/nginx-1.2.7># ./configure --prefix=/app/nginx

make 

make install 


5) nginx 설정


$ cat nginx.conf


worker_processes  1;


events {

    worker_connections  1024;

}


http {

    include       mime.types;

    default_type  application/octet-stream;


    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';


    sendfile        on;

    keepalive_timeout  65;


    gzip  on;


    server {

        listen       80;

        server_name  mvn.google.com;

        access_log  logs/mvn.access.log  main;


        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

        #rewrite ^ http://mvn.google.com:20050$request_uri permanent ;



        location / {

proxy_pass http://mvn.google.com:20050 ;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

       proxy_redirect off;

       proxy_buffering off;

       proxy_set_header        Host            $host;

       proxy_set_header        X-Real-IP       $remote_addr;

       proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

}


allow 127.0.0.1;

allow 192.168.0.0/24;

allow 10.0.0.0/8;

 

deny all;


    }



}




6) nexus 잘 설치


7) nexus 설정 변경


# cat nexus.properties 


# Jetty section

application-port=20050

application-host=1.1.1.1

nexus-webapp=/app/nexus/nexus

nexus-webapp-context-path=/


# Nexus section

nexus-work=/app/sonatype-work/nexus

runtime=/app/nexus/nexus/WEB-INF







2. 테스트

HelloWorld maven 프로젝트 생성후 웹으로 확인

(추후 ldap 사용시 settings.xml 수정 필요)


mvn deploy:deploy-file -Durl=http://mvn.google.com/content/repositories/snapshots -DrepositoryId=com.google.tutorial -Dfile=HelloWorld-0.0.1-SNAPSHOT.jar -DgroupId=com.google.tutorial -DartifactId=HelloWorld -Dpackaging=jar -Dversion=0.0.1-SNAPSHOT



3. Nexus Schedule

Nexus에서 download index, publish index, remove snapshots from repository 작업이 돌아가게 함

rebuild metadata, update full index는 수동으로 작업하게 함




4. Nginx Log Rotate

nginx는 pipe 이슈가 있어서 log rotate를 USR1 시그널을 이용하는 듯 함. 

http://wiki.nginx.org/LogRotation 


/app/nginx/logs/mvn.access.log {

  daily

  missingok

  compress

  rotate 30

  dateext

  sharedscripts

  extension gz

  postrotate

    [ ! -f /app/nginx/logs/nginx.pid ] || kill -USR1 `cat /app/nginx/logs/nginx.pid`

  endscript

}




5. backup 은 rsync로 (급한대로..)


backup 서버 - service xinetd에 설정시킴

# cat /etc/rsyncd.conf 


[app]

    path = /app/

    uid = root

    gid = root

    comment = haha

    hosts allow = 127.0.0.1 1.1.1.11

    use chroot = yes

    read only = no




주서버-  crontab 설정


25 * * * *  rsync -avz --delete /app/ 1.1.1.11::app




Posted by '김용환'
,

ldap 설치 자료

c or linux 2013. 2. 26. 18:18


* ldap 2.4 설치

http://linuxserverathome.com/articles/installing-and-configuring-openldap-2423-centos-63



* 좋은 설명자료

http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-ldap.html

http://shy-kei.blogspot.kr/2011/09/ldap.html

http://blog.naver.com/PostView.nhn?blogId=shlovejh3&logNo=100071641727

http://ibm-swk.blogspot.kr/2006/05/0506-02.html

http://www.openldap.org/doc/admin24/quickstart.html

/etc/openldap/slapd.conf - http://www.faqs.org/docs/securing/chap26sec213.html

http://www.zytrax.com/books/ldap/ch6/slapd-config.html


* ldap 2.3 참고 내용

http://www.linuxfromscratch.org/blfs/view/svn/server/openldap.html

http://www.linuxtopia.org/online_books/centos_linux_guides/centos_linux_reference_guide/s1-ldap-quickstart.html

http://gudle.net/459

http://www.openldap.org/doc/admin24/slapdconf2.html


Posted by '김용환'
,


$ sw_vers -buildVersion

12C3012

$ sw_vers -productVersion

10.8.2

$ sw_vers -productName

Mac OS X


$ system_profiler

...



Posted by '김용환'
,


많은 서버나, 한 서버의 여러 데모을 동작시킬 때 하나씩 데몬을 실행시키지 않고 차례로 자동으로 실행시킬 수 있는 스크립트. 



한줄 


for i in {1..3}; do "/nosql/zookeeper.$i/bin/zkServer.sh" "start"; done



bash 코드


#!/bin/bash

for i in {1..1}

  do

    "/nosql/zookeeper.$i/bin/zkServer.sh" "start"

 done





Posted by '김용환'
,

grep 과 동시에 파일명을 찾고 싶을 때 사용가능한 리눅스 쉘 명령어.


$ find . -type f | xargs grep 'abc'

./파일명:[OK  ] abc




Posted by '김용환'
,

 

 

사용자가 터미널에서 Timeout 안되게 설정할 수 있는 방법

 

bash shell쓰는 경우 .bashrc 에 다음을 추가

export TMOUT=0

Posted by '김용환'
,

 

리눅스 기초 자료 (괜찮은 자료가 많음)

http://joonlinux.blogspot.kr/

 

레드햇 튜닝 가이드

https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/index.html

 

레드햇 튜닝 가이드 한글 초간단 요약본

http://happy20hours.blogspot.kr/2012/09/linux-performance-and-tuning-guidelines.html

 

비선전형 SMP커널의 CPU별 성능

http://kldp.org/node/128238

Posted by '김용환'
,