우분투 서버에서 uptime 체크 후 일정일 이상이면 자동 재부팅 스크립트
관리하는 서버가 많아지니 서버의 uptime 체크 후 재부팅하는 것도 일이다. 그래서 각 서버에서 cron 으로 uptime 체크 후 일정일 이상 경과했으면 보안패치 등을 적용하고 자동 재부팅하는 쉘스크립트를 작성했다. 실제 서버에 적용 전이라 오류를 확인해보진 않았다. 적용 후 오류가 발견된다면 코드를 수정할 예정이다.
#!/bin/bash
read -d. seconds < /proc/uptime
# 10일 이상 경과
DATES=10
UPTIME=24*60*60*$DATES
if (( $seconds > $UPTIME )); then
sudo apt-get -y update
#sudo apt-get -y upgrade
DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical sudo apt-get -q -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" dist-upgrade
sudo apt-get -y autoremove
sudo reboot
fi
코드에서는 10일 이상 경과했을 경우에 보안패치 등을 적용하고 자동 재부팅한다.
- 2018-09-18 16:00 업그레이드 때 설정파일 유지 등의 화면 표시가 되지 않고 자동 업그레이드 되도록 코드 수정