백업환경에 대한 설명없이 스크립트만 넣은것 같아서 몇자 적어봅니다.
저희집에는 아래의 그림처럼 가상화 서버(vmware)에 Xpenology, CentOS, Ubuntu 서버가 설치되어 있습니다.
웹서버 컨텐츠 및 서버설정정보, DB서버에 대해서 Cold백업 받아서 헤놀로지의 파일시스템으로 보관하게 구성하였습니다.
동일 서버내에 있어서 네트워크 속도가 빠르고요, Samba는 서버들간의 파일공유가 쉽다는 이점이 있습니다.
아래의 구조는 몇년전 모 연구기관에서도 사용했던 시스템 구조입니다.
그룹웨어, ERP, 통합문서관리, 특허, 기술이전, 공동/위탁 등 시스템간 파일을 공유하기 위해서 NAS의 Samba 공유폴더를 사용했었습니다.
보안에는 취약하나 저희집 백업환경으로 사용해 봤습니다.
samba 클라이언트 설치
ㅇ CenOS7 #yum install -y samba-client.x86_64 #yum install -y cifs-utils.x86_64 ㅇ Ubuntu #sudo apt-get install samba-client #sudo apt-get install cifs-utils
공유 폴더 확인
#smbclient -L <Server IP> -U <사용자ID>
samba 디렉토리 mount
#mkdir /backup #sudo mount -t cifs \\\\<Server IP>\\폴더 /backup -o user=<User ID>,vers=2.0,uid=1000
백업 script
#!/bin/bash #특정폴더 백업 tar -czpf /backup/<백업파일명>.`date +%Y%m%d%H%M%S`.tgz /home/<백업폴더> 1>/dev/null 2>/dev/null #mysql백업 mysqldump -u<사용자ID> -p<패스워드> --all-databases > /backup/파일명.`date +%Y%m%d%H%M%S`.sql #오래된 백업파일 삭제(30일이전) find /backup/ -type f -mtime +30 | sort | xargs rm -f
cron 설정
#매일 새벽0시 0분에 수행 0 0 * * * /home/chohi/backup.sh
자동실행
##CentOS 7 #/etc/rc.local 파일에 추가 mount -t cifs \\\\<Server IP>\\폴더 /backup -o user=<사용자ID>,password=<패스워드>,vers=2.0,uid=1000
##Ubuntu #!/bin/sh case $1 in start) mount -t cifs \\\\<Server IP>\\폴더 /backup -o user=<사용자ID>,password=<패스워드>,vers=2.0,uid=1000 ;; stop) umount /backup ;; restart) umount /backup mount -t cifs \\\\<Server IP>\\폴더 /backup -o user=<사용자ID>,password=<패스워드>,vers=2.0,uid=1000 ;; esac exit 0
##/etc/init.d/xxx.sh 스크립트 추가후 755 퍼미션을 준다. ##rc.d에 실행 스크립트추가 #sudo update-rc.d xxx.sh defaults