Linux, Shell Script 2021. 9. 6.
Apache IP 주소로 웹서버 접근 제한
# # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for m..

Linux, Shell Script 2021. 5. 14.
오래된 로그 검색해서 지우기
오래된 로그를 한번에 지우고 싶을 경우 find의 -exec 옵션과 합께 사용하면 지울수 있다 이때 모든 조회된 로그가 한번에 지워지니 사전에 충분히 ls 명령어를 통해서 확인 후 삭제 해야 한다. #!/bin/bash path="/land/service/" expire_days=14 echo "Start deleteExpireFile.sh" # find ${path} \( -name "app*.log" -o -name "access*.log" -o -name "commissions*.log" -o -name "monthly_commissions*.log" \) -type f -mtime +${expire_days} -exec rm -f {} \; find ${path} \( -name "app*.log..

Linux, Shell Script 2020. 6. 27.
공개키 인증으로 SSH Password 없이 접속하기
공개키 인증으로 SSH Password 없이 접속하기 SSH Key 만들기 SSH Key를 통해서 서버에 접속시 Unix 계열에서는 ssh-keygen 명령어를 이용하면 된다. Window OS에서는 SSH Client 프로그램이 자체적으로 생성 제공하는 프로그램을 이용하면 된다. 여기서는 Unix 계열의 Key를 생성하는 방법을 기술 하도록 하겠다. ssh-keygen 사용하기 아래의 명령어를 입력하면 $HOME/.ssh Folder 밑에 Private Key 와 Public Key 가 생성이 된다. Key 생성시 3번의 사용자 값 입력을 받는다. Enter file in which to save the key (/Users/secuof/.ssh/id_rsa): Key의 저장 위치를 물어 본다. 이때 ..

Linux, Shell Script 2020. 6. 25.
Crontab 설치 및 사용법
Crontab installation and Usage Crontab 설치 - CentOS # cron 설치 sudo yum update -y sudo yum install -y cronie # cron 시작 sudo systemctl start crond # cron systemctl 활성화 sudo systemctl enable crond # cron systemctl 등록 확인 sudo systemctl list-unit-files | grep crond Crontab 설치 - Ubuntu # cron 설치 sudo apt update -y sudo apt install -y cron # cron 시작 sudo service cron start # cron systemctl 활성화 sudo syst..

Linux, Shell Script 2020. 6. 22.
ipset 이용하여 DDoS or DoS 방어 하기
최근 관리하고 있는 서버에 DoS성 공격이 유입되어 급하게 상단에 있는 HA Proxy에 Access Log를 기반으로 Request 횟수에 따른 IP Block 기능을 추가 하였다. 현재 서버 운영은 User --> HA Proxy --> Web Server 로 구성이 되어 있다. 전반적인 Process를 아래와 같이 처리 하였다. 1. Proxy 서버에서 ipset을 이용하여 iptables에 Source IP 차단 설정 2. 웹서버에서 Access Log 읽어 지정한 횟수 이상으로 Request 유입시 Block List로 체크 (매분 스크립트로 체크) # Proxy Server ipset 기능을 이용하여 list group을 white list, block list 이렇게 2개의 그룹을 생성 하였..

Linux, Shell Script 2020. 4. 5.
VIM 유용한 단축키 및 사용법
기본 단축키 # 일반모드 h : 커서를 왼쪽으로 이동 j : 커서를 아래로 이동 k : 커서를 위로 이동 l : 커서를 오른쪽으로 이동 w : 단어 단위로 뒤로 이동 $ : 현재 라인 맨 뒤로 이동 0 : 현재 라인 맨 앞으로 이동 ^ : 행 첫 글자로 이동 Ctrl + d : 아래로 반 페이지 스크롤 Ctrl + f : 아래로 한 페이지 스크롤 Ctrl + u : 위로 반 페이지 스크롤 Ctrl + b : 위로 한 페이지 스크롤 gg : 문서의 첫 행 이동 Shift + g : 문서의 마지막 행 이동 # 입력모드 i : 커서 위치에서 삽입 a : 커서 바로 뒤에서 삽입 o : 현재 커서 다음 라인 부터 삽입 p : 복사내용 삽입 x : 커서 위치의 문자 삭제 Shift + d : 현재 커서 위치의 문자..

