본문 바로가기
반응형

IT/LINUX38

리눅스 0 byte 빈파일 만들기 같은 로그 파일을 이용해서 매분마다 어떤 작업을 실행하고 이력을 로그 파일에 기록합니다. 다음 작업때는 이전 이력 내용이 필요없는 경우가 있습니다. 또 이력이 누적되면 파일 크기가 엄청 커지기땜에 실행할때마다 쉘스크립트 시작부분에 로그 파일 내용을 다 지우고 크기가 0인 새파일로 만들어야 될때가 있더라구요.^^;; 리다이렉트 기호 > 를 이용하면 됩니다. > 는 오른쪽의 출력값을 왼쪽 입력값으로 보내는 특수문자(메타문자)입니다. echo "hello" > 파일 > 는 기존 내용을 다 지우고 첨부터 데이타를 파일에 기록합니다. 근데 echo > 파일 이렇게 해도 크기가 0byte가 안됩니다. 왜냐하면 echo 명령어는 기본적으로 엔터값(/n)이 들어가더라구요.흑 echo > 파일 ls -al 파일명 -rw.. 2020. 9. 10.
리눅스 RPM YUM 그리고 APT-GET DNF 사용법 레드핫 계열의 프로그램을 설치,업데이트,삭제 등을 할때 RPM를 사용합니다. RPM - Redhot Package Manager RedHot사에서 패키지 관리를 위해 개발한 툴입니다. rpm 파일이라고 윈도우 setup.exe 처럼 프로그램을 설치하기 위한 파일이라고 생각하시면 될거에요. rpm 파일에 대해서 알아볼게요. 1. 패키지명 2. 주버전 3. 보조버전 4. 수정버전 5. 배포버전 6. 아키텍처 x86_64 는 64bit 패키지 파일을 의미하고 이 외에 다른거는 32bit 패키지 파일입니다. 그리고 rpm은 좀 불편한게 있습니다. ^^;;많이 들어보셨을거에요. 의존성 때문입니다. 어떤 패키지를 설치하는데 최종 패키지 버전을 설치하고 싶은데요..이 최종 패키지를 설치 할려고 이전 버전의 패키지가 .. 2020. 9. 5.
리눅스 무한루프 빠져나오기 로드러너로 부하테스트 하면 좋겠지만 큰 프로젝트가 아니면 비싸서 구매할수가 없어요. 말하기도 부끄럽지만 셀프 로드러너를 하나 만들었어요.ㅋ 로드러너의 많은 기능중에 부하발생 기능 하나만 필요했습니다. 핵심인 어댑터 기능을 하는 서버를 개발하고 이 서버가 몇 TPS까지 지연되지 않고 처리할수 있는가를 확인하기 위한 성능테스트를 위함입니다. 먼저 어댑터를 호출하는 테스트용 클라이언트 서버 (이하 tstSV)를 만듭니다. 쉘 환경에서 무한루프를 돌려서 tstSV를 실행시킬거에요. 쉘환경에서 무한루프 실행방법 4가지 적었습니다. 참고하세요. 무한루프 실행방법1 while : do tstSV done 무한루프 실행방법2 while true do tstSV done 무한루프 실행방법3 while [ 1 ] do t.. 2020. 9. 4.
리눅스 UTF-8 EUC-KR 인코딩 변환 다양한 외부 서버들과 통신하면서 주고 받는 파일이나 데이타가 생기게 될거에요. 이럴때 캐릭터셋에 대해 꼭 협의를 하게 됩니다. 웹서버와의 통신할때는 UTF-8 과 CP949로 정하고 DB 작업할때는 MS949 내부 서버와의 통신시에는 EUC-KR로 주로 결정하더라구요. 어쨌든 서버에서 사용하는 캐릭터셋으로 변환해야 될때가 많아지더라구요. 이럴때 C언어 내장함수로도 존재하지만 리눅스 쉘 환경에서도 간단하게 사용할수 있는 명령어가 있습니다. 명령어 iconv 입니다. 기본 사용법 iconv -f [대상캐릭터셋] -t [변환할캐릭터셋] 파일 iconv -f UTF-8 -t EUC-KR 파일 파일은 UTF-8 인코딩된 파일이어야 됩니다. 파일은 어떤 인코딩 파일인지 확인할려면 file 명령어를 사용하세요. fi.. 2020. 9. 3.
리눅스 문자열 검색 grep 명령어 몇년전부터 IT 회사들은 유닉스에서 리눅스로 성공적인 다운사이징을 이뤘어요. 저도 HP 유닉스에서 Redhot 리눅스로 전환되는 과정을 지켜볼 기회가 생긴거에요. 새로운 환경의 설레임도 잠시... 로그 파일에서 데이타 검증을 위해 key 역할의 문자열로 grep 명령어 실행을 통해 추출된 데이타로 검증하는 중에 이상한 현상을 보게 됩니다.^^;; 확인되지 않았으면 큰실수가 될뻔했조.휴~~ grep 은 파일이나 문자열에서 찾을 특정 문자열[pattern]이 매핑되는 해당 라인의 내용을 모두 표시하는 명령어입니다. 기본 사용법 grep [option] [pattern]「파일 or 문자열」 grep "key" 파일 옵션 사용법 grep -a "key" 파일 바이너리 데이타를 텍스트 데이타로 처리. 서론에서 말.. 2020. 8. 31.
리눅스 SORT 명령어 정렬하기 가끔씩 업무를 하다보면 많은 양의 데이타를 특정 필드나 값을 기준으로 정렬해서 제출해야 되는 일이 생기조.^^;; 오라클 DB 테이블이면 쿼리문에 order by 로 간단하게 정렬 하면 되고요. 리눅스 서버 환경에서는 sort 명령어로 정렬이 가능합니다. 시작합니다. 기본 사용법 sort 파일 또는 cat 파일|sort 첫번째 문자부터 오름차순으로 정렬 만약에 문자가 동일하면 다음 문자를 기준으로 오름차순 정렬합니다. 옵션 사용법 -r : 내림차순으로 정렬 sort -r 파일 다른 옵션들과 함께 -r 옵션을 사용하면 무조건 내림차순으로 정렬됩니다. -n : 문자를 숫자형으로 인식해서 정렬 sort -n 파일 만약에 숫자가 아닌 문자가 있을경우에는 숫자까지만을 숫자형으로 인식하고 뒤로는 문자의 내림차순으로.. 2020. 8. 30.
리눅스 프로세스 기동 시간 365일 늘 기동되어 수행중인 프로세스가 있어요. 송신 서버에서 보낸 데이타를 수신 서버로 데이타 변형없이 그대로 전달하는 프로세스입니다. BY PASS 처리한다라고 말해요. 시간이 지나면서 바쁜일도 생기고 다른 업무에 집중하고 하다보면 모니터링에 소홀해지고 점점 기억에서 잊혀지게 있더라구 ^^;; 갑자기 수신 담당자에게 연락이 와서 며칠전부터 오류가 난다거나 뭔가 데이타가 꼬인다거나 등의 오작동에 대해 문의 올때가 있더라구요. 그래서 우리 프로그램에 뭔가 문제가 있는지 확인을 정확히 해야 되더라구요. 소스도 보고 그동안 변경했던 이력들. 누구 프로그램 마지막에 수정했고 언제 배포한건지 등 여러가지 확인해야 되는데요. 검토해야 될 사항이 많은데 그중에서 가장 핵심부분이 바로 이 프로세스가 정확히 언제.몇.. 2020. 8. 29.
대용량파일 문자열검색 리눅스 명령어 fgrep TPS 높거나 데이타 사이즈가 큰 업무를 처리하는 프로세스를 운영하다보면 로그파일 한개 사이즈가 수십 기가바이트 또는 많게는 2~3백 기가바이트까지 사용하는 경우가 생기기도 해요. 이렇게 용량이 큰 파일에서 문자열을 검색하게 되면 서버에 부하를 가중하게 되면서 프로세스가 느려지거나 처리를 못하고 에러가 발생하는 상황이 종종 생기게 되더라구요. 아..ㅋ 당연히 로그파일을 작게 생기게끔 로그 파일 생성 스케줄링을 잘하면 될거에요. 하지만 일 하다보면 관리가 안되는 케이스도 본의아니게 생기조.ㅋㅋ 테스트용으로 일시적이라던가 또는 이벤트용 업무들은 정규 프러세스 규칙에서 예외처리 해야 되는 경우도 있고 등등... 시키는데로 해야 되는 입장이라 ㅋ 암튼 보통 문자열 검색시 grep 인데요. grep 명령어는 내부.. 2020. 8. 28.
리눅스 계정 암호 만료일 확인 보안의 중요성이 커지면서 대부분 서버의 사용자 계정에 대해 암호 변경 주기, 암호 복잡도 등 암호 정책들이 리눅스 서버에 적용되는 추세더라구요. 서버에 접속하기 위해선 계정과 암호는 반드시 알고 있어야 되조. 내가 관리하거나 사용하는 서버가 한두개면 그냥 기억하면 되지만 만약에 수십~수백여개의 서버에 접속해야 된다면 다 외울수도 없을뿐더러 기록해서 관리하는것도 번거롭고 힘들게 되요. 쉬운 방법으로 모든 서버의 계정과 암호를 한가지로 통일하면 되겠조.ㅋ 사실 그래서 왠만하면 업무 전용 계정을 만들고 암호도 동일하게 맞춰놓고 사용했어요.ㅋ 근데 보안상의 이유로 각 서버마다 암호 정책이 한두군데씩 적용되고 시간이 지나면서 대부분의 서버에 적용되었더라구요. 그리고 당연히 각각의 서버 관리자들이 알아서 정책 적용.. 2020. 8. 27.
crontab 쉘스크립트 실행 안되는 현상 무한루프를 이용해서 반복적인 실행이 필요한 프로그램은 항시 기동되어 있조. 그럼 CPU나 메모리 등의 자원을 차지해 서버에 부담을 주게 될거에요. 매일 몇시 로그파일을 지우기 매달 1일에 전달 통계자료 생성 매년 1월 1일에 대사 작업 실행 등등... 리눅스에는 이러한 주기적인 또는 반복적인 실행을 대신 해주는 아주 소중한 crontab 이 있습니다. crontab -e 명령어로 등록,수정을 해요. 예) 매분 test.sh 쉘스크립트를 실행할려면 아래 처럼 등록 하면 되요. * * * * * test.sh 분 시 일 월 요일 프로그램 crontab 사용시 꼭 알아야 될 두가지가 있어요. 이걸 모르면 실행시 오작동이나 실행이 안될수도 있어요. crontab 은 crond 라는 시스템 데몬에 의해 수행됩니다.. 2020. 8. 23.
리눅스 방화벽 오픈 확인 명령어 Telnet 무조건 한번쯤은 꼭 해봐야 되는 프로그래밍이라면 바로 네트워크 통신 프로그램이라고 생각해요. C언어 , JAVA , Python 등등.. 어떤 프로그래밍 언어라도 통신 스펙을 간단하게라도 꼭 보게 되더라구요. TCP , UDP , IP , Socket , IP , PORT , Firewall ... 기본적으로 알아야 될 용어나 개념이 많은데요. 글 주제에 맞게 다 Pass 할게요. ^^ 네트워크 프로그램은 크게 Server 역할을 하는 프로그램들과 Clinet 역할을 하는 프로그램들로 구성되어 있습니다. Server는 Server 프로그램이 설치된 장비 IP와 Client 연결 요청을 받는 PORT가 지정되고 Client는 Server의 IP와 PORT를 미리 인지하고 연결 요청을 수행하는게 통신의 기본.. 2020. 8. 22.
리눅스 권한과 소유권 . 숫자모드와 문자모드 리눅스를 사용하기 위해서는 반드시 알고 있어야 되는 개념이 있습니다. 바로 파일(file)과 디렉터리(directory)에 대한 권한과 소유권이에요. 제목 그대로 개념 자체는 쉬워요.ㅋ 그럼에도 불구하고 업무중에 가끔씩 같은 그룹인 거 같은데 왜 내 계정으로 수정을 못하지? 하는 질문에 막히는 경우가 있더라고요. ^^;; 그래서 꼭 알고 넘어가야 될거 같아서 나름대로 간단하게 정리합니다. ls -l 명령어로 해당 디렉토리 안의 내용을 보면 앞부분에 권한에 대한 정보가 있어요. 권한 소유자 그룹 size 날짜 이름 drwxr--r-- owner1 group1 1234 Mar 28 2020 FOLD1 ------- ① drwx------ owner1 group1 1234 Mar 28 2020 FOLD2 --.. 2020. 8. 20.
반응형