Infra & Security Eng/Project Implementation
CRON 명령, RSYNC 서버 프로그램 설치하기, /etc/rsyncd.conf 에서 서버 설정하기
엔지니어 E
2026. 1. 21. 21:00
반응형
CRON: 스케줄 프로그램
| # /etc/cron.allow , /etc/cron.deny 어떤 사용자를 쓰게할지, 안쓰게 할지에 대한 명령어 |
Crontab 명령을 이용한 스케줄 정의
| # crontab -u [유저] [옵션] - 루트 관리자만 사용이 가능 -u [유저] 를 사용안하면 자신이 로그인한 계정으로 명령어가 적용된다 - 명령어 형식 [분] [시] [일] [월] [요일] [작업내용] 분: 0-59 / 시: 0-23 / 일: 1-31 / 월: 1-12 / 요일: 0(일요일) - 6(토요일) * 월-금까지 작업할 때만 많으므로 요일만 지정할 때가 많음 # crontab -e 00 12 * * * rdate -s time.bora.net * 매일 매월 매요일 12시에 => 매일 12시에 * 시간 일치 시켜주는게 굉장히 중요함 (구글 서버 시간에 맞춰도 됨) # crontab -l 0-59/10 * * * * chown-R data.ist/home/data 0분에서 59분 사이에 / 10분 마다 한 번씩 /home/date 00 0-23 * * * rdate -s time.bora.net 23 뒤에 / 가 없다면 매 시간 이라고 보면 됨 |

RSYNC란?
| RSYNC(두 컴퓨터의 특정 디렉토리를 똑같이 맞추는 것 - 백업 하는거라고 보면 됨) - 원본 저장 시스템(서버) - 백업본 저장 시스템(클라이언트) - 백업을 가지고 있는 서버 * 헷갈림 주의 클라이언트(=브라우저. active한 쪽이라 그때그때 실행한다. systemtcl |
RSYNC 서버 프로그램 설치 확인하기
| # rsync 설치 확인 # dnf list rsync* rsync.x86_64 rsync-daemon.noarch (둘 다 설치 되어야함) |
RSYNC 서버 설정하기 : /etc/rsyncd.conf
| /etc/rsyncd.conf 파일에서 RSYNC 서버 설정이 가능하다 [서비스 명]: 클라이언트가 알 수 있는 이름으로 설정 (ex. /backup) - 클라이언트가 서버에 서비스를 요청할 때 서비스명을 알아야 함 path: 백업 경로 - 파일이 아닌 디렉토리로 지정 한 다는 것을 주의 comment: 주석 uid: 전송자 UID - 어떤 user id로 파일을 읽을건지 지정 (ex. root - 루트 권한으로 읽어라) gid: 전송자 GID use chroot: rsync 경로를 외부에서 /로 인식 - (ex. /backup 바깥쪽에 있는 파일은 접속이 안된다) (보안상 사용) read only: 읽기 전용으로 접근한다 (들어온 사람은 읽기 전용으로 접근할 수 있음) *최소 권한의 원칙 hosts allow: 접속 허용할 호스트(클라이언트만 지정) - 허용하는 ip를 쭉 쓰면 됨 (cf. 192.168.10.0/24 대역에 있는 모든 컴퓨터 들어올 수 있음) max connections: 동시 접속자 수 - 최대한 적게 지정 해야 함 timeout: 지정된 시간이 지나면 연결을 끊어버림 |
192 작업
| rsync 다운로드 # dnf install -y rsync # dnf install -y rsync-daemon.noarch * dnf list rsync - 설치되었는지 확인하기 디렉 토리 생성 # mkdir / backup # cd /backup/ # echo 11 > a.txt (* 현재 디렉토리가 backup/ 이 아닌 다른 디렉토리라면 echo 11 > /backup/a.txt 로 만들어줘야 함 # echo 22 > b.txt * is 로 확인 설치 파일 작성 [backup] path = /backup uid = root gid = root use chroot = yes read only = yes hosts allow = 192.168.10.193 *번호 주의 * systemctl status rsyncd 로 실행중(active) 인지 확인할 것 # systemctl start rsyncd. service => 컴퓨터 껐다 켜면 죽을지 살지 모름 그래서 아래에 프로그램 자동 실행하는 명령어를 사용할 것 # systemctl enable rsyncd (이 명령어로 사용) * 방화벽 해제 작업이 선행 되어야 함 rm -f /etc/issue.d/cockpit.issue 와 # rm -f /etc/motd.d/cockpit systemctl disable --now libvirtd rm -f /etc/libvirt/qemu/networks/default.xml rm -f /var/lib/libvirt/network/default.xml systemctl disable --now firewalld.service systemctl status firewalld.service grubby --update-kernel ALL --args "selinux=0 quiet rhgb" * sestatus 확인 * systemctl status firewalld.service 확인 |
193번 작업
| 디렉토리 생성 # mkdir /backup 동기화 명령어 실행 # rsync -avuz 192.168.10.192::backup /backup 혹시 안될 경우 # dnf list rsync 설치 되어 있는지 확인 |
| rsync client 명령: server의 디렉토리와 client의 디렉토리를 동기화 (동기화 명령어 실행) # rsync -avuz source destination - source(원본)를 destination(백업하는곳) 으로 복사(=동기화) 함 # rsync-avuz IP::[서비스명] [백업 디렉토리] - 서비스명에 해당하는 디렉토리를 (ex. /backup) 백업용 디렉토리로 복사함 ex) rsync-avuz 192.168.10.192::backup /backup 192.168.10.192 서버에 접속해서 그 서버가 backup 이라는 이름으로 공유해준 데이터를 내 컴퓨터의 /backup 폴더로 바뀐 것만 골라서 (증분 백업) 가져와라 즉, 서버와 내 컴퓨터의 파일을 비교해서, 서로 다른 부분만 골라 업데이트(동기화) 해라 라는 뜻 |