Linux, Shell Script 2019. 9. 4.
process infomation 명령어(ps command) 오류시 대처 방법
Ubuntu를 VM으로 설치후 갑자기 ps 명령어가 아래와 같은 에러를 뿌리면서 동작하지 않았다. $ ps ps: error while loading shared libraries: libprocps.so.4: cannot open shared object file: No such file or directory libprocps4의 역할을 찾아 보니 xenial library이며, process information 정보를 뿌려주는 라이브러리에 속해 있는 library 파일이였다. https://packages.ubuntu.com/xenial/i386/libprocps4/filelist 이 파일이 왜 없어 졌는지는 정확하게 추적을 못하였지만 procps package를 apt 로 재 설치후 정상적으로 ..

Linux, Shell Script 2019. 6. 4.
Ubuntu / Windows 멀티부팅 순서 조정하기
Linux와 Windows를 같이 사용하다보면, 자동으로 부팅 순서가 Linux로 잡혀있어 PC를 공유 해서 사용하는 경우 윈도우만 사용하는 사용자가 있을 경우에 불편함이 있어 간혹 GRUB 부팅 순서를 조정해야할 경우가 있다. 수정을 원할경우 Linux로 부팅후 아래의 파일을 수정해 주면 된다. GRUB File 수정 $ sudo vi /etc/default/grub GRUB_DEFAULT=0 GRUB_DEFAULT 값을 조정해주면 원하는 값으로 선택되어 아무런 Action이 없다면, 부팅이 진행된다. 이때 윈도우 부팅 순서가 5번째에 위치할 경우(특별히 수정하지 않았다면, 5번째에 위치) “4”를 입력해 주면된다. 시작 값은 “0” 부터 시작한다. 참고 : Grub 주요 옵션 설명 GRUB_TIMEO..
Linux, Shell Script 2018. 8. 10.
echo로 바로전 명령 성공 여부 확인 (echo $?)
echo 명령어는 text를 출력하는 용도로 많이 사용되며, script를 작성할때 현재 상태에 대한 메시지를 보여주는 용도로 많이 사용된다. ~ echo This blog is Secuof Blog. This blog is Secuof Blog. ~ echo "This blog is Secuof Blog." This blog is Secuof Blog. ~ Script 를 사용할때 간혹 성공 여부를 체크 해야 할 경우가 발생하는데 아래와 같이 echo 명령어로 간단히 명령어의 성공 실패 여부를 확인 할수 있다. 가령 특정 directory를 이동할때 명령어가 성공하지 못하였다면 아래와 같이 “1”이 출력 된다. ~ cd /~~~~ cd: no such file or directory: /~~~~ ✘ ~..
Linux, Shell Script 2018. 7. 6.
Shell Script root로 실행 하였는지 확인 하기 (EUID / RUID)
Shell Script 작성해서 실행할 경우 root 권한인지 확인 해야 하는 경우가 발생한다. 이를 확인하기 위해서 구문 맨 윗쪽에서 if 구문으로 EUID를 확인해서 root 권한인지 확인 하면 된다. 그러기 위해서는 EUID에 대해서 먼저 알아야 한다. EUID / RUID 란? RUID : Real User ID 의 약어로 실제 사용자의 ID를 나타내는 값이다. EUID : Effective User ID의 약어로 어떤 유저권한으로 프로세스를 실행하고 있는지를 나타내는 값이다. shell script 파일을 실행하게 되면 Bash Shell은 항상 순차적으로 실행된다. 따라서 스크립트 맨 위에서 if 구문으로 root가 맞는지 확인 하면 된다. 참고로 Root의 EUID 값은 “0”이다. /etc..
