본문 바로가기

전체

[Linux] 파일 내용 정렬하기 Sort 파일의 내용을 정렬하고 그 정렬된 결과를 파일로 생성하는 방법 sort [대상파일명] -o [정렬된내용을저장할파일명] 동일한 파일에 sorted된 내용을 덮어쓰고 싶다면ex) sort a.txt -o a.txt를 하면 됩니다.
[Linux] 심볼릭 링크 변경하기 심볼릭 링크를 추가한 후 바꾸고 싶을 땐 2가지 방법이 있다. 첫 번째는 링크 삭제 후 재생성이고 두 번째는 링크는 유지한체 엔드 경로를 바꾸는 것이다. 두 번째에 대한 명령어(옵션) ln -Tfs [새로바꿀경로] [바꿀심볼릭링크] ex) ln -Tfs /sample/change_path/20161219 /root/user/change
[nohup] 프로세스 백그라운드 수행하기 리눅스 환경에서 오래걸리는 프로세스를 수행할 때 대부분 "&"을 사용합니다. [root@sample.server : /home/user]$ ./process.sh & 백그라운드 수행 [root@sample.server : /home/user]$ ./process.sh 포그라운드 수행 백그라운드로 수행하면 포그라운드와 달리 다른 작업들을 계속 진행할 수 있는 장점이 있습니다 그런데... exit 명령어 혹은 세션이 끊어질 경우 백그라운드로 수행되던 프로세스가 중단됩니다. 분명 &을 줘서 백그라운드로 수행했는데?? 이상하다 싶어 구글링을 해보니.. 원래 & 옵션은 백그라운드 수행이 맞지만 세션이 끊기면 자동으로 함께 프로세스가 죽는다는 것을 알게되었고 저 역시 경험을 하게되었습니다. 그렇다면.. 방법이 없을..
[Linux] 파일을 읽고 있는 상태인지 찾기 (lsof) 현재의 파일이 다른 프로세스에서 읽고 있는 상태인지 궁금하여 어떻게 체크할지 고민이었음처음에는 파일의 pointer를 알아볼까싶었는데 linux 명령어가 있었음 lsof lsof [파일경로] 예) lsof sample.xml // 결과 COMMAND PID USER ... add_sample 18955 seongtak ... 의 내용이 나타난다. 해당 sample.xml이 읽히는 상태가 아니면 아무것도 출력하지 않는다. 참고- https://www.lesstif.com/pages/viewpage.action?pageId=20776078
[Linux] Rsync 옵션 및 설정 Rsync ACL 등록하기- 일반 계정이 아닌 root계정으로 접근- sudo 명령어 사용 sudo vi /etc/rsyncd.conf rsyncd.conf 내용[사용될_이름_alias] comment //주석 path //절대 경로 read only uid gid max connection // 최대 접속 허용 수 timeout hosts allow hosts deny 수정후 재시작은?- sudo /etc/rc.d/init.d/xinetd restart 굳이 명령어를 수행 안해도 적용됨 테스트해보기- 허용한 ip에서 접근 명령어 rsync -avz 계정@HOST이름::RsyncAlias ./ rsync -avz [서버]::[모듈이름] [받을경로] 많이 쓰는 옵션-a : 아카이브 모드 , 모든 정보가 그..
[Java] Executor를 이용한 병렬 처리 자바 내부에서 여러 쓰레드를 생성하여 병렬로 수행해야할 때가 있다. 이 경우 Runnable이나 Thread를 직접 생성하는 경우가 있는데 이럴 필요 없이 java.util.concurrent의 패키지에 있는 코어 기능을 사용하는게 더 편하다. JDK가 1.5이상이면 사용할 수 있다. 정말 오래된 프로젝트가 아닌 이상.. 있더라도 제네릭을 쓰기위해선 1.5라도 올리는게 좋을 것 같다 Executors, ExecutorService : ThreadPool이라고 생각하면 된다. Callable : Runnable과 유사하지만 Runnable은 return값이 void이고 Callable은 작업할 내용과 리턴 값을 지정할 수 있다. Future : 비동기로 수행한 쓰레드가 수행한 결과를 담는다. 전체 샘플 코..
[MySQL] 쿼리 Process 확인하고 죽이기 개발 환경에서 인덱스를 제거할려고하니 이상하게 transaction wait timeout 때문에 쿼리가 실패하고 있었음 도대체 어떤 쿼리가 오랫동안 lock을 잡고 있었던 걸까? 확인이 필요했음 SHOW PROCESSLIST - 최근에 수행한 쿼리들의 목록을 볼 수 있는 쿼리 - 이 중 State 컬럼의 내용 중 Sending data이라는 상태 값이 있다 대부분 이녀석이 범인인데 Info의 내용을 보고 테이블과 관련있는 쿼리인지 확인이 필요하다. - 롱쿼리나 더 이상 수행이 필요하지 않다면 Id 값을 보고 프로세스 수행을 죽인다. -- ID값을 넣으면 된다. KILL 36581 해당 테이블에 대한 인덱스 제거 쿼리를 수행하면 바로 수행이 끝나는 것을 확인할 수 있다. 그래도 역시 주의해야할 것은 수행..
[MySQL] 테이블의 용량 확인하기 개발환경에서 빅데이터 저장을 연동하다보니 나도모르게 하드디스크 용량이 가득차버린 현상이 있었습니다. 어느 테이블이 문제인지는 짐작이 되지만 정확이 알고 싶어서 구글링해보니 확인할 수 있는 쿼리가 있었습니다. 각 테이블 용량 확인 SELECT (data_length+index_length) tablesize,(data_length+index_length)/power(1024,3) tablesize_gb, information_schema.tables.* FROM information_schema.tables WHERE table_schema='내테이블스키마' ORDER BY tablesize DESC; 전체 테이블 용량 합 SELECT TABLE_SCHEMA AS `Database`, SUM((data_l..
[PHP] strrpos 함수의 offset 인자 우연히 문자열 시작 단어를 필터링할 필요가 있었음 구글링해보니 Java의 startsWith, endsWith와 같은 함수를 구현한 글이 있었음 - http://stackoverflow.com/questions/834303/startswith-and-endswith-functions-in-php 내부적으로 strrpos를 사용하고 있었음, 이 함수는 찾고자하는 문자($needle)의 마지막 위치를 반환하는 녀석이었음 - http://php.net/manual/kr/function.strrpos.php 그런데 offset의 인자를 메뉴얼에서 읽으니 잘 이해가 되지 않는다, 양수에 대해선 이해가되는데 음수인 경우는? 직접 테스트해봐야겠다. Offset이 없을 경우 $strrpos_text = 'abcdeab..
[MySQL] 테이블을 지우지도 만들지도 못할 때.. 테이블만이라도 복구하기 무슨 이유인지..? 개발 환경에서 MySQL 시스템이 이상해졌음 개발 실력 부족으로 원인은 모르겠고 데이터 복구도 어려워보여 테이블이라도 살려보기로 함 우선 에러를 보자 CREATE TABLE foo( id INT(10) UNSIGNED NOT NULL DEFAULT 0 ) ENGINE=InnoDB; - 위의 테이블을 다시 만든다고 가정했을 때 아래와 같은 에러가 발생한다. // 처음 시도시 Lookup Error - MySQL Database Error: Table 'foo' already exists // 이후 시도시 Lookup Error - MySQL Database Error: Can't create table 'foo' (errno: -1) - 에러 내용만 보면 ..뭐지? foo라는 테이블이 ..