
rsync는 서버간 자료 전송을 진행할 수 있는 프로그램입니다.
요즘은 우분투에 기본 내장으로 설치되어 있어 추가로 설치할 필요 없이 바로 사용할 수 있습니다.
apt-get install rsync설치되지 않았을 경우 명령어를 입력하여 설치를 진행합니다.
rsync -azP ~/홈디렉토리보낼폴더파일전체 아이디@192.168.0.1:~/홈디렉토리/rsync/dest파일을 전송할 계정으로 로그인합니다.
(아래의 설명은 ubuntu 계정을 전제로 설명을 진행합니다)
ssh-keygen -t rsa키 생성은 아래의 순서로 진행됩니다.
변경점이 없다면 엔터키를 눌러 모두 스킵합니다.

A 서버(로컬 서버)에 접근하기 위해
B 서버(리모트 서버)에 키를 등록합니다.
mkdir ~/.sshtouch ~/.ssh/authorized_keyschmod 644 ~/.ssh/authorized_keys~.ssh/id_rsa.pub 파일 내용을 복사합니다~/.ssh/authorized_keys 파일에 붙여넣기합니다tar -zcf backup-$(date +%Y%m%d).tar.gz -C /var/www/ html/var/www/html 에서 >>>>>>>> 현재 있는 폴더 로backup-20220921.tar.gz 파일을 생성합니다./var/www/ html 와 같이 마지막 폴더는 한칸 떨어트려야 합니다.
cd자신의 홈 디렉토리로 이동합니다.
mkdir backupscd backupsbackups 폴더를 만들고 이동합니다
mkdir daily
mkdir weekly
mkdir monthly일간, 주간, 월간 백업 자료를 보관할 폴더들을 생성합니다
tar -zcf ~/backups/daily/backup-$(date +%Y%m%d).tar.gz -C /var/www/ html파일을 백업합니다.
앞에 ~ 를 붙이면 로그인한 계정의 홈 디렉토리를 기준으로 합니다.
find ~backups/daily/* -mtime +7 -delete현재 시점에서 7일보다 오래된 자료를 삭제한다는 명령어입니다.
mysqldump -u 계정 -p패스워드 DB명 > /디렉토리/파일명.sql#!/bin/bash
BACKUP_DIR=/home/bktest
USERNAME="root"
PASSWORD="root123"
DATABASE="test"
mysqldump -u$USERNAME -p$PASSWORD $DATABASE > $BACKUP_DIR/backup.sqlmysqldump -u 계정 -p패스워드 --all-databases > /디렉토리/덤프파일#!/bin/bash
BACKUP_DIR=/home/bktest
USERNAME="root"
PASSWORD="root123"
DATABASE="test"
mysqldump -u$USERNAME -p$PASSWORD --all-databases > $BACKUP_DIR/backup.sql기본 구조는 위와 같습니다.
rsync -avz --delete -partial /backups/ [email protected]:~/backups위의 코드를 응용하여 원격 파일 전송을 마칠 수 있습니다.
AWS를 사용하는 경우는 관리자 화면에서 873 포트를 오픈합니다.
cat /etc/rsyncd.conf/etc/rsyncd.conf 파일을 생성합니다.
[add4s]
comment = add4s add file
path = /home/add4s/public_html
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 43.201.53.159
max connection = 2
timeout = 300A 서버(로컬 서버)에 Cron 서비스를 등록합니다.
nano ~/backups/backup.shbackup.sh 파일을 생성합니다.
tar -zcf ~/backups/daily/backup-$(date +%Y%m%d).tar.gz -C /var/www/ html
find ~/backup/daily/* -mtime +7 -delete
rsync -avz --delete -partial /backups/ [email protected]:~/backups위의 내용을 backup.sh 에 저장합니다.
crontab -e15 0 * * * sh /ubuntu/backups/backup.sh매일 같은 시간에 sh파일을 실행합니다.
sudo adduser radingsudo usermod -a -G www-data radingrading 유저를 만들고 www-data 권한을 부여합니다.
sudo nano /etc/passwd수정 후 : rading:x:33:33:,,,:/var/www/html:/bin/bash
권한을 33:33 으로 변경합니다. www-data 로 권한을 변경하게 됩니다.
sudo chown -R www-data:www-data /var/www/html경고 : 이 방법은 권장하지 않습니다.
비밀번호를 생성하면 무차별 대입 공격(Broute Force Attack)의 표적이 될 수 있습니다
sudo nano /etc/ssh/sshd_config외부 로그인 설정을 위해 ssh 설정에 접근합니다.
PermitRootLogin yesPasswordAuthentication yesPubkeyAuthentication yesSSH 암호 키로 로그인 하는 것이 안전한 것은 사실이지만 설정 방법은 알고 있는 것이 좋습니다.
비밀번호 로그인을 위해 PasswordAuthentication 설정을 찾아서 위와 같이 변경합니다
그 다음 Ctrl + X → Y → Enter 를 입력하여 저장 후 에디터를 종료합니다.
sudo service sshd restartsshd를 재시작합니다.