원격 파일 전송
Rsync : 원격 또는로컬간의 파일을 복사하는 기능
scp : rsync 와 동일하나 SSH를 이용한 전송을 한다.
Remote : 내가 속해지지 않은 원격지
sync : 동기화 한다.
Rsync : directory를 복사 할 때는 /넣지 않는다.
ex) /os/ 이게 맞는거지만 /os 이렇게만 사용해준다.
rsync 사용법 : rsync [옵션] [소스] [타겟]
rsync /etc/hosts client:/etc/hosts
#etc/hosts를 클라이언트네임의 pc에 /etc/hosts룰 붙여넣어라
rsync -av ./xim.conf /tmp
#속성을 유지하면서 xim.conf 파일을 tmp로 보내라
rsync -av ./xim.conf /tmp ./yum.conf /tmp
#파일을 두개 보낼때는 공백으로 구분 한다.
rsync -av --remove-source-file /os/xinetd.conf client:/tmp
#소스 파일은 삭제 하겠다.
rsync -av --min-size 9.9k /os/xinetd.conf client:/tmp
#9.9k 보다 작은 파일은 보내지 마라
rsync -av --max-size 9.9k /os/xinetd.conf client:/tmp
#9.9k 보다 큰 파일은 보내지 마라
SCP사용법(일반) : scp [옵션] [source(보내는 곳의 주소)] [target(받는곳의 주소)]
scp /etc/hosts client:/etc/hosts
#사용법은 rsync와 동일하다
로컬에서 원격(Local -> Remote) : scp [전송할 파일 경로] [유저명]@[ip주소] : [받을 경로]
원격에서 로컬(Remote -> Local) : scp[유저명]@[ip주소] : [전송할 파일 경로] [받을 경로]
원격에서 원격 (Remote -> Remote) : scp[유저명]@[ip주소] : [전송할 파일 경로] [유저명]@[ip주소] : [받을 경로]
참고 사이트 : https://doheejin.github.io/linux/2021/03/03/linux-scp.html
실습
백업파일 결정
정해진 파일을 tar로 묶어서 데이터를 묶을 때 마다 날짜를 다르게
위의 3가지 작업을 스크립트로 묶어준다.
cron을 이용해서 정해진 시간마다 백업을 한다.
mkdir /os
#루트에 os directory를 만들어준다.
find /etc -name "*.conf" | xargs cp -t /os
#/etc/에서 .conf로 끝나는 파일을 os directory로 복사 해준다.
ssh-keygen -t rsa
#ssh 키를 만들어준다.
#rsa = 공개키 방식의 암호 시스템중 하나
ssh-copy-id root@192.168.108.x
#108.x 에 ssh암호를 복사한다.
vim backup.sh
#backup.sh 스크립트 파일을 만든다.
#backup.sh 스크립트
times="$(date '+%Y %b %H %M' | sed 's/ //g;s/월//g')"
#백업파일 앞에 날짜를 붙여주기 위해변수로 만들어준다.
tar -cvf $times\backup_os.tar.gz /os
#백업파일을 압축 해준다.
rsync ./*backup_os.tar.gz client:/root
#rsync로 백업파일을 서버 전용 client에게 보내준다.
rm -fr ./*backup_os.tar.gz
#server에 남아진 파일은 삭제
crontab -e
###crontab
* * * * * /root/backup.sh
#backup스크립트 실행
chmod 777 backup.sh
#스크립트를 실행할 수 있는 모든 권한을 준다.
SSH(Secure Shell)
원격지 호스트 컴퓨터에 접근 하기 위해 사용되는 인터넷 프로토콜
포트는 22번을 사용한다.
SSH는 서버에 접속할 때 Password 대신 인증key를 사용하는 방식이다.
KEY 종류
- 공개키(public key) : 생성자 외에 다른 쪽이 가지고 있는 키
- 개인키(private key) : 생성자가 가지고 있는 key
SSH 동작 방식
서버 클라이언트 원격접속
ssh-keygen -t rsa
#ssh 키 생성
ssh-copy-id root@192.168.108.x
#해당 아이피로 공개키를 보내준다.
ssh root@192.168.108.x
#해당 아이피로 접속 시도
만약 위의 방법대로 해서 안됫을 경우 서버에 접속 해서 key값이 제대로 들어가 있는지 확인한다.
(공개키 끼리 정확하게 맞는지 확인)
그리고 vim/etc/ssh/sshd_config 로 접속하여 다음을 확인한다.
43번 줄 PubkeyAuthentication yes(주석 해제)
47번 줄 AuthorizedKeysFile .ssh/authorized_keys
65번 줄 PasswordAuthentication no
접속한 원격지에서 authorized_keys가없다면client의공개키를복사 해와서 이름을 변경 해준다.
윈도우 에서 리눅스 원격 접속
- cmd 접속
- ssh-keygen -t rsa 명령어로 key를 만든다
- scp ./id_rsa.pub root@192.168.108.x:/root 를 이용해서 원격지로 키를 보낸다.
- ssh root@192.168.108.x 로 접속한다.
- mkdir .ssh 루트 폴더에 .ssh 폴더를 만든다.
- mv ./id_rsa.pub .ssh 를 이용해서 .ssh로 이동시킨다.
- cd .ssh 로 들어가 ls -l 로 확인 후 mv ./id_rsa.pub authorized_keys 로 이름을 변경 해도 된다. (옮기면서 변경가능)
- vim /etc/ssh/sshd_config 로 이동하여 아래 3가지를 확인(:set nu 사용)
- 43번 줄 PubkeyAuthentication yes(주석 해제)
- 47번 줄 AuthorizedKeysFile .ssh/authorized_keys
- 65번 줄 PasswordAuthentication no
- 설정 완료 후 systemctl restart sshd 를 이용해서 ssh데몬을 재시작 해준다.
알아둘 것
통신할 때 ip로 통신하기 힘드니 hostname을 적용해서 hostname으로 통신이 가능 하도록 한다.
vi /etc/hosts
host : 아이피와 도메인 네임 매핑
host가 없으면 DNS를 이용한다. 즉 host는 DNS의 파일 버전
'Study > 리눅스' 카테고리의 다른 글
(Remind)Linux Study-1 (0) | 2023.09.29 |
---|---|
리눅스 15일차(SSH 심화/캐싱DNS서버) (0) | 2022.07.25 |
리눅스 12일차(네트워크 기초 명령어) (0) | 2022.07.22 |
리눅스 10일차(yum/압축/묶기/cron(작업예약)/파티션 추가/파티션 분활/mount/fstab) (0) | 2022.07.20 |
리눅스 9일차(setfacl/getfacl/링크) (0) | 2022.07.18 |