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

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

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

Ubuntu 16.04 LTS 계정추가 쉘스크립트

우분투 16.04 LTS 서버 환경에서 계정 추가를 위한 쉘 스크립트이다. 사용자명과 비밀번호를 입력받아 처리한다. #!/bin/bash # Input username read -p “Enter Username: ” username # Input password read -s -p “Enter Password: ” password # Create user groupadd “$username” useradd -g “$username” -s /bin/bash -m “$username” echo -e “$password\n$password\n” | sudo passwd “$username” echo “Complete!” […]

Read More