> vi wwwbackup.sh
해서 다음과 같이 작성한다.
#!/bin/sh
#mysql DB
mysqldump -uroot -p[비번] -A(전부백업한다면) > /backup/mysql_db_bak_$(date +%Y%m%d).sql
mysqldump -uroot -p[비번] junn(DB명) > /backup/junn_db_bak_$(date +%Y%m%d).sql
#html
tar cvfpz /backup/html_bak_$(date +%Y%m%d).tar.gz /home
#delete
find /backup -ctime +3 -exec rm -f {} \;
주의할 점은 $(date +%Y~~)하는 곳에서 date 이후 꼭 한칸을 띄울 것
그 다음에 cron 에 등록해야 한다. 자세한 설명은
http://linuxer.pe.kr/tag/cron 참고
(no crontab for root 라는 문구가 나온다면 등록된 것이 없어서 그러니 신경쓰지 말자)
crontab -e 해서 0 3 * * * /backup/wwwbackup.sh
라고 등록해주었다.
잘되었는지는 내일 확인해보도록 해야겠다.
=> 작동을 안했다-_- chmod 755를 안해줘서 실행이 안된 것 같다는 선배의 말씀
그냥 귀찮아서 etc/cron.daily 라는 폴더에 집어넣고 chmod 755해줬다.
==> 작동했다
복구는
mysql -uuser -ppassword dbname < backup.sql
만약 모두 백업한것이었다면 dbname에도 -A 로 쓴다.
/////////////////////DB 백업, 복구 예제////////////////////////////
Linuxing 2005/06/26 02:25 address modify / delete reply
1. 모든 DB 백업<br />
mysqldump -u root -p -A > all.sql<br />
<br />
2. 특정 DB 백업<br />
mysqldump -u root -p [DB명] > dbA.sql<br />
<br />
3. 특정 Table 백업<br />
mysqldump - u root -p [DB명] [Table명] > tableA.sql<br />
<br />
4. 복구<br />
mysql -u root -p [target DB명] < tableA.sql
Linuxing 2005/06/26 02:26 address modify / delete reply // 모든 디비 백업<br />
# mysqldump -u root -p --all-databases > AllDB_Backup.dump<br />
<br />
// 디비 하나만 백업(e.g. mysql이라는 디비를 백업)<br />
# mysqldump -u root -p mysql > mysql_Backup.dump<br />
<br />
// 디비에서 테이블 하나만 백업<br />
# mysqldump -u root -p mysql user > mysql_userTB_Backup.dump<br />
<br />
<br />
<br />
// 복구는 어떻게 하는가!!<br />
. --all-databases 를 사용하여 모든디비백업을 한 경우<br />
# mysql -u root -p < AllDB_Backup.dump<br />
<br />
. 디비 하나만 백업한 경우(디비는 생성되어 있어야 함.)<br />
# mysql -u root -p mysql < mysql_Backup.dump<br />
<br />
. 테이블 백업한 경우(디비는 생성이 되어있어야 함.)<br />
# mysql -u root -p mysql < mysql_userTB_Backup.dump
출처:
https://proyjkim.tistory.com/44 [My Another Story]