반응형
SMALL
스크립트를 이용하여 백업을 실시할 수 있다.
간단하지만 몇가지 백업 스크립트 예시를 아래에 기재해보겠다.
*참고로 모든 스크립트 파일의 권한은 755로 지정했다.
ex)
1. 서버 내 /home 경로에 있는 계정들에 대한 디렉토리를 압축 백업 하여 저장하고자 한다.
crontab에 등록할 스크립트 파일에 다음과 같이 저장
#!/bin/sh home_root="home 경로" backup_home_root="백업파일이 쌓일 경로" sysdtime=$(date +%Y%m%d) # 파일 삭제 find "$backup_home_root" -mtime +7 -exec rm -rf {} \; cd "$home_root" echo "백업을 시작합니다." for home_name in $(ls) do if [ -d "$home_root/$home_name" ] ; then echo "tar -czpf $backup_home_root$home_name-$sysdtime.tar.gz --exclude=centos $home_name" tar -czpf "$backup_home_root$home_name-$sysdtime.tar.gz" --exclude="centos" "$home_root/$home_name" fi done echo "백업이 완료되었습니다." |
해당 스크립트는 7일 이상 지난 백업파일을 삭제하고, centos 계정을 제외한 나머지 /home 계정들에 대한 백업파일을 날짜별로 저장한다.
2. DB내 sql을 덤프 후, 해당 덤프파일을 압축 백업하여 저장하고자 한다. (=DB 서버)
crontab에 등록할 스크립트 파일에 다음과 같이 저장
#!/bin/bash # 필수 변수 지정 backup_dir="백업파일이 쌓일 경로" db_user="DB계정명" db_pass="DB패스워드" date=`date +%Y%m%d` mysqlshow="/usr/local/mysql/bin/mysqlshow" mysqldump="/usr/local/mysql/bin/mysqldump" # 지난 백업 삭제 /usr/bin/find $backup_dir -mtime +7 -exec rm -rf {} \; # 백업 디렉터리 생성 #/bin/mkdir -p $backup_dir/$date /bin/mkdir -p $backup_dir # 덤프 시작~ for database in `$mysqlshow -u${db_user} -p${db_pass} | awk -F" " '{print $2}' | /bin/grep -v "^$" | /bin/egrep -v "Databases|information_schema|performance_schema|^\+"` do $mysqldump -uroot -p${db_pass} --single-transaction $database > $backup_dir/${database}-${date}.sql # /bin/gzip -f9 $backup_dir/${database}-${date}.tar.gz $backup_dir/${database}-${date}.sql done |
해당 스크립트는 7일 이상 지난 백업파일은 자동삭제 되도록 작성되었다.
덤프뜰때 information_schema, performance_schema 데이터베이스는 덤프대상에서 제외되었다.
3. 다수의 특정 디렉토리를 지정 후 압축 백업하여 저장하고자 한다.
#!/bin/sh find '백업이 쌓일 경로' -ctime +3 -exec rm -rf {} \; system_backup_root="백업이 쌓일 경로" sysdtime=`date +%Y%m%d` mkdir -p $system_backup_root/$sysdtime tar -pczf "$system_backup_root/$sysdtime/etc-$sysdtime.tar.gz" /etc tar -pczf "$system_backup_root/$sysdtime/var-$sysdtime.tar.gz" /var tar -pczf "$system_backup_root/$sysdtime/usr-$sysdtime.tar.gz" /usr/local exit 0 |
/usr/local, /etc, /var 디렉토리를 날짜별로 백업한다. 그리고 3일 이상 지난 백업파일은 자동삭제 되도록 작성되었다.
반응형
LIST
'IT tech > Linux' 카테고리의 다른 글
리눅스에서 라우트 경로 바꾸는 방법 (+Default GW 바꾸는 법) (0) | 2024.12.19 |
---|---|
디스크 I/O 성능 속도 체크 (0) | 2023.05.03 |
Apache(아파치) 웹서버 동시 접속 세션 확인 (0) | 2023.05.03 |
nagios - 서비스 모니터링 알림 관련 설정 (0) | 2023.05.03 |
sar 명령어 옵션 (0) | 2023.05.03 |