다음 이전 차례

2. 리눅스? 다시 깔아볼까 아님 그냥 놔둘까?

이번에 나온 AlzzA 6.0은 glibc의 버젼이 놀라가면서 기존의 버전에서 만든 프로그램과 열받지만 호환되지 않습니다. 그렇다고 다시 갈아엎기에는 그동안 공들인 시간이 아깝고... 한 예로 리눅스를 무지무지 좋아하는 한분이 알짜가 나오자마자 깔고 X의 그 환상적인 모습에 넋을 잃었습니다. 그러나 그것도 잠시... 그동안 만들었던 각종 프로그램들이 안돌아가고, 웹설정도 다시해야한다는 불안감에 쌓이게 되었죠. 그뒤로 한시간 뒤, 겨우겨우 웹설정을 끝내고 끝내 건물 수위아저씨의 등쌀에 못이겨 집으로 돌아가면서 상심에 잠겼다는 전설같은(?) 이야기를 여러분들에게 전해드리지 않을수가 없네요. 이제 리눅스는 설치면에서는 Windog보다 탁월하게 잘 깔린다는것을 여러분들도 잘 아실것입니다. 그러나 자신의 환경에 맞는 설정을 하는것은 오랜 경험과 시간을 요구 합니다. 웹서버의 경우, /etc/httpd가 가장 문제가 되고요, 계정서비스및 메일 서비스 를 하는 사람의 경우는 /etc/passwd,/etc/group, /home이 중요하죠. oracle의 경우는 /home/oracle이 중요하고, postgres의 경우는 /var/lib/pgsql이 중요하죠. 아, 메일도 빼먹을수가 없겠지요? /var/spool/mail입니다. 자, 한번 정리해 볼까요? 새로 업데이트 되기전에 한번쯤 백업을 해두어야 할 디렉토리 입니다.

/etc
/usr/local
/usr/src/redhat
/var/spool
/var/log
/var/lib
/home
/root

위의 디렉토리 말고도 관리자가 특별히 특정한곳에 넣어 둘만한 파일이 있는지 한번 생각해 보세요. 예를 들어 야한 사진 등이요. 제가 아는 사람의 경우 이곳에 넣더군요.

/usr/X11R6/lib/X11/fonts/misc/pics

흠... 좀 힘들겠죠? 뭐, 더 길게 만들어서 넣어두는 경우도 있지만여... 너무 샛길로 빠졌군요. 여하튼 이러한 경우가 몇몇사람들에게 확실히 있었으니, 조심하시기 바랍니다. 자아, 한번 가정을 해보고 OS를 업그래이드 해봅시다.

의뢰인 : "저는 200명의 계정을 관리합니다. 메일과 home, 그리고 웹을
          관리하고 있습니다. 그리고 /usr/local쪽에 특수한 프로그램들이
          몇몇 있습니다. 특히 sogoban의 경우는 확실히 실행되어야
          합니다. 뭐냐구요? 바둑프로그램입니다."

자, 이제 우리들은 이 의뢰를 받고 업데이트해주는 노가다맨(?)이 되는 것입니다. 일단 판단을 합니다. 이 상황에서 과연 얼마만큼 효율적으로 할 수 있을것인지요. glibc의 버전이 바뀌므로 일단은 shared binary들을 백업할 생각은 버리자. 단, static binary들은 수단과 방법을 가리지 말고 살리자. 그리고 소스가 있다면 이것또한 수단과 방법을 가리지 말고 백업해야 한다. 다음은 각 계정에 해당되는 home을 백업하자. 그다음은 /etc의 설정파일들을 백업하자. 그냥 passwd와 group만 백업해서 나중에 통곡하는 일이 없도록 해놓자. etc만큼은 정말이지 확실히 통째로 백업해놓는것이 좋습니다. 자신도 모르는사이에 설정을 딱 해놓았을지 모르기때문이죠. 저도 한 2 3번 정도 당하니깐 나중에는 꼭 백업을 합니다. 다음은 메일 spool디렉토리입니다. 이것또한 중요하죠. 메일에 목메다는 사람들이 꼭 한두사람 있기때문에, 중요합니다. 자, 일단 다른 하드또는 DAT같은것으로 백업을 두세군데 해놓으셨다면 이제 마지막으로 점검을 해봅시다. 이때 좋은 방법으로는 이상하게 사용하면서도 잘 쓰는 사람을 초빙해서 물어보거나 사용하는것을 지켜보는 방법이 있습니다. 뭐, 지우거나 박살내는 것은 관리자 마음이니깐.... 책임질 수 있으면 이제 컴퓨터를 끄고 업데이트할 CD를 넣습니다. 자, 리눅스를 10분안에 깔고 다음 root넣고 복구할 준비를 합시다. 한가지 우리가 먼저 계획할것이 있습니다. 바로 복구시간이죠. 복구시간이 오래걸리면 재미가 없겠죠? 짧으면 짧을수록 좋습니다. 반복학습을 하시면 좋겠지만, 그렇게 하면 관리직에서 내쫓길 위험성이 커지므로 한번 할때마다 목숨을 걸고 한다는 생각을 가지고 하세요. 저는 2시간을 드리겠습니다. 특정한 일없이 단순 업데이트의 경우, 2시간이면 충분합니다.


 !! 중요 !!  
