'서버관리팁'에 해당되는 글 2건

  1. 2015.02.22 [와이즈기가] DOM 영역 확장 스크립트
  2. 2015.01.03 서버 셋팅시 유용한 팁 7가지








안녕하세요! 현이 입니다^^

 

와이즈기가 카페에도 있는 자료이지만 백업 포스팅입니다~ㅎ

 

 

오늘은 초보분들에겐 좀 큰거 들고 나왔습니다....

 

리눅스 중급 유져 이상 혹은 Linux를 사용하고 게신 분들은 이 방법을 통하여

 

돔 확장을 하셔도 되리라 생각이 들어서 그냥 공개하려구요

 

아참 이거 메모장으로 복사하지 마시구요 올려드리는 첨부파일 받으셔서 NAS에 올리셔야 합니다

 

사실 거장한건 아니구.... 일일이 손으로치기 귀찮아 반자동화 스크립트 입니다..ㅎ

 

우선 스크립트 내용입니다..ㅎ

 

domcopy.sh


#!/bin/sh

 

#* 디랙토리 선언 *#
wr="/home/domcopy/root-extender/"
wh="/home/domcopy/home-extender/"

 

#* 디랙토리 생성 및 내용 지우기 *#

mkdir -p /home/domcopy/
rm -rf /home/domcopy/tmp1
rm -rf ${wr}/
rm -rf ${wh}/
mkdir -p ${wr}
mkdir -p ${wh}

 

#* 스크립트 시작 *#
echo "DOM 영역 확장 프로그램 입니다. "
echo -n "사용하시는 분의 영문 닉네임을 적어주세요. : "
read name
echo -n "이미지화할 모델의 숫자만 입력해 주세요 : "
read model

 

#* fdisk -l 등으로 사전 조사도 해보시기 바랍니다... *#

echo "먼저 USB에 DOM을 삽입 후 몇번 디스크로 잡혔는지 체크해 주세요"i
ls --color=always /dev/sd*

echo -n " /dev/sd 뒤의 단어를 입력해 주세요 : "
read dl
echo "/dev/sd${dl} 가 DOM으로 지정되었습니다"
echo "확장할 USB를 삽입 후 몇번 디스크로 잡혔는지 체크해 주세요"
ls --color=always /dev/sd*
echo -n " /dev/sd 뒤의 단어를 입력해 주세요 : "
read ul
echo "/dev/sd${ul} 가 확장 USB으로 지정되었습니다"
echo "DOM to HDD 이미지화를 시작합니다."
DOM="/dev/sd${dl}"
USB="/dev/sd${ul}"
IMG="/home/domcopy/${name}-${model}.img"

 

#* DD로 우선 하드에 이미지를 복사합니다. *#

dd if=${DOM} of=${IMG}
echo "이미지화가 끝났습니다."

 

#* 해당 디바이스를 tar로 묶은 후 나중에 USB에 덮어서 풀 예정입니다. *#

echo "확장을 위해 파일 압축을 시작합니다."
mount ${DOM}2 ${wr}
sleep 1s
mount ${DOM}3 ${wh}
cd /home/domcopy/
tar zcf ${name}-root-extender.tar.gz root-extender
tar zcf ${name}-home-extender.tar.gz home-extender
echo "압축이 끝났습니다."
umount ${DOM}2
umount ${DOM}3

 

#* 사실 이 부분을 한방에 해낼 자신이 없어 돌려치기 한 이유도 있구오...*#

#* 나중을 위해 백업파일을 생성하기 위해 돌려친 이유도 있네요;;; *#

#* 또한 부트영역은 dd로 쓰거나 grub을 이용해 심는 방법 둘 중에 하나를 써야 하는데;... *#

#* chroot를 통해 해당 시스템에서 부트로더를 심으려다 뭔가좀 찜찜하여 dd 를 사용하였습니다. *#

echo "USB에 DOM 이미지를 풀겠습니다."
dd if=${IMG} of=${USB}
echo "확장서비스를 시작합니다."

#* 이부분이 중요합니다. 우선 system 영역과 3번째 파티션을 날리는데... 두번째 파티션의 시작 부분을 *#

#* 찾아서 우선 파일로 저장해 주는 부분입니다.. 꼼수죠... *#

parted ${USB} print | grep "boot" |  awk '{print $3}' > /home/domcopy/tmp1
parted ${USB} rm 2
parted ${USB} rm 3

