2008년 07월 06일
Debian 자동으로 패키지 업데이트 하기... apt-get update, apt-get upgrade
귀차니즘을 때로는 사람을 공부하게(?) 만들기도 한다. 2년전 쯤 처음으로 Debian 3.0을 설치하고 쓰면서 떠오른 생각이 매번 서버에 접속해서 패키지 업데이트하는 작업이 귀찮게 느껴졌다. 그래서 스크립트로 하루에 한번씩 업데이트를 확인하도록 하면 좋지 않을까 하는 생각을 했다.
그 결과로 나온 것이 아래의 쉘스크립트이다. /etc/cron.daily 디렉토리 아래에 적당한 이름으로 만들어서 사용하면 된다. 나는 apt-upgrade라는 이름으로 만들어서 사용한다.
이 스크립트는 하루에 한번 설치할 패키지가 있는지 보고(update) 설치를 하게 되면(upgrade) 관리자에게 메일을 보낸다.
즉, 12번째 줄의 mail sakuragi ~~~, 이 부분의 sakuragi를 해당 서버의 관리자로 지정해주면 된다. sendmail을 사용할 경우에는 sakuragi@sakuragi.org와 같이 메일 주소를 적어주면 외부로 메일 발송도 가능하다.
이렇게 설정을 한 후, 패키지를 설치하게 되면 아래와 같이 메일이 도착한다. 물론 설치한 패키지가 없으면 메일도 오지 않는다.
그 결과로 나온 것이 아래의 쉘스크립트이다. /etc/cron.daily 디렉토리 아래에 적당한 이름으로 만들어서 사용하면 된다. 나는 apt-upgrade라는 이름으로 만들어서 사용한다.
간단한 스크립트이다. 4번째 줄의 apt-get dist-upgrade 부분은 apt-get upgrade로 바꾸어도 무방하다.1 #!/bin/sh
2
3 apt-get update > /dev/null
4 apt-get dist-upgrade -y > /tmp/upgrade
5 UPGRADE=`cat /tmp/upgrade | awk '{print $1 $3 $6 $10}' | tail -n 1`
6
7 if [ $UPGRADE -eq '0000' ]
8 then
9 exit
10 else
11 date=`date +%F_%R`
12 mail sakuragi -s 'Packages upgraded - '"$date" < /tmp/upgrade
13 fi
14
이 스크립트는 하루에 한번 설치할 패키지가 있는지 보고(update) 설치를 하게 되면(upgrade) 관리자에게 메일을 보낸다.
즉, 12번째 줄의 mail sakuragi ~~~, 이 부분의 sakuragi를 해당 서버의 관리자로 지정해주면 된다. sendmail을 사용할 경우에는 sakuragi@sakuragi.org와 같이 메일 주소를 적어주면 외부로 메일 발송도 가능하다.
이렇게 설정을 한 후, 패키지를 설치하게 되면 아래와 같이 메일이 도착한다. 물론 설치한 패키지가 없으면 메일도 오지 않는다.
"/var/mail/sakuragi": 1 message 1 new
>N 1 root Sun Jul 6 06:25 28/1159 Packages upgraded - 2008-
& 1
Subject: Packages upgraded - 2008-07-06_06:25
To: <sakuragi@localhost>
From: root <root@localhost>
Date: Sun, 06 Jul 2008 06:25:12 +0900
Reading package lists...
Building dependency tree...
The following packages will be upgraded:
libpcre3
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 199kB of archives.
After unpacking 0B of additional disk space will be used.
Get:1 http://security.debian.org etch/updates/main libpcre3 6.7+7.4-4 [199kB]
Fetched 199kB in 2s (81.6kB/s)
(Reading database ... 19939 files and directories currently installed.)
Preparing to replace libpcre3 6.7+7.4-3 (using .../libpcre3_6.7+7.4-4_amd64.deb)
...
Unpacking replacement libpcre3 ...
Setting up libpcre3 (6.7+7.4-4) ...
# by | 2008/07/06 22:49 | :: C space :: 컴퓨터 | 트랙백 | 덧글(9)
















