11월, 2012의 게시물 표시

이클립스에서 파이썬 한글 문제

[개발/개발툴] PyDev 에서 단순히 '한글' 을 찍어보려고 하는데, File "C:\Documents and Settings\keidw\My Documents\workspace\PythonTest\src\test.py", line 6     ?     ^ SyntaxError: invalid syntax 문법 에러가 발생을 하네요. 이유도 없이 ? 를 입력했을리가 없잖아요?-_-; 검색엔진에서 사례를 찾아보니 한글 문제는 문서 설정에 인코딩 옵션이 잘 못 되었을 때 발생할 수 있다고 하더군요. Windows - Preferences - General - Content Types - Text 에서 , 해당 파일의 Default encoding 을 EUC-KR 로 입력하고 Update 해주라고 해서 해봤는데, 소용이 없었습니다. EUC-KR 은 리눅스의 경우이고, 윈도우의 경우에는 MS949 라고 해줘야 하더군요. 이렇게 해주면 문서상의 '한글 깨짐' 현상은 해결됩니다. 우측 하단의 encoding 부분에 MS949 입력 하지만, 여전히 ? 가 삽입되면서 문법 에러가 발생하는 현상은 해결되지 않았습니다. 그래서 살펴본 결과 원인을 확인했습니다. 파이썬에서 한글 사용을 위해 일반적으로 맨 윗줄에 삽입해주는 # -*- coding: cp949 -*- 부분에 문제가 있었습니다. cp949 가 아니라 ms949 로 해줘야 하네요. # -*- coding: ms949 -*- 이렇게 바꿔주니까 아무 문제 없이 한글 출력이 됩니다. 한글 나온다! 확실히 한국 개발자들은 이 한글 문제 때문에 언제나 다른 나라 개발자들 보다 조금은 더 삽질(공부)하게 되는 것 같네요;

리눅스 true-type 폰트추가

기본적으로 Linux 시스템에는 설치 언어를 '한국어'로 선택한 경우, 몇 가지 무료용 한글 글꼴이 설치된다. 그러나, 이 글꼴은 무료인 만큼 Windows에서 사용하는 글꼴처럼 미려하지 않은 단점이 있다. 이를 해결하는 방법으로는 일반적으로 무료로 배포되는 글꼴을 내려받거나 Windows 시스템에서 사용하는 TrueType 글꼴(ttf)을 가져다 쓰는 것이다. 다행이 TrueType 글꼴은 그대로 Linux 시스템에서 사용할 수 있다. 1. 글꼴 복사하기 Windows 시스템에서 사용할 글꼴을 복사한 다음, Linux 시스템에 옮긴다. Windows 시스템은 C:\Windows\Font 디렉토리에 글꼴이 설치되어 있다. Linux 시스템에 복사한 글꼴을 다음과 같이 Linux의 글꼴 시스템 디렉토리에 설치한다. ># mv *.ttf /usr/share/fonts 2. 글꼴 캐쉬 정보 갱신하기 현재 시스템에서 사용하고 있는 글꼴에 대한 정보에 새로 설치한 글꼴 정보가 포함되도록 갱신하여야 한다. 시스템을 재시작하면 자동으로 반영되지만 현재 복사한 글꼴을 바로 확인하고자 할 때에는 다음을 실행한다. ># fc-cache -f -v : 시스템에 신규글꼴 갱신 ># fc-list : 시스템에 등록된 글꼴 확인하기 3. Anti-Aliasing 적용하기 지금까지의 과정으로 TrueType 글꼴의 기본적인 설치 과정은 완료된다. 그러나, Ubuntu와 같이 몇몇 시스템에서는 한글 글꼴에 대해 Anti-Aliasing (즉, 글꼴의 윤곽을 부드럽게 함)을 적용하지 못하도록 설정되어 있어, TrueType 글꼴인데도 불구하고 마치 Bitmap 글꼴이 확대되었을 때 깨지는 것처럼 보이는 경우가 있다. 이런 경우에는 다음과 같이 Anti-Aliasing을 적용하지 못하도록 설정된 두 부분을 주석 처리한다. 우선 편집기를 이용하여 다음과 같이 한글 설정 파일을 연다. ># gedit /usr/share/

FROM keyword not found where expected

validationquery 옵션을 수정해야 한다. select 1 ->   SELECT 1 FROM DUAL

Linux 내 파일문서검색

