본문 바로가기

IT/linux53

linux haproxy 설명 및 haproxy.cfg 설정 방법 linux haproxy 설명 및 haproxy.cfg 설정 방법 haproxy는 고가용성, 고성능 TCP/HTTP 로드 밸런서 동작을 한다. 보통의 proxy 서비스는 TCP, load balance, routing 의 역할을 수행하지만 haproxy를 사용하게 된 이유는 다음과 같다. 1. 소스코드로 배포하여 임베디드 환경 등 플랫폼에 상관없이 사용할 수 있다. 2. config file 기반 설정이 용이하고 config 메뉴얼 배포가 잘되어있다. 3. HTTP routing 이 가능하다. 가장 중요한 3. HTTP routing 이 중요한 이유는 외부에 특정 포트만 노출하고(e.g. 80) 그 포트로 http/ws/unix socket 등 다양한 프로토콜을 라우팅 하기 위함이다. haproxy ro.. 2022. 1. 5.
svn add commit 전 취소 방법 svn add commit 전 취소 - linux, ubuntu, svn, add, commit, revert, 설명, 예제 svn add 상태일 때 원상태로 되돌리는 방법은 svn revert 명령을 사용하면 된다. 예제 - test_file 생성 > svn st > svn add > svn revert > svn st 확인 muabow@muabow-WorkSpace:~/project/$ touch test_file muabow@muabow-WorkSpace:~/project/$ svn st ? test_file muabow@muabow-WorkSpace:~/project/$ svn add test_file A test_file muabow@muabow-WorkSpace:~/project/$ svn r.. 2022. 1. 5.
linux git fatal: Not a git repository (or any of the parent directories): .git 오류 해결 방법 git [Not a git repository] 오류 해결 방법 git repository를 사용하기 위해 아래와 같이 디렉터리를 생성하고 git repository를 pull 하면 [fatal: Not a git repository (or any of the parent directories): .git] 오류가 발생한다. muabow@muabow-WorkSpace:~$ mkdir github muabow@muabow-WorkSpace:~$ cd github/ muabow@muabow-WorkSpace:~/github$ ls muabow@muabow-WorkSpace:~/github$ git pull https://github.com/muabow/home.git fatal: Not a git repos.. 2022. 1. 5.
linux find 를 이용해 파일 찾아 지우기 파일 찾아 지우기 리눅스를 사용하면서 많이 사용하는 find 를 통해 특정 파일 대상으로 -exec 를 통해 명령을 수행할 수 있다. 다른 글에 포스팅 했지만 리눅스 파일 내 텍스트 찾아 바꾸기도 find 의 조합을 이용한 것이다. https://muabow.tistory.com/180 리눅스 파일 내 텍스트 찾아 바꾸기 설명과 예제 리눅스 파일 내 텍스트 찾아 바꾸기 리눅스로 작업을 하다보면 높은 확률로 파일 내의 텍스트를 변경할 경우가 생긴다. 그것도 무척 단조롭고 많은 파일을 대상으로.. 예를 들자면 소스 코드 muabow.tistory.com 그렇다면 특정 파일들만 추출해서 삭제하는 것도 가능하지 않을까? 물론 가능하다. 예제와 함께 보자. # /opt 경로 아래에 "_test"로 끝나는 php .. 2021. 12. 31.
ubuntu apt-get remove 안될 때 조치 방법 ubuntu 패키지 및 apt-get remove 안될 때 가끔 deb 패키지 또는 apt 를 통해 설치한 패키지가 의존성 또는 설치 시 문제로 인해 삭제가 안되는 경우가 있다. 화면을 캡쳐하고 싶은데 지금은 오류난 패키지가 없어서.. 커널 버전 또는 운영체제 버전을 업그레이드 하거나 비슷한 패키지를 중첩해서 설치하면 더러 발생한다. 그런 상황에서는 apt-get remove 를 아무리 해도 삭제되지 않는다. 그렇다고 삭제 오류 또는 교착 상태에 빠진 채로 둘 수 없지 않은가. 패키지 설치/삭제 오류가 발생 했을 땐 다음과 같이 하자. dpkg 라고 하는 debian package 관리 명령어와 --force-remove-reinstreq 옵션을 이용하면 해결할 수 있다. sudo dpkg --force.. 2021. 12. 31.
linux svn status 중 ! 파일 전체 삭제 설명 및 예제 svn status 중 ! 파일 전체 삭제 svn commit 전 svn status를 통해 파일들의 상태를 확인하는데 상태가 !(느낌표)인 경우가 있다. 이는 repository 에는 파일이 존재하지만 local 에는 파일이 존재하지 않는다는 표시인데, 필요가 없어서 지운 파일인 경우에는 repository에서도 delete를 해줘야 한다. linux shell에서 svn 은 cli(command line interface) 특성상 delete를 하나하나 지정해줘야 하는 불편함이 있다. 몇 개 안되면 복사 붙여 넣기로 대충 처리할 텐데 수많은 파일이 삭제되고(!), 수많은 파일이 추가되고(A), 파일이 변경되고(M), repository에 없는 신규 파일이 생겼다던지(?) 그런 경우에는 delete 지.. 2021. 12. 30.
svn external link 제외 옵션 설명과 예제 svn external link 제외 옵션 svn을 이용하여 작업 시 checkout과 export 같은 repository로부터 데이터를 받아 와야 하는 경우가 있다. 하지만 repository 구성 중 external link 가 구성이 되어 있으면 원하지 않는 데이터까지 모조리 당겨 받는다. 본인의 업무 환경은 rootfs, target, build, package 같은 시스템 구성요소들을 external link 로 구성하는데 특정 시스템 소프트웨어를 수정하려고 별생각 없이 checkout 을 받다보면 하루 온종일 걸리는 경우가 많다. 물론 디스크 용량을 잡아 먹는것도 덤이다. 위와 같은 이유로 external link를 제외하고 svn target repository 만 받는 방법은, --ign.. 2021. 12. 30.
정규 표현식 목록 / Regular expression sheet 정규 표현식 목록 구문 의미/예제 . 임의의 한 문자를 나타냄 알파벳, 숫자, (-,*)등의 특수문자를 나타냄 [] 비교할 문자의 집합을 나타냄. ex) [abc]는 a,b,c 중에 한 문자를 나타낸다. * 앞에 지정된 문자는 집합이 0번 이상 반복됨을 의미 + 앞에 지정된 문자나 집합이 1번 이상 반복됨을 의미 ? 앞에 지정된 문자는 집합이 없거나, 있을 수 있음 {} 앞에 지정된 문자나 집합의 출현 범위를 지정함 .{1} : 임의의 문자가 한번 나와야 함 .{1,10} : 임의의 문자가 최소 1번 최대 10번 나와야 함 .{,10} : 임의의 문자가 최대 10번 나와야 함 .{1,} : 임의의 문자가 최소 한 번은 나와야 함 *?, +?, {}? 해당 정규식이 가장 최소로 일치하는 구간을 찾는다. 1.. 2021. 12. 29.