전체 글 402

[Bash Shell Script] 쉘 스크립트 trap 명령어를 이용한 시그널 제어

Bash Shell Script 에서 리눅스의 *시그널을 제어하는 방법 입니다. * 시그널 이란? 간단히 말하자면 특정 이벤트가 발생 했을때 신호를 보내 알려주는걸 뜻 합니다. 대표적인 예로 리눅스의 Ctrl+C , Ctrl+Z 를 눌러서 프로그램을 종료 또는 중지를 한다던가, 윈도우에서 Alt+F4 를 눌러서 종료한 적이 있을텐데, 이렇게 특정 입력이 들어 올 때 인터럽트가 발생하여 프로그램을 제어하게 됩니다. 리눅스의 시그널은 아래 표를 참고해주세요. 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE..

[Bash Shell Script] 로그 추출, 정리 쉘 스크립트 예제

로그 추출 및 정리 스크립트 입니다. 압축 되어있는 로그 파일을 꺼낸 후 필요한 기간, 날짜 또는 시간별로 로그를 뽑아낼 수 있는 스크립트로, 많은 서버들의 로그 파일을 특정 기간, 특정 날짜, 특정 시간대별로 추출할 필요가 있을 때 사용하시면 됩니다. 1. 스크립트 실행 환경 - OS : CentOS6.7 - Shell : Bash - 매일 logs_backup_년도-월-일.tar.gz 의 로그 압축 파일 생성 - 로그파일 내의 날짜 키워도는 날짜,월(영문표기),년도 (ex.31/Dec/2019) - 각 파일안에 들어있는 로그의 날짜가 일정치 않음 (3~7일 분량의 로그가 쌓일 경우) 아래 스크립트 안에서도 수정할 부분이 많이 있기 때문에 무작정 사용하시지 마시고 환경에 따라 수정 및 충분한 테스트 후..

[Bash Shell Script] 백업 용량 변동 출력 쉘 스크립트 예제

백업 파일의 용량을 가져온 후 이전의 백업파일과 용량 비교하여 백업이 정상적으로 잘 되었는지 편하게 확인할 수 있는 쉘 스크립트 입니다. 아래 스크립트로 용량 변동 결과를 파일로 떨군 뒤, 크론탭으로 매일 몇시에 메일 전송등을 사용하여 점검을 자동화할 수 있습니다. * 사용 환경에 따라 경로, 파일명(date 날짜 포함) 수정이 필요합니다. 스크립트 작성 환경 - OS : CentOS 6.7 - Shell : Bash #!/bin/bash date=$(date '+%Y-%m-%d') yesterday=$(date '+%Y-%m-%d' -d '1 day ago') cd /backup/log ## 백업 파일이 존재하는 경로로 이동 log=`find /backup/log -name *$date* -ls | a..

[Bash Shell Script] DNS 도메인/호스트 추가 자동화 쉘 스크립트 예제

아래의 모든 경로는 임시 설정하여 작성 하였습니다. 바로 실 서버에 적용하기엔 무리가 있으니, 실서버와 같은 환경의 DNS 서버를 구성 후 경로 변경 및 테스트 진행 후 적용하시기 바랍니다. * 사용 환경에 맞춰 경로, SOA 필드 값, 네임서버 등 변경이 필요 합니다. 스크립트 작성 환경 - OS : CentOS 6.7 - Shell : Bash - 패키지 : Bind 9.8.2 #!/bin/bash DIR=/root/test named_conf="/etc/named.rfc1912.zones" serial2=[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] echo "호스트 추가(1)" echo "도메인 추가(2)" echo -e "해당하는 번호를 입력 해주세요..

[Bash Shell Script] 쉘 스크립트 로딩 바 구현

배쉬 쉘 스크립트(Bash shell Script) 로딩 바 구현 코드 입니다. ## 로딩바 구현 코드 echo -ne '##### (33%)\r' sleep 1 echo -ne '############# (66%)\r' sleep 1 echo -ne '####################### (100%)\r' echo -ne '\n' 길이와 퍼센테이지는 편하신대로 바꿔서 사용하시면 됩니다. 단순히 저렇게만 구현하면 1초마다 퍼센테이지가 증가하게 되기 때문에, 로딩바가 동작하길 원하는 코드(ex. 반복문) 안에 if 조건문과 함께 넣어주면 됩니다. ex) 1부터 10까지의 숫자를 구하면서 로딩바 구현 #!/bin/bash for i in $(seq 1 10); do if [ "$i" == "1" ]; ..

[Python 3.7] 파이썬 FizzBuzz Test

