서버관리 삽질 기록 22

디스크 컨트롤러 샒

서버 장비에 RAID 컨트롤러가 달린게 한때 "우와 좋네"라고 생각했는데 지금 보니 영 아니다. 소규모로 운영하는 곳이라면 특히. 필자가 본 것이 구린 제품이라 그런지 모르겠지만. (참고로 HP e200i) 1. raid1로 묶은 것을 해제하고 각각 활용할 수 없음 -_-; 왜냐: 설정에서, logical drive를 삭제하는 순간 모든 데이터가 삭제됨. 2. 그냥 달아놓은 드라이브를 빼서 쌍둥이 서버에 넣는 것도 잘 안 됨. 왜냐: 설정에서 logical driver를 삭제한다고 하는 순간 모든 데이터가 삭제되니까 -_-;; 레이드 설정이 없는 드라이브로 그따위로 관리하다니. 3. 드라이브들 중 어떤 드라이브로 부팅할건지 선택 불가능 (...) 요즘은 PC에서도 되는거라구 orz 갈수록, 소규모 서버따..

서버에서 백업의 중요성

교수님께서 오늘은 실수로, 모든 강의자료를 삭제하셨다. 교수님은 서버에 자료를 보관하신다능... 그나마 다행인 것은, 새벽4시에 백업이 이루어진다는 것이다. 레이드만 믿고 있으면 하지 못하는 일임. good... 그러나 단 하루전의 모습만 저장되는 탓에 오늘 이 사건이 있은 후 7일치 분량까지 백업되도록 설정해두었다. rsync로 0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 이렇게 하나씩 밀리면서 백업되는 구조로 해두었다. 용량이 많이 들지만 끙... btrfs는 스냅샷 기능이 있으므로 안정화 되면 용량 낭비가 적게, 그리고 더 잦은 백업이 가능할 것이다.

학부 학생용 서버가 다운되었었다.

간단하게 전산실에 대한 소개 홈페이지 학부 위키 이 정도 있는 간단한 서버이다. CentOS임. 다른 서비스: 학부 유저들은 이 서버에... 1. ssh로 접속 가능. (sftp도) 2. ftp 접속 가능. 3. mysql database를 받을 수 있음. MySQL의 응답이 없어서 제로보드 기반의 홈페이지가 방법당했다. 안 되면 재시작 -> MySQL재시작이 안 되었다.... 에러는 안 뜨는데 뭔가 오래 걸렸다. 이것도 안 되면 재부팅... 재부팅이 안 되었다 ㄱ-;; 이것 때문에 서버가 뻗었다 -_-;;; MySQL을 부트과정에서 로드하는데 거기서 멎은 것이다! MySQL이 "에러나는 것"은 아니고 로딩이 "오래걸리는"것이라... 결국은 직접 학교로 가서 서버를 만져야 했다. 시나리오는 부팅CD를 넣..

UPS배터리 ㄱ-

무정전 전원 공급장치. UPS.uninterruptible power supply 이 배터리를 교체했다.Smart UPS 2200과 3000이었음.55만원. 3000은 하나는 잘 교체되었고, 다른 하나는 부품이 부식되어서 (ㄱ-) 오늘은 교체 실패. 부식된 것이 배터리 두 개를 잇는 구리철판같은 것이다.1mm x 2cm x 8cm정도 되려나? 2200은 1998년도에 구매한 것인데 이제 갈았으니... 2007년이니까 한 10년은 된것이다. 그런데 그 사이 중 배터리를 교체 한건지 안 한건지... 통조림이 썩으면 통조림이 부풀어 오르듯이 배터리가 부풀어올라있었다 ㄱ-;;; 기사님 혼자서 배터리를 못 빼서 낑낑거리는 것을 같이 1시간을 사투한 끝에 빼낼 수 있었다. 드라이버로 지렛대의 원리로 뽑다가 안 되었..

MySQL에러: Table 'xxx' is marked as crashed and should be repaired.

위키 글을 쓰다가 깜짝 놀랐다. 글을 적고나니까 이런 메시지가 출력되었다: 데이터베이스 쿼리 구문 오류가 발생했습니다. 소프트웨어의 버그가 있을 수 있습니다. 마지막으로 요청한 데이터베이스 쿼리는 "SearchMySQL4::update" 함수에서 쓰인 (SQL query hidden) 입니다. MySQL은 "145: Table './wikidb/eedoc_searchindex' is marked as crashed and should be repaired (localhost)" 오류를 냈습니다.어쩌노 http://blueb.net/blog/346 다행히 누가 이미 겪었다. 일단 자료 백업을 해놓고 들어가시오. DB의 바이너리파일 어딘가 복사. DB에서 mysql> repair table product; ..

