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 :: 컴퓨터 | 트랙백 | 덧글(12)
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
sendmail자세한 사용법을 어디서 찾을까요?
특히 인코딩 문제가 괴롭히네요....
저는 sendmail을 안 써서 자세한 사항은 모르겠네요. :)
저는 그냥 삽질한 건가요? = _=);;;;;
이라기보단 한글로 된 패키지 활용 정보가 없어서 패키지로 되어 있는 걸 많이들 구현하더라고요. 백업 스크립트도 그렇고... 자동화 처리해주는 패키지도 있는데.
그렇게라도 위안을 삼아야죠. :)
강제로 pacman -Syu 명령어 쓰게 해놨는데.. 이렇게 하는 방법도 있군요..
sakuragi님이 하신건 mail로 받게 되있네요.. 전 그냥 /var/log에다가 그냥 평범하게
기록만하게 만들어 놨다는...
이걸 어찌어찌 수정하면 자동업데이트가 되는것 같은데 (주석에 그러한 내용이 있어서요)
어떻게 해야할지 감이 잘 안잡히네요... 셸 스크립트는 깊이 사용해본 적이 아직 없어서요;;
혹시 한번 확인해봐 주실수 있나요?
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
참고 : http://www.debian-administration.org/articles/43#comment_9