diff 시 .svn 디렉토리 제외하기

Posted at 2010/01/08 17:47// Posted in os/*nix
svn 은 폴더마다 .svn 라는 정보가 담긴 디렉토리를 저장합니다.

이로 인해 diff 할때 .svn 까지 diff 를 해버리는 애로사항이 발생합니다~

이럴 때는 --exclude 옵션을 주면 됩니다 -_-)/

diff --exclude=.svn LEFT RIGHT


짜잔~
이올린에 북마크하기(0) 이올린에 추천하기(0)
2010/01/08 17:47 2010/01/08 17:47

tar 압축시 .svn 폴더 제외하기

Posted at 2009/12/15 16:58// Posted in os/*nix
http://bzpalm.net/wordpress/archives/20

find SRC_DIR -name '.svn' -type d | tar -zcvf TARGET.tgz SRC_DIR --exclude-from=-


~(-_-)~ 이제 더 이상 os.walk 를 안 써도 되겠군!


ps. 찾아보니 더 쉬운 방법이-_-;
tar -zcvf TARGET.tgz --exclude=.svn SOURCE1 SOURCE2 SOURCE3
ㄷㄷㄷ
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/12/15 16:58 2009/12/15 16:58
디비 만들기
CREATE DATABASE [디비이름]

사용자 만들기
GRANT ALL
    ON [DB이름].*
    TO [아이디]@localhost
    IDENTIFIED BY '[비밀번호]' WITH GRANT OPTION;

FLUSH PRIVILEGES;

만드는 걸 해봤다면 지우는 것도 연습해보자~

사용자 지우기
DELETE FROM db WHERE user='[아이디]';
DELETE FROM user WHERE user='[아이디]';

디비 지우기
DROP DATABASE [디비이름]

디비 관리 프로그래밍하려면 알아야 하는 것이긴 하지만
간단히 사용만을 하고 싶은데 외우려면 머리가 아프다 -_-;
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/04/25 16:48 2009/04/25 16:48

unix svn 외부 경로 설정하기

Posted at 2009/01/22 22:21// Posted in os/*nix
게임 개발시 폴더 구조는 보통 아래와 같은 형태를 갖게 됩니다.

dev/
dev/bin/
dev/bin/res
dev/src/

test
test/res

live
live/pack


dev/src 에서 소스를 컴파일해서
dev/bin 으로 실행 파일을 복사해서
dev/bin/res 에 있는 리소스를 사용해 프로그램을 디버깅해본 다음

제대로 작동한다면 실행파일을
test/로 복사하게 됩니다.

test 버전을 내부 QA 에서 진행해본다음 괜찮다 싶으면
live/ 로 옮기게 됩니다. 실행파일은 그대로 복사되고 test/res 는 패킹되서 pack 폴더로 옮겨지죠.

문제는 dev/bin/res 입니다.
test/res 와 동일한 내용을 가지고 있고,
보안 문제라던지,
업데이트 속도 문제
때문에 소스 svn 과는 분리해야 합니다.

보통 노가다로 소스 svn 을 받은 다음
다시 리소스 svn 을 받아 오기도 합니다만...
상당히 귀찮은 일입니다 ~(-_-)~

다행스럽게도 svn 에서 이런 외부 svn 을 자동으로 받아오는 기능을 지원하더군요~

$ svn propedit svn:externals .
폴더1 svn+ssh://외부SVN 경로1
폴더2 svn+ssh://외부SVN 경로2

cronan 님께서 알려주셨습니다 : )
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/01/22 22:21 2009/01/22 22:21

unix svn ignore 기능 사용하기

Posted at 2009/01/22 14:49// Posted in os/*nix
현재 폴더내 파일 무시하기 수정
$ svn propedit -R svn:ignore .
game.exe
*.obj
log


재귀 폴더 파일 무시하기 설정
$vim ignore.txt
*.exe
*.obj
log

$ svn propset svn:ignore --recursive --file ignore.txt .

참고 http://ktd2004.tistory.com/7




이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/01/22 14:49 2009/01/22 14:49
$ ssh-keygen -p -f 개인키_파일_이름

예제

$ ssh-keygen -p -f ~/.ssh/id_rsa
Key has comment '/home/myevan/.ssh/id_rsa'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.

