리눅스 백업 스크립트
일단 crond 데몬으로 아침 6마다 백업 스크립트를 실행하는데
그 백업 스크립트는 특정 디렉토리를 tar.gz 로 압축하고
그걸 백업 서버의 ftp 로 접속해서 저장한다.
이정도만 되더라도 사용자들의 데이터는 안전하게 유지할수 있는것이다.
그럼 먼저 crond 을 보도록 하자
crond 는 특정 시간이나 날짜(좀 복잡하게도 가능)에 정해진 일을 수행하는 데몬이다.
자세한거는 직접들 찾아보시고
# crontab -e 0 6 * * * /bin/backup.sh
이렇게 명령을 주게되면 crond 에 매일 아침 6시에 /bin/backup.sh 를 실행하라는
것을 의미한다. 자세한 의미는 굳이 설명하지 않겠다.
이러면 crond 는 매일 아침 6정각에 /bin/backup.sh 를 실행한다.
다음은 backup.sh 의 내용이다.
-------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
dstring="backup_`date +'%y%m%d'`.tar.gz" # 파일명을 만들어낸다.
# 04년06월21일같은경우에
# backup_040621.tar.gz 를 만든다.
wall < /bin/start_backup_message # 접속되어있는 모든 사용자에게
# 백업이 시작됨을 알리고
/etc/init.d/network stop # 네트워크 서비스를 중지시킨다.
tar cfz $dstring "/home" # home 디렉토리를 파일명으로 압축한다.
/etc/init.d/ network start # 네트워크 서비스 재개
Server="Backup Server Address" # 서버IP
Password="PASSWORD" # backup 받는 유저의 패스워드
UsrID="USERID" # ID
ftp -n $Server <<End-Of-Session # ftp 에 접속 -n 옵션은 자동로그인을 안한다.
user $UsrID $Password # 로그인
binary
put "$dstring"
bye
End-Of-Session
rm -f $dstring # 백업파일 삭제
wall < /bin/end_backup_message # 백업이 끝났음을 알린다
-------------------------------------------------------------------------------------------------------------------------------
네트워크 서비스를 중지시키는 이유는 간단하다.
백업이 진행될동안 서버에 파일을 올리지 않게 하기 위해서이다.
출처: https://oracle.tistory.com/246 [안나푸르나]