Linux ETC

# 계정을 신규서버로 옮기기

 - 서버운영을 하다보면 신규서버를 설정하고 이전하는 경유가 종종 생기곤 합니다.

 - 서버 계정이 많을 경우에는 계정 하나하나 생성하는 부분도 엄청난 시간을 잡아먹습니다.

 - 그래서 서버 이전시 계정정보를 모두 넘기는 방법 입니다.


1. 기존서버의 계정정보 및 Home 디렉토리 백업하기

cd /root

mkdir backup

cd backup

export UGIDLIMIT=500

awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /root/backup/passwd.old

awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group > /root/backup/group.old

awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) {print $1}' /etc/passwd | tee - |egrep -f - /etc/shadow > /root/backup/shadow.old

cp /etc/gshadow /root/backup/gshadow.old

tar -zcvpf /root/backup/home.tar.gz /home/계정이름1 /home/계정이름2 /home/계정이름3

tar -zcvpf /root/backup/mail.tar.gz /var/spool/mail


2. 신규서버에 기존서버의 계정정보 및 Home 디렉토리 이동하기

- 기존서버의 /root/backup/ 디렉토리 안에 있는 home.tar.gz 파일과 mail.tar.gz 파일을 신규서버의 /root/backup 으로 복사 합니다.

cd /root/backup                                                                                               <= 신규서버에 디렉토리 생성 후 기존서버의 파일을 복사

mkdir /root/user_bak                                                                                         <= 신규서버의 계정정보를 백업하기 위한 디렉토리

cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/user_bak                          <= 신규 설치한 서버의 계정정보를 백업 하는 내용입니다.

cd /root/backup/

cat passwd.old >> /etc/passwd 

cat group.old >> /etc/group 

cat shadow.old >> /etc/shadow 

cp gshadow.old /etc/gshadow

cd /

tar xvzf /root/backup/home.tar.gz

tar xvzf /root/backup/mail.tar.gz


3. 재부팅 후 정상적으로 동작하는지 확인합니다.


감사합니다.