[리눅스]NCFTP로 백업하기
# vi /root/backup.sh
#!/bin/bash
#### 공통설정
export Today="`date '+%y-%m-%d'`"
backup_dir="/home/file/backup"
backup_day="1" # 보관일(1일)
#### 디비설정
DB_user="root";
DB_pass="비밀번호";
#### 원격설정
FTP_addr="접속아이피";
FTP_user="아이디";
FTP_pass="비밀번호";
########### 오래된 백업데이터 삭제
dirlists=`/bin/ls -t $backup_dir 2>/dev/null`
i=1
for dir in $dirlists ; do
if [ "$i" -ge $backup_day ] ; then
/bin/rm -rf "$backup_dir/$dir"
fi
i=$(($i+1))
done
####### 새로운 디렉토리 생성
if [ ! -d "${backup_dir}/${Today}" ]
then
/bin/mkdir -p ${backup_dir}/$Today
/bin/mkdir -p ${backup_dir}/$Today/homedir
/bin/mkdir -p ${backup_dir}/$Today/databass
/bin/mkdir -p ${backup_dir}/$Today/system
fi
####### databass를 사용자별로 백업을 한다.
for database in `mysqlshow -u ${DB_user} -p${DB_pass} | awk -F" " '{ print $2 }' | grep -v "^$" |grep -v "Databases"` ; do
mysqldump -u ${DB_user} -p${DB_pass} "${database}" ${table} > ${backup_dir}/${Today}/databass/${database}.sql
done
####### 시스템 디렉토리를 백업한다
tar cvfpz ${backup_dir}/$Today/system/usr.local.tar.gz /usr/local
tar cvfpz ${backup_dir}/$Today/system/etc.tar.gz /etc
tar cvfpz ${backup_dir}/$Today/system/var.named.tar.gz /var/named
####### home 디렉토리에 사용자별로 백업을 한다.
dirlists=`/bin/ls -t /home 2>/dev/null`
for dir in $dirlists ; do
tar cvfpz ${backup_dir}/$Today/homedir/$dir.tar.gz /home/$dir
done
####### 링크를 만들어 준다.
rm -rf ${backup_dir}/today
ln -s ${backup_dir}/$Today /${backup_dir}/today
####### 원격 데이타백업을 시작한다.
ncftp -u${FTP_user} -p${FTP_pass} ${FTP_addr} << ./backup
put -R ${backup_dir}/$Today
bye
'02.서버-Linux' 카테고리의 다른 글
[리눅스]명령어 로깅 설정 (0) | 2012.12.19 |
---|---|
[리눅스]USB 인식 (0) | 2012.12.19 |
[리눅스]Core File 설정 (0) | 2012.12.19 |
[리눅스]SSH Key 생성 후 패스워드 없이 로그인 (0) | 2012.12.19 |
[리눅스]FTP 디렉토리 내용이 안보일 경우 (0) | 2012.12.19 |