Linux에서 파일 내에 특정 문자열을 검색해야 하는 경우가 종종 있다. - 현재 디렉토리 내 확장자가 txt인 파일들을 중에서 "홍길동"이라는 문자열을 갖고 있는 파일의 한 줄과 이름을 보여준다. find . -name "*.txt" | xargs grep 홍길동 - 이 때 검색어로 사용된 문자열은 색을 달리하여 표시하고 싶다면 find . -name "*.txt" | xargs grep --color=auto 홍길동  - 검색어의 위치(줄번호)를 같이 표기하고 싶다면 find . -name "*.txt" | xargs grep -n 홍길동 - 대소문자를 구분하고 싶지 않다면 find . -name "*.txt" | xargs grep -i LgMobile 즉, LGMobile, LGMOBILE, lgMobile을 가리지 않고 찾는다. - 현재 디렉토리 내 확장자가 txt인 파일들을 중에서 "홍길동"이라는 문자열을 갖고 있는 파일의 이름만 보고 싶다면 find . -name "*.txt" | xargs grep -l 홍길동 - 검색 결과에 다음과 같은 메시지가 포함된다면 grep: [특정경로]: No such file or directory 2>/dev/null 을 추가하면 해당 메시지를 표시하지 않고 찾은 결과만 볼 수 있다. 즉, find . | xargs grep 2>/dev/null 홍길동 - 모든 옵션은 함께 사용 가능하다. find . -name "*.txt" | xargs grep --color=auto -n 2>/dev/null 홍길동

oracle 캐릭터셋 설정바꾸기

#################################################### #### .bash_profile 환경변수     export ORACLE_BASE=/home/oracle     export ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1     export ORACLE_SID=ora10     export LD_LIBRARY_PATH=$ORACLE_HOME/lib     #export LD_ASSUME_KERNEL=2.4.19     export PATH=$PATH:$ORACLE_HOME/bin         export NLS_LANG=KOREAN_KOREA.KO16KSC5601       #한글     export NLS_LANG=KOREAN_KOREA.KO16MSWIN949    #한글(추천:지원캐릭터가 더 많음 -뷃,숖..)     export NLS_LANG=AMERICAN_AMERICA.UTF8           #유니코드     #################################################### #### 캐릭터 셋 설정 확인     SELECT NAME,VALUE$ FROM PROPS$ WHERE NAME ='NLS_LANGUAGE' OR NAME ='NLS_TERRITORY' OR NAME ='NLS_CHARACTERSET'; #################################################### #### 오라클 캐릭터 셋 변경     update props$ set VALUE$='UTF-8' where name='NLS_CHARACTERSET';     update props$ set VALUE$='KO16MSWIN949' where name='NLS_CHARACTERSET

좀비프로세스 죽이기

ps -ef | grep defunct | awk '{print $3}' | xargs kill -9

apache mpm 설정(펌)

1. 전제 조건 - apache 설치 시에 아래와 같이, 반드시   --with-mpm=worker  옵션을 설정 하고 설치한다.     이 옵션을 주지 않을 경우, Default인 Prefork방식으로 설치된다(Linux에 한함) ================================================================ ./configure --prefix=/home/paint/apache-2.2.15 --enable-mods-shared=all --enable-module=so --enable-so   --with-mpm=worker ================================================================ * 현재 worker 모듈 설치 되었는지 확인법 - "httpd -l" 명령으로 현재 설치된 Apache가 worker방식으로 설치되었는지 확인할 수 있다. ============================================ # httpd -l Compiled in modules:   core.c   worker.c   http_core.c   mod_so.c ============================================ 또는, httpd -V 명령으로 확인 가능하다. (V는 대문자) ============================================ # httpd -V Server version: Apache/2.2.15 (Unix) Server built:   Jun 30 2010 16:59:45 Server's Module Magic Number: 20051115:24 Server loaded:  APR 1.4.2, APR-Util 1.3.9 Compiled using: APR 1.4.2, APR-Util 1.3.9 Ar

Mysql 백업 및 복구

MySQL 백업 및 복구 - MySQL 디렉토리 전체를 압축 백업하기 mysql dir : /var/lib (데이터베이스 디렉토리) [root@byungun lib]# tar cvfpz mysql_dir_tar.gz /var/lib/mysql - 특정 데이터베이스 백업과 복구 백업 형식 : mysqldump -u DB계정명 -p DB명 > 저장할파일명 복구 형식 : mysql -u DB계정명 -p DB명 < 저장할파일명 # mysql DB 백업 [root@byungun DB_backup]# mysqldump -u root -p mysql > mysqldb.sql Enter password: # mysql DB 생성 [root@byungun DB_backup]# mysqladmin -u root -p create mysql Enter password: # mysql DB 복구 [root@byungun DB_backup]# mysql -u root -p mysql < mysqldb.sql Enter password: - 특정 데이터베이스의 특정 테이블 백업과 복구 백업 형식 : mysqldump -u DB계정명 -p DB명 Table명 > 저장할파일명 복구 형식 : mysql -u DB계정명 -p DB명 < 저장할파일명 # mysql DB Table 백업 [root@byungun DB_backup]# mysqldump -u root -p testdb testtable > testtable_table.sql Enter password: # mysql DB Table 복구 [root@byungun DB_backup]# mysql -u root -p testdb < testtable_table.sql Enter password: - 여러 개의 데이터베이스 한 번에 백업과 복구 백업 형식 : mysqldump -u DB계정명 -p --databases [옵션] DB

max Client 늘리기

