본문 바로가기

ubuntu9

디렉토리별 용량 확인 방법 / linux du, find 활용 디렉토리별 용량 리눅스에서 디렉토리 용량을 확인하는 명령어는 du가 있다. 그리고 파일 또는 디렉토리를 탐색하는 find 명령어도 있다. 이 두개를 조합하여 디렉토리별 용량 조회하는 방법을 알아보자. 우선 du, 간단하게 소개하자면 파일(또는 디렉토리 등 대상)의 용량을 확인하는 명령어다. 자세한 내용은 아래 man page를 참고하면 되겠고 바로 예제로 들어간다. du - estimate file space usage https://man7.org/linux/man-pages/man1/du.1.html du(1) - Linux manual page man7.org 예제 1. du 명령어만 이용 root@muabow:/var/log# du . 4 ./samba/cores/smbd 4 ./samba/cor.. 2022. 1. 9.
[PHP] fileperms을 활용한 파일 탐색과 퍼미션 검사 fileperms을 활용한 파일 탐색과 퍼미션 검사 이전에 작성한 탐색기 함수를 이용하여 대상 경로의 모든 파일 중 사용자가 지정한 퍼미션이 아닌 파일을 배열로 반환하는 함수를 만든다. 공동 공간에서 작업을 하거나 서버 내 파일 생성/삭제 등 여러 파일을 제어하다 보면 퍼미션이 꼬이는 경우가 종종 발생한다. 특히 웹 서비스와 관련된 파일을 만들고 관리하다 보면 퍼미션으로 인해 웹 페이지에서 접근이 안 되는 경우가 많다. 그럴 때 일괄적으로 특정 경로의 퍼미션 체크를 할때 유용하게 사용된다. ▽ 파일 탐색기 함수 포스팅 https://muabow.tistory.com/249 [PHP] readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 op.. 2022. 1. 6.
[PHP] readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 readdir을 활용한 파일 목록 읽기 예제, 파일 탐색기 opendir, readdir, is_dir 함수를 사용하는 재귀 함수로 구성하였다. 디렉터리는 제외하고 파일만 조회하고 탐색된 전체 경로(full path)를 배열로 반환한다. 사용방법은 함수의 인자로 탐색할 경로를 명세하면 된다. https://github.com/muabow/home/tree/main/src/php/get_file_list GitHub - muabow/home: C/C++, PHP, GO source/library C/C++, PHP, GO source/library. Contribute to muabow/home development by creating an account on GitHub. github.com 소스코드 .. 2022. 1. 6.
[PHP] web shell 설명 및 예제 공유 web shell 설명 및 예제 공유 - web shell, 웹 쉘은 웹 페이지를 통해 shell을 사용하는 것을 의미한다. 보통 shell은 telnet, ssh 등 단말에 접속할 수 있는 프로토콜을 이용하여 접속하는데 개발 환경의 테스트, 현장 대응 등 여러 가지 이유로 백도어(backdoor, 개구멍)처럼 하나씩 숨겨놓기도 한다. web shell은 일반적인 서비스의 포트 스캐닝이나 별도의 검증 툴로 확인할 수 없기 때문에 오픈 되는 경우 문제의 인지를 할 수 없어 많은 사고를 야기한다. 그러므로 개발 중 테스트 또는 인증 절차를 통한 원격 지원용 정도로만 사용하자. https://github.com/muabow/home/tree/main/src/php/web_shell GitHub - muabow.. 2022. 1. 6.
[PHP] curl GET/POST Rest API 인증, 요청 및 JSON 응답 처리 방법 curl GET/POST Rest API 인증, 요청 및 JSON 응답 처리 방법 - php curl 요청(request) 및 응답(response)을 쉽게 처리할 수 있는 함수를 소개한다. php 에서 Rest API 서버에게 요청과 응답을 하기 위해 php curl 을 사용한다. php curl 사용 방법은 많지만 사용하기 쉽도록 함수를 만들어 보았다. php curl의 오류 검증, HTTP response 의 response code 검증, json decode 검증을 통해 정상적인 JSON response 데이터인지 검증한다. 그리고 오류 시 각 상황에 맞는 HTTP code의 message로 JSON 데이터를 구성한다. 사용 방법은 아래 소스 코드를 참고하자. https://github.com/.. 2022. 1. 6.
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.
[PHP] top 또는 ps 에 보이는 php 프로세스명 변경 방법 top 또는 ps 에 보이는 php 프로세스명 변경 방법 - cli_set_process_title() 리눅스 환경에서 top 또는 ps 시 현재 실행 중인 프로세스 목록을 확인 할 수 있다. 그 중에 php로 실행된 파일들의 이름은 [php /.../exec.php] 처럼 php 가 어떤 파일을 실행시켰다. 라고 명세가 되어 이게 어떤 프로세스인지 구분하거나 프로세스명으로 제어하는 명령어를 사용하기 어렵다. 그래서 cli_set_process_title()을 사용하여 프로세스명을 변경하여 사용한다. 함수 정의 - top 및 ps 에서 보이는 프로세스의 이름을 변경한다. CLI에서만 동작한다. cli_set_process_title(string $title): bool 예제 코드 : 프로세스명 변경 미적.. 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.