#* 아까 저장햇던 부분을 읽어와 첫 부분을 지정 후 해당 디바이스의 95% 까지 /로 잡습니다.

parted ${USB} mkpart p ext3 $(cat /home/domcopy/tmp1) 95%

#* 나머지 부분입니다.. *#

parted ${USB} mkpart p ext3 95% 100%

 

#* 여기서도 주의 할 점은 -L /  이 부분입니다... *#

#* 이유는 /etc/fstab 에 /dev/sda2 이런식이 아닌 LABEL=/ 으로 지정을 한 이유도 있구요.. *#

#* 쓸때없이 1 2 번 파티션 다 마운트 하여 문자를 치환하는 것 따위... 귀찮아서요;;;;; *#
mkfs -t ext3 -L / ${USB}2
mkfs -t ext3 ${USB}3

echo "파일 복원을 시작합니다."
mount ${USB}2 ${wr}
mount ${USB}3 ${wh}
cd /home/domcopy/
tar zxf ${name}-root-extender.tar.gz
tar zxf ${name}-home-extender.tar.gz
echo "마무리 작업을 시행합니다."
umount ${USB}2 ${USB}3
mv ${name}-* img_user/

rm -rf /home/domcopy/tmp1
rm -rf ${wr}/
rm -rf ${wh}/

 

 

네 이상입니다...

 

파일은.....

 

domcopy.sh
다운로드

 이거 받으시면 되구요.....

 

 

 

중간에 Ignore/Cencel 라는 문구가 나오면 무조건 I 를 입력하시구요

mkfs 에서 메세지가 나온다면 y/n 이 나온다면 y를 입력해 주세요 ㅎ  사실 -q 나  -F 옵션을 붙혀줘도 되긴 하는데....

그냥 어쩌피 완전자동화거 아니 반 자동화니깐요 ㅎ

 

위에껀 참고용이구요

 

직접 사용하시려면 첨부파일을 받아 사용하세요~ㅎ

 

스크립트나 프로그램은 항상 chmod 로 권한주셔야 하는거 잊지 마시구요

 

루트에서 실행하셔야 합니다~

Posted by 현종이닷
,








1. postfix saslpass 만들기

/etc/postfix에 들어가

postmap saslpass
chmod 600 saslpass
chmod 644 saslpass.db

 

2. 데비안 사용자 추가했는데 $ 만 나오는 경우

이 경우는 간단하다. 언젠가 스누피님의 블로그에서도 다룬 적이 있던 내용이기도 하다.

원래 다른 OS들은 기본 쉘이 /bin/bash 이지만 데비안/우분투는 /bin/sh 인 경우가 많다.

이 sh 쉘은 PS1변수가 먹히지 않아 생기는 현상이다.

 

해결방법은

사용자를 추가할 때.  

useradd -s /bin/bash testuser

이러첨 쉘을 지정해 준다

 

이미 추가한 사용자라면

/etc/passwd 파일에서

/bin/sh를 /bin/bash로 변경한다.

 

/etc/default/useradd 의 SHELL 을 /bin/bash 로 수정한다. 

 

정말 셋다 어렵고 귀찮다면

cd /bin

rm -rf sh

ln -sf bash sh

 

이 명렁어로

기존에 있던 sh를 bash와 연결시켜 준다....

 

사실 네번째 방법은 그리 추전하지 않는다.

시스템 계정들은 sh 에 의해 스크립트가 만들어진 것들이 있는데.

sh에서 되던 것들이 bash 에서 안되는 것들이 있고 bash 에서 되던 것들이 sh에서

안되는 것들을 몇게나 보았기 때문이다.....

 

3. 데비안으로 시스템을 만들었는데.... ls 햇더니 색갈이 안나올때

ls 를 해 보면 디렉토리 파일 압축파일 을 구별 할수 있기도 하고

해당 파일의 퍼미션을 대충 눈으로 알수 있다.

타 OS를 쓰다가 어느순간 데비안으로 넘어왔더니 이것이 안보이길레;;;;

엄청 당황했지만;;;

이 파일 두개를 덮어 씌우는 것으로 해결봤다.

파일을 받아 계정의 홈에 올린 후

 

bashrc
다운로드

 

profile
다운로드

 

mv bashrc .bashrc

mv profile .profile

 

해주면 끝.

 

4. vi 를 열었는데 색상이 안나올때

아래 첨부된 vimrc 파일을

/etc/vim/vimrc 파일에 덮어 씌우면 된다.

 

vimrc
다운로드

 