apache 1.3.x 버전 대를 제외한 (1.3은 max값 1024으로 설정) apache 2.0.x, apache 2.2.x 에서는 max client 가 기본설정값인 150 으로 설정되어 있습니다. 따라서 max 값을 변경하고자 할 경우 다음과 같이 환경설정 파일에서 수정하면 됩니다. ※ apache 2.0.x, 2.2.x 서버는 worker 방식으로 동작하며, 컴파일시 자동으로 max 값은 패치되어 있습니다. 1. apache 2.0.x /usr/local/apache/conf/httpd.conf 에서 수정합니다. 〈IfModule worker.c> StartServers         2 -> 32 MaxClients         150 -> 1024 or 2048 값으로 수정 (max: 2048) MinSpareThreads     25 MaxSpareThreads     75 ThreadsPerChild     25 -> 64 값으로 수정 MaxRequestsPerChild  0 〈/IfModule> 수정후 apache 데몬 재시작 2. apache 2.2.x 먼저 /usr/local/apache/conf/httpd.conf 에서 419번째 줄쯤 Include conf/extra/httpd-mpm.conf 주석해제후 저장합니다. /usr/local/apache/conf/extra/httpd-mpm.conf 수정합니다. 〈IfModule mpm_worker_module>     StartServers          2 -> 32     MaxClients          150 -> 1024 or 2048 값으로 수정 (max: 2048)     MinSpareThreads      25     MaxSpareThreads      75     ThreadsPerChild      25 -> 64 값으로 수정     MaxRequestsPerChild  

DB LINK

'A' DB   --- DB Link --→ 'B' DB  (로컬)                          (원격지) 1. 로컬 'A' DB 의 tnsnames.ora 파일에 원격지 'B' DB 접속 정보 추가 ex) B_DB  =   (DESCRIPTION =     (ADDRESS_LIST =        (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.0.1) (PORT = 1521))     )     (CONNECT_DATA =        (SID = ORA9)     )   ) ※ 'B' DB 접속 정보가 올바르게 입력되었는지 확인 : tnsping 명령으로 확인할 수 있다. tnsping  B_DB 2. DB Link 설정 명령 CREATE [PUBLIC] DATABASE LINK  DB LINK 이름 CONNECT TO  유저명 IDENTIFIED BY  비밀번호 USING  '서비스 이름' ex) CREATE DATABASE LINK  DBLK_B_DB CONNECT TO  SCOTT IDENTIFIED BY  TIGER USING  'B_DB'   ※ tnsnames.ora 추가 없이 DB Link 설정하기 tnsnames.ora 에 원격지 'B' DB 정보 추가 없이 아래와 같이 CREATE DATABASE LINK 명령에 직접 기술함으로 추가할 수도 있다. ex) CREATE DATABASE LINK   DBLK_B_DB CONNECT TO   SCOTT IDENTIFIED BY   TIGER USING   '(DESCRIPTION =                (ADDRESS_LIST =                    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))             

UTF-8 설정

SELECT * FROM sys.props$ where name='NLS_CHARACTERSET'; update sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET'; update sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET'; update sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE';

오라클 DMP 생성및 복원

su - oracle //오라클 계정으로 변경(권한부여 반드시 '-' 사용) conn sys/as sysdba - 접속 * oracle dump파일 생성  ./exp system/manager owner=namo_pinetree file='/home/sysoper/namo_pinetree.dmp' 기본적으로 복원하고자 하는 대상이 되는 데이타 베이스의 테이블 스페이스는 export 받은 dump파일의 테이블스페이스와 스키마를 일치시켜야한다. 1. 테이블스페이스 생성 create tablespace sanrimji datafile '/home/oracle/oradata/webhosti/sanrimji.dbf' size 400M AUTOEXTEND ON NEXT 100M MAXSIZE 2000M online 2. 테이블스페이스 사용자생성 (기존 스키마와 동일하게 user명을 세팅한다.) create user sanrimji identified by "sanrimji" default tablespace sanrimji temporary tablespace temp; 3. 테이블스페이스 권한부여 grant resource, connect to sanrimji; 4. 테이블스페이스 조각모음 alter tablespace sanrimji coalesce; 5. dump Import ./imp userid=system/manager file='/home/oracle/dump/sanrimji.dmp' fromuser=sanrimji touser=sanrimji * 주석 테이블스페이스 삭제 > drop tablespace sanrimji; 사용자삭제 > drop user sanrimji cascade coalesce > extent가 할당/해제되다 보면 테이블스페이스내 free한 extent가 연

mysql 설정

mysql 설정 파일 : etc/my.cnf 1. 대소문자 구분해제 my.cnf 파일 mysqld 항목에 lower_case_table_names = 1 추가 [mysqld] ... lower_case_table_names = 1 <= 추가 2. utf8 설정 [client] ... default-character-set=utf8 [mysqld] ... character-set-client-handshake=FALSE init_connect="SET collation_connection = utf8_general_ci" init_connect="SET NAMES utf8" character-set-server = utf8 collation-server = utf8_general_ci -- 테이블 생성시  create table tempdbmanager ( profesor VARCHAR(200) null , major VARCHAR(400) null , research VARCHAR(400) null , doc VARCHAR(400) null , spc VARCHAR(400) null ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ==> mysql 재시작 killall mysqld mysqld_safe &