설치시 RedHat 5.2에서 RedHat 6.0으로 업데이트 할때는 update가 아닌
새로운 install을 권합니다.

설치끝나고 전원을 올렸으면 이제 백업했던 자료를 옮겨올 일이 남았습니다. 이제 passwd 파일과 group파일을 /etc로 복사합시다. 이때 주의할점! 만약 shadow를 작동시키고 하면 안됩니다. 그리고 이전에 있던 passwd도 shadow가 되어있지 않은 파일 이어야 합니다. 그렇지 않으면 당신은 엄청난 실수를 범한것입니다. 자  shadow 사용할때는 pwconv shadow 제거할대는 pwunconv 주의하세요. 그다음은 root 암호를 바꾸십시오.

passwd root

왜 그러냐구요? 이전의 암호를 옮겨왔기 때문에 설치하면서 만든 암호가 무효화되기 때문입니다. 다음으로 할일은 home을 복사하고, 다음은 /var/spool/mail을 복사합시다. 자, 잘 되었는지 home디렉토리에 가서 ls -al 을 쳐봅시다. 각 디렉토리의 권한들이 각 유저들의 권한으로 되어 있습니까? 만약 그렇지 않고 root 권한으로 되어있다면? 당신은 또한번 크나큰 실수를 범한 것입니다. 백업할때 백업툴을 사용했다면 문제가 없을 것이고, tar를 사용해도 문제가 되지 않죠? cp를 사용하면? 이때는 옵션이 붙습니다. 간단하게 하는 방법!

cp -a /home /backup/

이러면 됩니다. 꼭 계정에 대한 권한이 제대로 살아 있는지 확인하십시오. 다음은 의뢰자님께서 /usr/local쪽의 복구를 의뢰하셨으니, 어디 봅시다. 일단 static binary의 경우는 그냥 전에 있던 자리에 놓으셔도 됩니다. 참, PATH가 바뀌어 있다구요?

/etc/profile

이것을 전에 있던 파일과 비교해서 바꾸어 주시기 바랍니다. PATH를 손봐주시면 됩니다. 자, /etc의 파일들과 현재 설치된 파일들을 비교해가면서 바꾸어 봅시다. 다음은 /etc/httpd/conf를 손봅시다. php를 사용할경우 꼭 풀어주어야 할 옵션이 있습니다.


# Extra Modules
#LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so
#LoadModule perl_module        modules/libperl.so

그리고 
# Extra Modules
#AddModule mod_php.c
AddModule mod_php3.c
#AddModule mod_perl.c

그리고
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps
#AddType application/x-httpd-php .phtml

이렇게 생긴것의 앞의 #(주석처리)를 제거하시고

/etc/rc.d/init.d/httpd restart

해주시면 끝입니다. 웹이야 /home/httpd/html 에 있으면 그냥 쓰면 되니까 문제될 것은 없을 것입니다. 특수한 경우는 이전의 설정파일을 보고 비교하시면 됩니다. apache의 설정은 버전이 업되면서 크게 바뀐점이 없기때문에, 그냥 사용하셔도 별무리는 없을 것입니다. 다음은 바둑프로그램... 요건 소스가 마침 공개되어 있기 때문에, 그냥 컴파일로 문제를 해결했습니다. 자  이제 남은 일은 뭘까요? 보안 설정? 요건 다음에 하기로 하구요, 긴급 복구는 여기서 끝내겠습니다.


다음 이전 차례