Warning: SpamAssassin, Procmail 관련

어느날... 사용자들이 아웃룩으로 로그인이 안 된다고 불평했다.어떤 사람을은 되고... 사용자 DB, qpopper ... 여러가지를 다 건드려 봤는데 결국은 -_-;;/var/mail에 들어가서root로써...# mutt -f [메일박스]이렇게 로그인 안 되는 사람의 메일함을 열어보았다. 물론... 손상되었음 ㄱ-;;; 메일함을 삭제해서 메일을 다 버리긴 아깝고 -.-;;약간은 복구할 방법이 있다. 메일함의 첫 줄이From 뭐시기............ 로 되어있아야만 한다.http://wiki.mutt.org/?MuttFaq/Folder위 글을 읽어보세요...a 원인? 필자가 스팸어쌔씬을 설치한답시고 설쳤기 때문.분명 다른 서버에서는 성공했던 설정인데,...procmail을 통해 spamassassin..

메일의 Double Bounce

mailq를 쳐보고 깜짝 놀랐다. 600개의 메일이 queue에 있는데 이들 메일은 오갈 데 없는 메일이었다.주로 스팸메일임. 1) 원래 받기로 된 사람에게 보내려 치면 불가능. 메일함이 꽉 찼다든지, 존재하지 않는 계정으로 온 스팸메일이든지.2) 그렇데고 return메일을 보내기도 불가능. 유령 메일주소로 된 스팸메일이니까.이러면 loop겠죠 -ㅠ- 또, 이 서버로 온 메일이 배달되지 못하여 bounce메시지를 보냈는데 그 메시지가 다시 bounce 되 돌아온 경우가 있다 이게 double bounce다. 차라리 double bounce되면 좋지... 유령메일 서버라서 되려 Connection timed out 하면서 우리 서버가 몇 번 거기 접속을 시도하도록 만드는 경우가 있다. -ㅠ-;; bounc..

MySQL의 인코딩 문제

서버A에서는 euckr로 저장된 데이터를서버B에서는 UTF-8기반으로 저장하려고 한다. 서버A에서 euckr파일로 덤프를 받은뒤iconv를 이용해 utf-8로 변환하고 임포트 하는 방법을 써보았으나사람 이름...b5_김영조b5_김영수이 것이 인간인 나에게는 unique하고 중복되지 않는 항목이지만임포트 명령을 내리니까b5_김영??가 중복된다고 하면서 안 되는 것이었다 -_- 실제로 DB에 접속해서 내용물을 보니까 각 사람의 이름 마지막 글자가 사라진 상태로 DB에 인서트 되어있었다 -_-;; 일단은 euckr의 덤프를 그대로 (!) 서버에 삽입했다.그 때는 성공하더군...데이터가 깨져 보이는게 문제가 발생... ㄱ-;; 그럼 왜 사람 이름의 마지막 글자가 ??가 된 것인가?사람 이름을 수용하는 varch..

웹페이지 파일의 내용의 인코딩 문제

http://www.daybreaker.x-y.net/tt/index.php?pl=326 http://blog.naver.com/ssanzing2/140033597473파일의 이름은 변환했지만 그 내용은 변환이 되지 않았다. (당연히도.) 완전한 변환을 위해 노가다를 줄일 방법을 찾아내었다.필요에 의해 누군가는 만들어 놓을 법한 스크립트니까. 변환하고자 하는 파일들이 들어 있는 곳에 php파일을 배치시키고$ php conv2utf8명령을 내린다. 하위디렉토리까지 recurse할 것이다.

tar 파일 이름 인코딩 문제

시스템A에서는 euc-kr로 파일 이름이 지어져있는데, 시스템B에서는 utf-8로 파일 이름을 사용하게 되었다. 문제는 시스템A에서 파일을 가져올 때 발생했다. 시스템A의 디렉토리를 tar zcvf 로 압축을 했는데, 시스템B에서 압축을 해제하니 인코딩이 안 맞아서 한글로 된 파일 이름이 깨지게 된 것이다. 해결: convmv명령어를 사용한다. $convmv -f cp949 -t utf-8 -r 디렉토리명 -r은 recursion을 이용해 하위디렉토리의 것도 바꾸란 뜻이다. 파일 이름이 이상 없는 것 같으면 --notest 옵션도 붙여서 실제로 파일 이름을 변경하도록 한다.