: 이렇게 해보시죠.

: --------- backup.sh -----------
: #!/usr/bin/expect

: spawn bash -c "./db.sh"
: expect -re "Enter password:"
: sleep 0.2
: send "비밀번호\r"
: interact

: ------- db.sh ----------
: #!/bin/bash

: DIR=/var/db
: FILE=DB

: SQL=$FILE-`date +%Y_%m_%d_%H%M%S`.sql

: rm -rf $DIR/$FILE-*.sql

: mysqldump -u root -p test > $DIR/$SQL

: 이렇게 하면 비밀번호를 자동으로 입력합니다. 백업이 되지요.

 

결과는   /var/backup/ZEROBOARD-20050725.sql

이렇게 나올 껍니다.

System 에 따라 약간 틀리지만, 수정해서 맞추어 써보세요..

crontab -e 에는

30 10 * * * /경로명/backup.sh 

라고만 하면 됩니당 ^^

전 로그 파일도 백업 파일도 전부 스크립트로 짜서 관리 합니다..

그게 나중에는 좋아요 ^^

 

(수정)

복잡해 하실꺼 같아서 좀더 간단하게 백업 하는 스크립트를 소개 합니다.


 -----backup.bash------

#!/bin/bash
BACKUP_DIR=/var/backup
FILE_PFX =DB 이름


DATE=$(date +%Y%m%d)
rm -rf $BACKUP_DIR/$FILE_PFX-*.sql

mysqldump -uUSER -pPASS DB이름 > $BACKUP_DIR/$FILE_PFX-$DATE.sql 



간단히 만들어 보았습니다.
백업데이타는 MY_DB-20050725.sql 이런식으로 
/var/backup 밑에 생깁니다.

(당연히 /var/backup 디렉토리가 없으면 만들어야 겠죠? ^^)

전체 모든 db를 백업할때는 --all-databases > 파일명 하시면 됩니다.

BACKUP_DIR 은 백업받고 싶은 디렉토리 이구요..
FILE_PFX 은 저장할 파일 이름의 프리픽스 정도..
날마다 백업된걸 가지고 있고 싶으시면(충분한 하드용량이 된다면)
rm -rf ........ 이줄은 주석처리해도 무방..
mysqldump 다음은 알죠? 사용자명과 패스워드 DB명..
/etc/cron.daily 밑에 복사해주시고..
실행 권한 주시면 됩니다. ^^

또는

위 스크립트 파일을 만들어 주시고,

crontab -e 에서

30 10 * * *  /절대경로/backup.bash

이렇게 하시면 됩니다.

'Infrastructure' 카테고리의 다른 글

시간동기화가 안 됩니다  (0) 2010.02.10
LinM 업데이트  (0) 2010.02.10
Crontab 설정 하기  (0) 2010.02.09
Time Server Operation  (0) 2010.02.05
sis.or.kr - 윈도우 보안 총정리  (0) 2010.01.29

+ Recent posts