본문 바로가기
🌐OS/Linux

[Linux] 백업 / 복구

by inbeom 2023. 8. 27.
728x90

passwd파일에서 root가 들어간 라인만 찾음

  • cat /etc/passwd |grep root
  • grep root /etc/passwd (같은 결과)
  • grep은 현대 디렉토리 대상, find는 전체에서 찾음

패스워드가 비어있는 사용자 도출

  • awk -F: '{if ($2=="!!") print $1}' /etc/shadow
  • cat /etc/shadow | awk -F: '{if ($2=="!!") print $1}'
  • pw는 2번째 자리에 있으며, 없으면 !!으로 채워져있다.

7일 동안 변경된 파일 카운트

  • find / -ctime -7 | wc

사용자가 없는 파일 찾기

  • find -nouser | wc
  • 소유자가 없는 파일의 소유자 id와 일치하는 계정이 있으면 해당 계정의 파일이 된다. (/etc/passwd 에서 사용자 id 변경 가능)

해당 디렉토리에서 소유자가 root인 파일 찾기

  • find /home/inhatc -user root

setuid에 root권한이 있는 사용자의 파일 찾기

  • find / -user root -perm -4000

#tar (여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령) 압축(cvf) : tar cvf test.tar FILE1 FILE2 풀기(xvf) : tar xvf test.tar 보기(tvf) : tar tvf test.tar

FileSystem 백업 (home)

  • tar -zcvf inhatc_20230509.tar.gz inhatc
  • tar -zxvf inhatc_20230509.tar.gz

백업 디렉토리

  • /home/backup

DataBase 백업 (sakila)

  • mysqldump -u root -p sakila > sakila_20230509.sql (복구)
  • mysql -u root -p < sakila_20230509.sql
  • create database sakila use sakila 두 줄을 .sql파일 안에 삽입해줘야 한다.)

<aside> 💡 과제

</aside>

  1. shell 선언
  2. backup (inhatc)
  3. backup (DB_sakila)
  4. /home/inhatc/backup/* 안에 백업 cron 스케줄러 사용 backup.sh 쉘 파일 작성 백업tar파일명은 뒤에 date 붙여야 중복안됨 매일 새벽 4시에 백업시킴 3일간 보관하고 삭제

shell파일 생성 (shell_backup.sh)

#!/bin/bash

# 현재 날짜 포맷
nowDate=$(date +"%Y%m%d")

# 백업 파일명
backup_Home="backup_Home_$nowDate.tar.gz"
backup_DB="backup_DB_$nowDate.sql"

# 패스워드 세팅
mysql_pw="robot86676800"

# File 백업 (inhatc)
tar -zcvf "/home/inhatc/backup/$backup_Home" "/home/inhatc"

# DB 백업 (sakila)
mysqldump -u root -p"$mysql_pw" sakila > /home/inhatc/backup/$backup_DB

# 3일 이상 지난 백업 파일 삭제
find "/home/inhatc/backup" -type f -name "backup_*" -mtime +3 -exec rm {} \\;

실행 예약

$ crontab -e

0 4 * * * /bin/bash /home/inhatc/shell_backup.sh
728x90

'🌐OS > Linux' 카테고리의 다른 글

[Linux] 모니터링  (0) 2023.08.27
[Linux] Shell 프로그램  (0) 2023.08.27
[Linux] Cron 스케줄러  (0) 2023.08.27
[Linux] FTP 접속  (0) 2023.08.27
[Linux] 데이터베이스 사용  (0) 2023.08.27