‘작은 것이 아름답다.’라는 말을 들어보셨나요? ‘Simple is beautiful’ 이라는 유닉스 철학인데, 요새 매쉬업이라는 개념을 보고 있으면 바로 이 말이 떠오르곤 합니다.
유닉스 철학 중에는 ‘출력이 다른 프로그램의 인풋으로 사용될 수 있다고 예상하라. (Expect the output of every program to become the input to another, as yet unknown, program.)’ 라는 항목이 있습니다. 파이프 라는 말을 들어보셨을지 모르겠지만 이를 이용하면 다른 프로그램의 출력을 내 프로그램의 입력으로 받아 사용할 수 있기 때문에 복잡한 프로그램을 만들기보다는 간단한 프로그램을 만들고, 이미 만들어져있는 프로그램들과 조합을 해서 사용하는 것이 가능해집니다.
Read the rest of this entry »
ssh 프로토콜의 인증 방법은 매우 다양하며 많이 쓰이는 방식은 다음 정도가 되겠습니다.
- RSA or DSA key pair
- keyboard-interactive
- password
이 중 keyboard-interactive / password 인증 방식은 전부 비밀번호를 이용한 인증이고, RSA/DSA 방식은 대칭키(공개키 – 비밀키)를 이용하는 방식입니다. 공개키를 등록만 해두면 여러 개의 서버에 접속할 때 각기 따로 비밀번호를 치고 로그인을 할 필요가 없으므로 매우 편리한 방식이 되겠습니다.
Read the rest of this entry »
This entry was posted
by 정태영 on Wednesday, January 14th, 2009 at 2:03 AM and is taged under dsa, encryption, key, keychain, login, OpenSource, pair, rsa, ssh, ssh-agent, unix.
현재 unfix 서버에는 apache + mod_fcgid 환경에서 fastcgi 를 지원하고 있다. 그런데 fastcgi 를 적용시킨 후 가끔 apache 가 먹통이 되는 현상이 생겨버렸다.
대부분의 apache 프로세스가 D state 를 가지게 되면서 더 이상 프로세스를 만들어내지 못하게 되서 요청을 처리하지 못하게 되는 것 같은데, D state 는 Uninterruptible sleep 을 의미하므로 fastcgi 프로세스에서 interrupt 를 disable 시킨채로 sleep 상태에 들어가서 이런 문제가 생기는 것으로 보인다.
그렇다고 하루종일 아파치가 정상적으로 동작하고 있나를 확인할 수는 없기에 스크립트를 하나 작성해봤다.
#!/bin/sh
cnt=0;
for x in `ps -C apache2 -o stat|grep D`;do
let cnt++;
done
if [ $cnt -ge 10 ];then
kill -HUP `cat /var/run/apache2.pid`
fi |
sort 와 uniq 를 이용해서 숫자를 셀 수도 있지만 정상적인 경우에 D stat 를 가지는 프로세스가 존재하지 않으므로 for 를 이용하기로 했다. 꺄아! 과연 효과는 -_-! 두둥!
sql injection 을 피하기 위해 single quote 를 escape 시켜주는 코드를 작성해야할 필요가 있었는데, 매번 하나하나에 대해 mysql_real_escape_string 을 호출해주는 건 너무나도 번거로웠다. 뭔가 간단하게 처리할 방법이 없을까 하고 찾아봤더니 왠걸! array_map 이라는 마법의 함수를 발견할 수 있었다.
common function 들을 정의해놓은 파일 맨 아래 저 코드를 삽입해버리니 sql injection 따위 이제 두려워할 필요가 없어졌다. 움하하핫!!
p.s) 그냥 array_map 에 stripslashes 나 mysql_real_escape_string 을 사용하게 되면 array 가 넘어온 경우 문제가 생길 수 있어서 약간 수정을 했습니다.
This entry was posted
by 정태영 on Wednesday, October 24th, 2007 at 10:48 PM and is taged under array_map, avoid, Computer, mysql, mysql_real_escape_string, php, Programing, secure, sql injection, unix.