5. 다른 사용자가 /home 폴더의 계정 목록을 못 보게 하고 싶을때!

chmod 711 /home

 

6. mysql 백업하기

mysql을 백업하는 방법에는 세가지 정도의 방법이 있다.

1). phpmyadmin을 사용하는 방법

   - 사실 저는 이 툴을 안 써서 모르겠습니다;;;; 아마 웹 인터페이스이니...

      왠만하면 사용하실 수 있으리라 생각됩니다.

 

2). mysqldump 를 사용하는 방법

 - DB별로 백업하기

mysqldump -uroot -p[mysql root 비번] DB이름 > /home/backup/mysql-backup.sql 
 - 전체 DB 백업하기
mysqldump -uroot -p[mysql root 비번] -e --all-databases > /home/backup/mysql-all-backup.sql

여기서 주의할 점은  password 에 느낌표 있다면 주의! 

 

3) mysql 폴더를 통째로 뜨는 방법

우선 /etc/my.cnf 혹은 /etc/mysql/my.cnf 에 datadir 이 어디로 되어 있는지 확인 한 후

해당 폴더를 통으로 압축하는 방법입니다.

저같은 경우에는 ~~~

datadir                                         = /data/server/DB/mysql

이렇게 되어 있으니깐요~

cd /data/server/DB/

tar zcf mysql.tar.gz mysql

이렇게 명령어를 내려줬습니다~ 그럼 mysql.tar.gz 에 mysql이 압축되어 백업된 것을

확인해 보실수 있으십니다~

 

7. 시스템 백업하기

음 이건 말로 설명드린다기 보단.....

실 사용하고 있는 스크립트를 보여 드릴께요

 

#!/bin/sh
today=`date +%Y%m%d`
delday=`date --date '10 days ago' +%Y%m%d`

mkdir -p /data/system/DB/
mkdir -p /data/system/DB/mysql/
mkdir -p /data/system/DB/cubrid/
mkdir -p /data/system/script/
mkdir -p /data/system/system/
#* mysql backup *#
cd /data/server/DB/
tar zcf mysql_${today}.tar.gz mysql > /dev/null 2>&1
mv mysql_${today}.tar.gz /data/system/DB/mysql

#* cubrid backup *#
cd /data/server/DB/
tar zcf cubrid_${today}.tar.gz CUBRID > /dev/null 2>&1
mv cubrid_${today}.tar.gz /data/system/DB/cubrid/

#* script backup *#
cd /
tar zcf script-etc_${today}.tar.gz etc > /dev/null 2>&1
mv script-etc_${today}.tar.gz /data/system/script/

#* user script backup *#
cd /usr/
tar zcf usr-local_${today}.tar.gz local > /dev/null 2>&1
mv usr-local_${today}.tar.gz /data/system/script/

#* system backup *#
cd /
tar zcf system_${today}.tar.gz bin boot etc lib lib32 lib64 opt root sbin sys usr var > /dev/null 2>&1
mv system_${today}.tar.gz /data/system/system/
#* Clear the script last 10 days *#
rm -rf /data/system/DB/mysql/mysql_${delday}.tar.gz > /dev/null 2>&1
rm -rf /data/system/DB/cubrid/cubrid_${delday}.tar.gz > /dev/null 2>&1
rm -rf /data/system/script/script-etc_${delday}.tar.gz > /dev/null 2>&1
rm -rf /data/system/script/usr-local_${delday}.tar.gz > /dev/null 2>&1
rm -rf /data/system/system/system_${delday}.tar.gz > /dev/null 2>&1

 

대충 보시면 아시겠죠?

today와 delday에 date 로 변수를 지정해 주고

혹시 모르니 /data/system 안에 각 폴더를 만들고

mysql을 tar로 묶어 해당폴더에 투척.

큐브리드 DB도 tar로 묶어 해당 폴더에 투척

usr / local 에 스크립트가 많아 이것도 백업후 투척

/ 를 압축한 후 투척

체크를 해서 10일이 지난 백업본은 지운다~

뭐 이런거에요~ㅎ

이거는 젠투리눅스가 깔려있는 서버에서 실사용되고 있는 스크립트에요~ㅎ

 

 

에고고 7게나 적었더니;;;머리가 어질 어질 하네요

 

그럼 오늘 포스팅은 여기서 마무리 할께요~

 

유용하게 쓰였으면 좋겠네요ㅎ

 

다들 감기 조심하세요~

Posted by 현종이닷
,