전문적인 호스팅 업체를 이용할 경우 데이터와 DB의 백업이 매일 새벽 시간에 자동으로 수행됩니다.
대개 7일 정도 보관하고 삭제하기에 데이터나 DB를 복구할 일이 있을 때 유용합니다.
이와는 별개로 바로 지금 데이터와 DB를 백업하여 다운로드하고자 할 때 SSH Shell과 FTP를 이용할 수 있습니다.
데이터 백업
많이 사용하는 리눅스(Linux) 서버의 경우 SSH Shell 접속 후 다음과 같은 명령어로 데이터와 DB를 백업합니다.
# 특정 디렉터리의 모든 파일을 tar 파일로 압축
tar -cvf test.tar ./test_dir/*
# gzip을 사용하여 tar 파일을 압축
tar -zcvf test.tar.gz ./test_dir/*
# 특정 디렉터리를 제외하고 tar 파일을 생성
tar -zcvf test.tar.gz ./test_dir/* --exclude ./test_dir/exclude_dir
DB 백업
# 데이터베이스 전체를 백업
mysqldump -u user -p database > test.sql
# 특정 사용자 계정과 암호를 사용하여 데이터베이스 백업
mysqldump -u user -p password database > test.sql
FTP를 이용한 백업
FTP 클라이언트를 이용하여 서버의 데이터를 다운로드할 수도 있습니다.
FileZilla와 같은 프로그램을 사용하여 파일을 로컬 PC에 저장할 수 있습니다.
서버 용량 체크
서버의 저장 공간을 효율적으로 관리하기 위해 디스크 사용량을 정기적으로 확인해야 합니다.
다음은 du 명령어를 활용한 용량 체크 방법입니다:
# 현재 디렉터리 내 모든 파일과 폴더의 용량 확인
du -sh *
# 특정 디렉터리의 용량 확인
du -sh /var/log
# 사용자 디렉터리의 세부 용량 확인
du -ah --max-depth=1 /home/user
파일 용량을 큰 순서대로 확인
서버에서 가장 용량이 큰 파일을 찾아 정리하는 것은 저장 공간을 확보하는 중요한 작업입니다.
다음 명령어를 활용하여 파일을 용량 순으로 정렬할 수 있습니다:
# 가장 큰 20개의 파일 및 폴더 확인
du -ah /home/user | sort -rh | head -20
서버 운영 및 최적화
안정적인 서버 운영을 위해 다음과 같은 조치를 취해야 합니다:
- 보안 관리: SSH 포트 변경, 방화벽 설정, 보안 업데이트 적용, fail2ban을 통한 공격 방어, FTP 및 DB 접속 IP 제한, SSL 인증서 적용
- 성능 최적화: 캐싱을 활용한 웹사이트 속도 향상, 불필요한 프로세스 종료, 데이터베이스 최적화
- 트래픽 및 모니터링: 웹 서버 로그 분석, CPU 및 메모리 사용률 모니터링, 부하 분산 및 CDN 활용
