웹서버 상태 체크 후 자동 재시작 쉘 스크립트

사용하는 가상서버의 문제일까? 간혹 nginx 웹서버가 다운되어 블로그 접속이 불가능한 경우가 생긴다. 근데 이런 일은 꼭 새벽에 발생한다. 오늘도 어김없이 새벽에 그런 일이 발생했지만 깊은 잠에 빠져있던 때라 아침에 일어나서야 확인하고 조치할 수 있었다. nginx 만 재시작하면 되는 간단한 일이다. 그래서 서버 상태 체크 후 자동으로 서버저를 재시작하는 스크립트를 만들어 봤다. 응답코드가 200 이 아니면 […]

Read More

jenkins 에서 git, scp 를 이용한 파일 배포

jenkins 를 이용해 github webhook 을 이용해 배포를 자동화하는 것을 지난 번에 테스트했다. 이번엔 배포 스크립트에 기능을 좀 더 추가하여 git 을 이용해 수정된 파일의 목록을 구하고 이 파일들만 서버에 배포하는 스크립트를 테스트해본다. 일반적으로 전체 파일을 scp나 rsync 를 이용해 배포하게 되는데 파일이 많을 경우 배포에 시간이 오래 걸릴 수 있기 때문에 수정된 파일만 목록을 […]

Read More

우분투 18.04 서버 nginx, php 7.2.x, mariadb 10.3.x 설치 스크립트

우분투 18.04 서버 환경에 nginx, php 7.2.x, mariadb 10.3.x 의 최신 버전 설치 스크립트이다. ufw 기본 방화벽설정 및 redis 서버도 추가 설치한다. #!/bin/bash # ======================================================================= # # nginx, php 7.2.x, mariadb 10.3.x install shell script for Ubuntu 18.04 # ======================================================================= # # Copyright (c) 2018 Seongho Jang https://ncube.net # This script is licensed under MIT […]

Read More

우분투 서버에서 uptime 체크 후 일정일 이상이면 자동 재부팅 스크립트

관리하는 서버가 많아지니 서버의 uptime 체크 후 재부팅하는 것도 일이다. 그래서 각 서버에서 cron 으로 uptime 체크 후 일정일 이상 경과했으면 보안패치 등을 적용하고 자동 재부팅하는 쉘스크립트를 작성했다. 실제 서버에 적용 전이라 오류를 확인해보진 않았다. 적용 후 오류가 발견된다면 코드를 수정할 예정이다. #!/bin/bash read -d. seconds < /proc/uptime # 10일 이상 경과 DATES=10 UPTIME=24*60*60*$DATES if […]

Read More

[쉘스크립트] 텍스트파일의 라인을 읽어 ip와 id 구분하기

텍스트 파일의 각 라인을 읽어 해당 라인에서 ip 와 id 를 구분해서 출력하는 코드이다. 텍스트의 파일은 아래와 같은 형식이다. ip 와 이름-id 는 탭으로 구분된 상태이다. 192.168.10.100 홍길동-gildong 192.168.10.101 김철수-kcs0297 쉘스크립트 코드는 아래와 같다. #!/bin/bash IPS=() IDS=() i=0 while IFS=” read -r line || [[ -n “$line” ]]; do IFS=$’\t’ tmp=($line) IPS[${i}]=${tmp[0]} str=${tmp[1]} IFS=$’-‘ tmp=($str) […]

Read More