파이썬의 피즈버즈 테스트(FizzBuzz Test)는 프로그레머의 기초 역량을 확인할 때 사용되기도 한다. 복잡하고 어려운 코드로 실력을 판가름 한다기 보다는 문제에 대한 이해력을 테스트하는 문제이고, 실제로 많은 프로그래머들이 실수를 한다고 한다. - 조건 1) 1부터 200까지의 숫자를 출력 한다. 2) 3의 배수는 숫자 대신 "Fizz" 를 출력한다. 3) 5의 배수는 숫자 대신 "Buzz" 를 출력한다. 4) 3과 5의 공배수는 "FizzBuzz" 를 출력한다. 위의 조건에 맞춰 간단히 프로그램을 만든다면 아래와 같다. for i in range(1, 201): if i % 3 == 0 and i % 5 == 0: ## 3과 5의 공배수를 확인, i % 15 == 0 으로 작성해줘도 상관 없다. ..

Programming/Python 2019.12.11

[CentOS6] Yum 에러 "Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again"

CentOS 6.7 에서 파이썬을 설치하려 했는데 에러가 발생했다. /etc/yum.repos.d/epel.repo 파일로 가서 baseurl 주석 해제, mirrorlist 주석 처리 하면 에러를 해결할 수 있습니다. 필자의 경우 가장 위의 3~4 라인만 변경 후 정상적으로 yum을 이용하여 설치할 수 있었습니다. 만약 전체 baseurl을 주석해제, 전체 mirrorlist를 주석처리 하고 싶다면 아래 명령어를 이용하시면 됩니다. sed -e '/baseurl/ s/^#*//; /mirrorlist/ s/^#*/#/' -i /etc/yum.repos.d/epel.repo 원래의 파일 내용으로 복원하고 싶다면 아래 명령어를 이용하세요. sed -e '/baseurl/ s/^#*/#/; /mirrorli..

[VMware] 인터넷 연결이 안될 때 체크 사항

VMware에서 인터넷으로 연결이 안될 때 일반적으로 진행해야할 체크 사항 입니다. 0. 오타로 인한 설정 미스 1. VMware NIC가 활성화 상태인지, 연결된 Mac Address와 Linux Mac Address 크로스 체크 우측 상단의 Device status에 포함된 두가지 옵션이 체크 해제 되어 있을 경우, 연결되지 않은것이기 때문에 체크 해주세요. 위의 상황이 아닐 경우 Advanced... 를 클릭 Mac Address를 잘 기억 후 Linux로 넘어갑니다. 미니멀 버전인 경우 ip addr 으로 확인을 하시고 아닌 경우 ifconfig로 Mac Address 를 비교하여 일치하는지 확인 해 줍니다. 만약 일치하지 않을 경우 Linux에서 Mac Address를 변경 하여 VMware M..

[VMware] CentOS 네트워크 설정 방법

VMware CentOS 네트워크 설정 방법 입니다. (CentOS 7.7 버전 기준) Centos7의 네트워크 설정만 보고 싶다면 3번만 보세요. 1. Virtual Network Editor (vmnetcfg.exe) 설정 지구본 모양의 vmnetcfg.exe 실행 Change Settings 클릭 후 관리자 권한 실행창이 나오면 허용 진행 상단의 VMnet8 을 클릭한 후 가장 하단 부분의 Subnet IP와 Subnet mask를 입력해 주고, 우측 중간의 "NAT Settings..." 를 클릭해줍니다.* 입력하는 IP는 사설 IP로 사용되기때문에 아무렇게나 넣어도 상관 없고, 위의 IP를 따라서 입력하셔도 됩니다. Gateway IP에 사용할 IP를 설정해 줍니다.1번은 호스트 OS (VMwa..

[VMware] CentOS 7.7 minimal 설치

CentOS 7.7 1908 버전 iso 다운로드 및 VMware에 CentOS 설치 방법 입니다. 1. CentOS 7.7 1908 iso 다운로드 CentOS 7.7 1908 iso 파일이 없다면 아래 링크를 참고하여 다운로드를 진행 합니다. https://nirsa.tistory.com/13 2. VMware 에 CentOS 설치 iso 파일을 다운로드 하는동안 VMware에 설치하기 위한 셋팅을 시작 합니다. 2-1 Create a New Virtual Machine 2-2 New virtual Machine Wizard 인스톨할 iso 파일을 정해주는 설정 입니다. 저는 다운로드가 완료되어 Installer disc image file 에 iso 파일 경로 설정을 해주었습니다. 아직 다운로드가 ..