OS에서 사용하는 ipc(Inter-Process Communication)를 확인하는 명령어로 ipcs가 있다. 보통 개발시에 등록한 공유메모리나 메시지 큐가 제대로 인식되었는지 확인하게 되는데 일단 명령어를 입력해보면 아래와 같은 화면을 볼 수 있다. ipcs 세마포어와 공유메모리, 메시지 큐가 순서대로 보인다. (OS에 따라 약간의 차이는 있을 수 있다.) 도움말을 보면 아래와 같다. ipcs --help 도움말 역시 OS에 따라 차이가 있을 수 있다. 여기서 유용하게 사용되는 옵션에는 두가지가 있는데, 첫번째로는 현재 커널 파라메타로 입력되어 있는 임계치(limits)다. ipcs -l proc에 있는 값을 조정해서 사용할 수도 있다. OS의 기본 임계치를 아는 것은 개발에 큰 도움을 준다. 유용..
CentOS-6.4 에서 docker 관련 공부를 하고자했지만.. 어떤 이유인지 설치하고 실행하려고 해도 데몬 실행이 되지 않았다. 오류는 아래와 같은 메시지가 출력 된다. [root@localhost link]# docker -d WARN[0000] You are running linux kernel version 2.6.32-358.el6.x86_64, which might be \ unstable running docker. Please upgrade your kernel to 3.10.0. INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) docker: relocation error: docker: symbol dm_task_get_inf..
test.cc:(.text+0x3123): relocation truncated to fit: R_X86_64_PC32 against symbol `offset' defined in .bss section test.o 흔히 나오는 에러는 아닌데 x86_64에서 .data section의 크기 limit는 2G다. (여기서 .data는 일반적으로 부르는 .data와 .bss를 합친 영역으로 보임) 일단 뭔가 메모리를 무시무시하게 잡아먹는다는 이야기. 뭘 억지로 변경해서 컴파일 되게 하려고 하지말고, (커널 파라미터 중 limit 값을 찾아서 변경한다던지...) 코드 리뷰를 통해 문제 되는 부분을 수정 하는게 낫다. dynamic하게 사용할 수 있도록 allocate 하는것도 방법인듯. PS 예제 코드 만들..
기사 링크 : http://www.boannews.com/media/view.asp?idx=46219 좀 오래된(?) 떡밥이긴 한데, 여전히 문제가 되는 코드를 사용하는 곳이 많습니다.. 내용을 요약하면 "0e"로 시작하는 해시 값은 '0'과 비교할때 "==" 혹은 "!=" 로 비교시에 문제가 된다고 이야기하고 있습니다. (0e로 시작하는 스트링이 '0'과 같게 취급 됨) 코드로 보면 아래와 같습니다. 자 그럼 "240610708"과 같은 "MAGIC" NUMBER / STRING 에는 무엇이 있을까요 코드 출처를 따라가면 각종해시에 대한 "MAGIC" NUMBER / STRING 를 나열하고 있습니다. 이제 이러한 잠재적인 문제를 회피하기 위해 코드를 수정해야 하는데, 아래와 같은 오퍼레이터로 대체하는..
Subversion 사용을 윈도우의 TortoiseSVN으로 옮기면서 윈도우에서 만든 svn 폴더에는 리눅스의 svn 명령어가 동작하지 않았다. 문제는 리눅스 머신에 기본설치 되어 있는 svn 버전이 낮기 때문인데.. 오류 메시지는 아래와 같다.[root@localhost trunk]# /usr/local/bin/svn infosvn: E155021: This client is too old to work with the working copy at'/root/bin/oops' (format 31).You need to get a newer Subversion client. For more details, see http://subversion.apache.org/faq.html#working-copy-..
탐색기에 Tortoise SVN 아이콘이 보이지 않는 경우가 발생을 했을때 검색을 해보면 대부분 레지스트리를 문제 삼지만 막상 그게 문제가 아닌 경우가 더 많은것 같다. 사실 다른 툴과 충돌이나는 경우는 극히 드물고, 오히려 탐색기 재시작하지 않았기 때문이 아닐까? 혹시 탐색기에서 Tortoise SVN 관련 아이콘이 보이지 않는다면 탐색기를 우선 재시작해보자. 일단 실행창을 열고(단축키:win+r) 아래 명령어를 입력한다. tskill explorer 그리고 다시 확인을 해보자. 아마 대부분의 사용자는 이 방법으로 해결되지 않을까..?ㅎㅎ
윈도우 공유폴더를 마운트 해서 사용하고자 해서 samba를 설치하고 마운트해서 사용해왔었는데대용량(?)파일을 공유 폴더에 쓰다보니 마운트가 풀리고 다시 마운트가 되지 않는 증상이 나왔습니다 오류 문구는 아래와 같습니다(mount error 12 = Cannot allocate memory)[root@localhost ~]# mount -t cifs //192.168.0.10/shared_dev /root/bin --verbose -o username="User",password="testpasswd" mount.cifs kernel mount options: unc=//192.168.0.10\shared_dev,ip=192.168.0.10,ver=1,rw,username=User,pass=********..
kali linux 2.0을 설치하고 setoolket을 테스트해보았습니다. 여러가지 toolket이 있지만 그 중 현재 가장 관심가는 mailer Attack를 테스트 해봅니다. 우선 setoolket을 실행하고..1번을 선택합니다. (Social-Engineering Attacks) 다음으로 5번을 선택합니다. (Mass Mailer Attack) 다음은 2번을 선택합니다. (E-Mail Attack Mass Mailer)1번은 한 명의 수신인을 선택하지만, 2번의 경우 미리 준비된 수신자 리스트에게 메일을 전송합니다. 미리 준비한 수신자 리스트를 저장한 파일 경로를 지정합니다.이때는 절대 경로를 입력합니다. 파일의 내부 형태는 아래처럼 개행(줄바꿈)으로 구분합니다.abc@mail.comoops@te..
디스크 용량 문제로 virtualbox의 이미지(vdi) 경로를 변경할때 아래와 같은 오류가 발생하게 되는데이에 대한 해결 방법을 기록합니다. * 일단 아래와 같이 기존 path를 잡고 있는 디스크가 삭제 불가한 경우 * 세션이 저장되어 있지 않은지 확인합니다. * 저장된 상태는 삭제가 안되므로, "저장된 상태 삭제"를 진행합니다. * 그럼 아래와 같이 삭제 버튼이 활성화 되는 것을 확인할 수 있습니다. * 삭제 후 새로운 경로의 이미지를 추가하려고 하면 아래와 같은 오류가 발생합니다. * 이때는 cmd 모드에서 아래와 같은 명령을 진행합니다. cd C:\Program Files\Oracle\VirtualBox\ * 그 후 새로운 path를 입력해줍니다. VBOXMANAGE.EXE internalcomm..
SecureCRT를 주로 사용하다가 putty로 넘어왔는데, 다소 아쉬운점이 많았습니다뭐.. 라이선스의 freeware 여부로 인한 금전적인 문제가 있다보니 감수해야 하는 부분이겠지만요. 무료 소프트웨어인 putty도 설정을 갖추면 나름 쓸만해지는데 아래 4가지를 정리합니다. 1. 스크롤 라인 수 기본설정이 2000으로 나름 여유롭긴 하지만 신명나게 서버를 운영하던지,vim을 사용하는 경우 타이핑 이력이 스크롤을 초과하는 경우가 발생합니다.기본 스크롤 라인 수를 여유롭게 설정해서 사용하기를 권고합니다. 2. 색상 나름 본인이 굉장히 중요하게 여기는 설정입니다.ANSI의 파란색 색상은 매우 짙어서 리눅스의 폴더를 표기하거나 c/c++의 include나 define을 처리하기에 매우 부적합하다고 생각이 듭니..
흔히 mysql_query()의 반환 값은 resource ID 혹은 False로 알고 있지요.하지만 모든 경우에 그런 것은 아닙니다. http://php.net/manual/kr/function.mysql-query.phpmysql_query()에 대한 메뉴얼을 살펴보면 아래와 같은 문구가 나옵니다.mysql_query()는 다른 형식의 SQL 구문, INSERT, UPDATE, DELETE, DROP 등에서 성공하면 TRUE를, 실패하면 FALSE를 반환합니다. 당연한 내용이죠? (당연하지 않다면.. 평소 메뉴얼을 제대로 보지 않은 자신에게 채찍질을..)그럼 아래 내용을 살펴봅시다.$query = "....."; $link = mysql_connect("localhost","root","secret"..
IPv6를 이용한 ssh 접속 실패 로그에 아래와 같은 부분이 발견되었습니다. 2001::......:1%12121212 통상 알고 있는 형태와는 다르게 퍼센트(%) 기호가 들어가고 뒤에는 알수 없는 숫자(하지만 항상 같은 숫자인것으로 보아 더미는 아닌)가 출력되어 있습니다. 도대체 뭘까 하는 마음에 이리저리 검색을 해보았는데 관련된 정보가 생각보다 많았습니다. 검색 키워드는 zone id 그중에 나름 꽤 잘 설명이 되어 있는 링크를 아래 첨부합니다. https://en.wikipedia.org/wiki/IPv6_address 아직 IPv6가 익숙하지 않아서 많은 사람들이 알지 못하는 정보인듯 하여 공유하도록 합니다. (링크 중 관련된 부분 첨부)Link-local addresses and zone in..
mips compiler의 버전이 낮다면.. 정말 많은 삽질을 하게 된다. 단언컨대, mips-gcc 4.3이하 버전에서 평범한 시나리오(별 옵션 없이 cmake)로는 절대 컴파일 안된다. 4.7 버전은 되는것 확인했지만, 그 사이의 버전은 확인하지 못했다. compiler 버전을 바꿀수 없는 상황이라면.. 뭐 어쩔수 없이 몇가지 옵션을 꺼주면 된다. 일단 본인의 생각으로는 xtradb와 innodb 두개만 without 옵션으로 꺼주면 된다. (옵션으로 어떻게 disable 시키는지 모르는 사람을 위해 친절히.. 코드 제공) cmake -DXTRADB_OK=1 -DWITHOUT_XTRADB=1 -DWITHOUT_INNOBASE=1 최소한 이정도..누군가 국내외에서 나와 같은 삽질을 하지 않기를 바라는 ..
C 언어에서의 삼항연산자(?:)를 python에서는 어떻게 사용해야 할까요? 아래와 같은 C 코드가 있습니다. printf ("%s", result?"True":"False"); python 코드로는 다양한 방법이 있겠지만 아래와 같이 사용이 가능합니다. >>> result="Test" >>> print "%s" % ("True" if result else "False") True >>> C에 익숙해있다면 어색한 문법이지만, 나름 python 철학을 생각하면.. 가독성이 좋아보입니다.
본 설정은 ubuntu 3.13.0-32 에서 진행했습니다. 1. 설치 sudo apt-get install tacacs+ 2. 서버 재시작 (디버깅 수정이나, 사용자 추가/변경 후) sudo /etc/init.d/tacacs_plus restart 3. 사용자 추가 1) 사용자 설정 파일 /etc/tacacs+/tac_plus.conf 2) 사용자 등록 형태 key = auth_pass # client 와의 공유 암호 user = oops { default service = permit pap = cleartext "oops_01" } 4. 디버깅 1) 비버깅 설정 파일 /etc/default/tacacs+ 2) 내용 수정 DAEMON_OPTS="-d 2048 -C /etc/tacacs+/tac_plu..
mariadb-10.0.19 를 mips로 cross-compile 하면서 발생 된 문제를 몇가지 기록해봅니다. 일단 개발서버 환경은 32bit, 타겟은 mips(64bit) 입니다.기본적으로 mariadb 소스를 받으면 BUILD 폴더 밑에 mips관련 configure가 있지만..위 환경에서는 정상적인 동작을 못하는듯.. 그래서 하나하나 error를 잡아가며 compile을 시도 했습니다. 1) 컴파일은 일반 버전(?)과 동일하게 컴파일 폴더를 만들고 그 폴더 내에서 cmake를 진행합니다. - 그 과정은 여기를 참고 - 단, CC, CXX 등은 환경에 맞는 컴파일러를 사용합니다. - 제 경우 개발서버 환경이 32bit 머신이기 때문에 n32 옵션 사용. 이 옵션은 gcc, gcc+ 양쪽에 다 들어가..
하아..별걸로 다 삽질을 하네.그래도 건진게 있으니까 한시름 놓습니다. 오늘 이슈는 localhost 로의 mysql 접속입니다. $ mysql -uroot -ptest ERROR 1045 (28000): Access denied for user 'root'@'127.0.0.1' (using password: YES) 일단 패스워드가 틀렸다는 에러인데.. (test라는 패스워드는 블로깅을 위한 샘플임) "root가 접속을 하는데 패스워드가 틀렸다" 입니다. 당연한 이야기죠? 근데 외부에서 접속할때 항상 test라는 패스워드를 써왔는데 이게 뭔가 싶었죠, 검색을 해보면 패스워드 초기화를 위해 mysqld를 skip-grant-tables 옵션을 써서 다시 올리고 패스워드를 재설정 하라는 내용밖에 안보입니다..
- Total
- Today
- Yesterday