본문 바로가기

반응형

도구의발견

(67)
shell 프롬프트 텍스트 변경 여러 리눅스 서버를 관리하다 보면 현재 내가 어느 서버에 접속해 있는지 헷깔릴때가 있다. 터미널에서 제공하는 여러가지 도움을 주는 도구들이 있지만 개인적 경험으로 보았을때 쉘에서 현재 접속중인 서버의 이름을 보여주는 것이 가장 도움이 되었다. 하지만 쉘프롬프트를 꾸미는 셋팅이 자주 있는 일이 아니라 자꾸 방법을 까먹어 여기에 기록 해놓도록 한다.(언젠가 이 블로그에 적은 기억이 있는것 같은데 찾을 수가 없어 중복 같지만 다시 한번 더 작성한다) user_id@ip-172-31-15-60:~$ vi ~/.bashrc # .bashrc PS1="\u@:\w\$ " 위에서 : \u 는 현재 사용자의 이름을 나타낸다 @ 는 그냥 @이다 은 해당 서버를 구분하기 위해 넣어주는 이름이다 \w 는 현재 디렉토리를 나..
gdb - 실행 중인 프로세스 & 스레드 디버깅 하기 개발을 하다 보면 딱히 프로세스가 죽는 것은 아닌데 과도하게 cpu를 먹는 다던지(특정 스레드 무한루프), 프로세스가 살아는 있지만 아무런 응답을 하지 않는다던지(데드락)하는 경우가 있다. 이런 경우 실행 중인 프로세스에 직접 붙어 현재 상태를 체크 해 볼수 있다면 문제 해결에 많은 도움이 될수 있다. 이번 포스팅에서는 실행 중인 프로세스에 gdb 디버거를 붙이고 각 스레드의 상태를 확인, 문제가 되는 스레드의 스택을 트레이싱하는 방법에 대해 알아 보도록 하겠다. 스레드 상태 확인하기 $ ps -eLf | grep UID PID PPID LWP C NLWP STIME TTY TIME CMD kukuta 11048 1 11048 0 8 10:52 pts/0 00:00:00 kukuta 11048 1 110..
Ubuntu core dump 셋팅 limits.conf 파일 수정 $ sudo vi /etc/security/limits.conf /etc/security/limits.conf 파일에 아래 두 줄을 추가 kukuta soft core unlimited kukuta hard core unlimited 위에서 kukuta는 계정명이다. 각자가 사용하는 계정을 적어 주면 된다. 위와 같이하면 프로세스가 예기치 않게 죽을시 코어 덤프를 남기고 죽게 된다. 코어 덤프 pattern 수정 /etc/sysctl.conf 파일에 아래 내용을 등록해 준다. kernel.core_pattern = core.%e.%p.%t 처음은 단순 core라고만 적혀 있다. 아래를 참고하여 각자가 원하는 형태로 바꾸도록 한다. %p: pid %: '%' is dropp..
Ubuntu Apache(14.04) 설치 1. Apache 설치 $ sudo apt-get install apache2 설치가 완료 되고 나면 각 계정 별로 pubilc_html 디렉토리를 사용 할 수 있도록 셋팅 한다. /etc/apach2/httpd.conf(or /etc/apache2/apache2.conf) Include /etc/apache2/mods-available/userdir.load Include /etc/apache2/mods-available/userdir.conf UserDir public_html AllowOverride All Options ExecCGI Order allow,deny Allow from all Order allow,deny Allow from all ServerName localhost 설정이 끝나고..
MySQL 백업 스크립트 아래 쉘 스크립트를 crontab등에 등록 해두고 매일매일 실행 시키면 4일 까지의 덤프 데이터가 남는다. #!/bin/sh BACKUP_DIR=/home/SOMEWHERE/db_backup TODAY=`date +%Y%m%d` RETENTION_PERIOD=4 # 백업 덤프 파일 보관 기간 4일 DAY_BEFORE_RETENTION_PERIOD=`date --date "${RETENTION_PERIOD} day ago" +%Y%m%d` #echo "DAY_BEFORE_RETENTION_PERIOD:"${DAY_BEFORE_RETENTION_PERIOD} #유저가 작성한 DB 목록 추출 mysql -u root -h 127.0.0.1 -P 3306 --password='PASSWORD' --skip-co..
MySQL master-slave 리플리케이션(my.cnf 설정) 1. replication용 DB 계정 생성( master/slave 둘다 ) $ create user repl@'192.168.186.%' identified by 'repl'; $ grant replication slave, replication client on *.* to repl@'192.168.186.%' identified by 'repl'; 2. master 설정 1) master my.cnf 수정 [mysqld] server-id = 1 # master DB id for replication .... ######################################## # Replication related settings ##################################..
MySQL Event 등록 MySQL event mysql에는 특정 시간에 한번, 혹은 일정 주기를 가지고 반복적으로 특정 쿼리 혹은 SP를 호출하는 event라는 것을 제공한다. 1. 이벤트 스케줄러 활성화 SET GLOBAL event_scheduler = ON; 아래 처럼 해도 됨 SET @@global.event_scheduler = ON; SET GLOBAL event_scheduler = 1;SET @@global.event_scheduler = 1; http://dev.mysql.com/doc/refman/5.7/en/events-configuration.html 2. 이벤트 등록 하기http://dev.mysql.com/doc/refman/5.7/en/create-event.html
svn externals 설정 방법은 다음과 같다. 소스를 체크아웃 받은 자리에서 다음과 같이..$svn propedit svn:externals .현재 디렉토리에 external 설정을 하겠다는 의미다. 편집기가 열리는데 다음과 같은 형식으로 쓰면 된다. 여러 줄 편집 가능하다. some_directory svn://some_address.com/some_directory 또는 -r some_directory -r 12345 svn://some_address.com/some_directory와 같은 방법으로 특정 버젼을 셋팅하는 것이 가능하다. 저장된 내용을 보려면 다음과 같이svn propget svn:externals
Unity3D + Facebook 연동 개발 가이드(안드로이드 버젼) 이번 포스팅은 Facebook Unity SDK(https://developers.facebook.com/)를 이용하여 Unity와 facebook을 연동하는 방법에 대해서 다룹니다. 예제 코드는 facebook sdk 패키지를 import하면 만들어지는 Examples/InteractiveConsole이 깔끔하고 쉽게 나와있으므로 그것을 보시는 것이 좋습니다. 본 포스팅에서는 InteractiveConsole 예제를 실행하면서 겪었던 환경 셋팅 문제를 주로 다룹니다. 현재 안드로이드 버젼만 다루고 있으며 ios의 경우에는 해당 작업을 하게 되면 추가하도록 하겠습니다. 준비 작업 Java SDK(ver 1.7) : facebook 앱 인증에 필요한 key hash를 생성하는데 사용됩니다. OpenSSL(..
우분투(Ubuntu) 패키지 만들기 리눅스(ubuntu)에서 서버 개발을 시작하면서 가장 귀찮은 것중에 하나는 개발환경 셋팅이었다. 서버 프레임워크에 boost, curl, json, mysql을 사용하고 있어서 새로 서버를 셋팅하거나 개발환경이 필요한 경우 매번 위 라이브러리들을 설치하는 작업을 해야 했고, 이게 자주 있는 일이 아니다 보니 할때 마다 뭘 설치해야 할지 까먹어 매번 새로운 작업 처럼 느껴졌다(그리고 빌드 과정 또한 복잡했다). 그래서 이 일련의 반복되는 작업들을 쉽게 할수 있는 방법이 없을까 찾아 보던 중 '패키징'이라는 것을 알게 되었고 필요한 라이브러리들 미리 빌드하여 바이너리 형태의 패키지로 묶어 한번에 설치할 수 있도록 하니, 개발환경을 새로 셋팅할 때 마다 몇 시간씩 들던 노력이 몇 분으로 줄어 들었다. 자, 이..

반응형