이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/06/18 16:28 2007/06/18 16:28
.ssh/authorized_keys 를 등록했는데도,
계속 비밀번호를 물어본다면 .ssh 폴더의 권한이 700 인지 확인한다.


ps.
그런데 기본 권한을 살펴보니 775 rwxrwxr-x 던데 -_-)>
.ssh 일 경우는 자기만 볼수있게 보안을 강화하라는 의미인가...
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/06/18 16:05 2007/06/18 16:05

리눅스 사용자 만들기

Posted at 2007/06/18 14:22// Posted in os/linux
# useradd 계정이름

실행하면 아무것도 묻지 않고 생성된다.

/etc/skel/ 에 설정 파일을 넣어두면 생성시 복사된다.

변경사항이 있을 경우 옵션을 넣는다.

비밀번호도 자동으로 들어가므로

# passwd 계정이름

을 사용해서 설정해준다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/06/18 14:22 2007/06/18 14:22
1. 프로세스 아이디 확인

$ ps -ux
USER        PID  %CPU %MEM     VSZ  RSS  TT  STAT  STARTED      TIME COMMAND
myevan  46674     0.0       0.2      39732  1784  pa- SL     10 507            84:27.05 ./game

2. gdb 실행파일 로드
$ gdb game
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-freebsd"...
(gdb)

3. 프로세스 연결
(gdb) attach 46674
Attaching to program: home/myevan/game, process 46674
Reading symbols from /lib/libz.so.2...done.
Loaded symbols for /lib/libz.so.2
Reading symbols from /usr/lib/libstdc++.so.4...done.
Loaded symbols for /usr/lib/libstdc++.so.4
Reading symbols from /lib/libm.so.2...done.
Loaded symbols for /lib/libm.so.2
Reading symbols from /usr/lib/libc_r.so.5...done.
Loaded symbols for /usr/lib/libc_r.so.5
Reading symbols from /lib/libc.so.5...done.
Loaded symbols for /lib/libc.so.5
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
[Switching to Process 68794, Thread 1]
0x283a32af in poll () from /lib/libc.so.5
(gdb)

4. 브레이크 포인트 설정
(gdb) b do_skillup
Breakpoint 1 at 0x8111419: file cmd_general.cpp, line 791.

5. c++ 멤버 함수 브레이크 포인트 설정
(gdb) rbreak CHARACTER::SkillLevelUp
Breakpoint 2 at 0x80c91f2: file char_skill.cpp, line 576.
void CHARACTER::SkillLevelUp(unsigned long, unsigned char);

6. 브레이크 포인트 리스트 보기
(gdb) info b
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x08111419 in do_skillup(CHARACTER*, char*, int, int) at cmd_general.cpp:791
2   breakpoint     keep y   0x080c91f2 in CHARACTER::SkillLevelUp(unsigned long, unsigned char) at char_skill.cpp:576

7. 브레이크 포인트 제거
(gdb) delete 1
(gdb) info b
Num Type           Disp Enb Address    What
2   breakpoint     keep y   0x080c91f2 in CHARACTER::SkillLevelUp(unsigned long, unsigned char) at char_skill.cpp:576

8. 디버깅 시작
(gdb) c
Continuing.

9. 프롬프트 모드로
^C
Program received signal SIGINT, Interrupt.
0x283a32af in poll () from /lib/libc.so.5
(gdb)

10. 프로세스 연결 해제
(gdb) detach
Detaching from program: home/myevan/game, Process 46674, Thread 0
(gdb) quit
$

관련링크:
KLDP GDB 잘 쓰기
GDB 를 이용한 디버깅
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/05/31 17:18 2007/05/31 17:18

MySQL 사용자 추가 하기

Posted at 2007/05/07 11:58// Posted in os/*nix
MySQL 방화벽 포트(3306) 열기
# ipfw add rrr allow tcp from xxx.xxx.xxx.xxx/24 to yyy.yyy.yyy.yyy/24 dst-port 3306

MySQL 사용자 만들기
$ mysql -u root -p
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysql;

mysql> INSERT INTO user (Host, User, Password) VALUES("xxx.xxx.xxx.xxx", "nnnn", PASWORD("pppppppp");

mysql>INSERT INTO db  VALUES("xxx.xxx.xxx.xxx", "tttt_%%", "nnnn",

'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');

mysql> FLUSH PRIVILEGES;
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/05/07 11:58 2007/05/07 11:58