리눅스 / rsync / 동기화 프로그램

rsync

rsync는 동기화 프로그램입니다. 백업할 때 유용하게 사용할 수 있습니다.

사용법

기본

rsync -avz /abc/def /xyz
  • abc 디렉토리 안의 def 디렉토리를 xyz 디렉토리 안에 동기화시키라는 뜻입니다.
  • 처음 실행하는 것이라면 xyz 디렉토리 안에 def 디렉토리가 복사됩니다.
  • 다시 실행시키면 /abc/def 디렉토리의 내용 중 수정되거나 추가된 것만 /xyz/def 디렉토리로 복사됩니다.
  • /abc/def에서 삭제된 내용은 /xyz/def에 반영되지 않습니다.
rsync -avz /abc/def/ /xyz
  • def 뒤에 /를 붙이면 def 디렉토리 안에 있는 폴더와 파일들만 동기화됩니다. xyz 디렉토리 안에 def 디렉토리가 생기지 않습니다.

삭제파일도 동기화하기

rsync -avz --delete /abc/def /xyz
  • --delete 옵션을 추가하면, /abc/def에서 삭제된 것은 /xyz/def에서도 삭제됩니다.

다른 서버와 동기화

rsync -avz --delete -e ssh root@abc.com:/abc/def /xyz
  • ssh로 다른 서버에 접속하여 동기화할 수 있습니다.
  • 도메인 대신 IP를 적어도 되고, 같은 네트워크에 있다면 호스트네임을 적어도 됩니다.
rsync -avz --delete -e "ssh -p 2345" root@abc.com:/abc/def /xyz
  • ssh 포트를 다른 것으로 사용할 수 있습니다.

sshpass

rsync -avz --delete /abc/def --rsh="sshpass -p password ssh -p 2345" root@abc.com:/xyz
  • sshpass를 이용하면 비밀번호 입력을 따로 할 필요가 없습니다.

같은 카테고리의 다른 글

리눅스 / 명령어 / cp - 복사하는 명령어, mv - 이동하는 명령어

리눅스 / 명령어 / cp - 복사하는 명령어, mv - 이동하는 명령어

cp, mv cp는 copy의 약자로 복사하는 명령어이고, mv는 move의 약자로 이동하는 명령어입니다. 복사하기 cp abc.txt def.txt abc.txt 파일을 def.txt로 이름을 바꾸어 복사합니다. cp abc.txt xyz xyz라는 디렉토리가 없다면 abc.txt 파일을 xyz 파일로 복사합니다. xyz라는 디렉토리가 있다면 xyz 디렉토리 안에 abc.txt 파일을 복사합니다. cp abc.txt xyz/def.txt abc.txt 파일을 xyz 디렉토리 안에 def.txt라는 이름으로 복사합니다. cp -r abc xyz abc가 디렉토리이고 xyz라는 디렉토리가 ...

리눅스 / 명령어 / du - 디렉토리와 파일 용량 확인하는 명령어

리눅스 / 명령어 / du - 디렉토리와 파일 용량 확인하는 명령어

du는 disk usage의 약자로 디렉토리(폴더)와 파일의 용량을 출력해주는 명령어입니다. du 디렉토리명 디렉토리와 모든 하위 디렉토리의 용량을 표시해줍니다. 예를 들어 du /etc 라고 하면 etc 디렉토리와 그 하위 디렉토리의 사용량이 출력됩니다. 단위는 kbyte입니다. du -s 디렉토리명, du -sh 디렉토리명 선택한 디렉토리만의 용량을 알고 싶으면 s 옵션을 붙입니다. du -s /etc 용량이 읽기 편한 단위로 나오게 하려면 h 옵션을 붙입니다. du -sh /etc du -sh ...

CentOS 7 / hostname 확인하고 변경하는 방법

CentOS 7 / hostname 확인하고 변경하는 방법

명령어 이용하기 다음과 같이 명령하면 hostname을 출력합니다. hostname 다음과 같이 명령하면 hostname을 abc로 변경합니다. hostnamectl set-hostname abc 설정 파일 이용하기 hostname 설정 파일은 /etc/hostname입니다. 텍스트 편집기로 열면 한 줄의 코드가 있는데, 그것이 hostname입니다. 그 코드를 바꾸고 저장하면 hostname이 변경됩니다. 변경 사항 적용하기 시스템을 재부팅하면 변경 사항이 적용됩니다. CentOS 7 / 고정 IP 설정하는 방법

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 패키지에는 MySQL 대신 MariaDB가 들어있습니다. 이런저런 이유로 MySQL을 꼭 사용해야 한다면 좀 번거로운 과정을 거쳐야 합니다. 일단 다음 사이트에 접속합니다. https://dev.mysql.com/downloads/repo/yum/ CentOS 7에 맞는 패키지 이름을 확인합니다. CentOS 7에서 다음과 같이 명령하여 패키지를 다운로드합니다. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 패키지를 설치합니다. rpm -ivh mysql57-community-release-el7-11.noarch.rpm MySQL을 설치합니다. yum install mysql-server 시스템을 시작할 때 자동으로 MySQL이 시작되도록 합니다. systemctl enable mysqld MySQL을 시작합니다. systemctl start mysqld MySQL을 ...

Ubuntu 20.04 / Ubuntu 18.04에서 업그레이드 하는 방법

Ubuntu 20.04 / Ubuntu 18.04에서 업그레이드 하는 방법

Ubuntu 버전 확인 현재 사용 중인 Ubuntu의 버전은 여러 가지 방법으로 확인할 수 있습니다. cat /etc/issue Ubuntu 18.04.4 LTS \n \l lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic do-release-upgrade -V do-release-upgrade: version 18.04.36 Ubuntu 18.04에서 ...

Ubuntu 16.04 / Let’s Encrypt 무료 SSL 인증서 발급 받기

Ubuntu 16.04 / Let’s Encrypt 무료 SSL 인증서 발급 받기

우분투(Ubuntu) 16.04에서 Let’s Encrypt 인증서를 발급 받고 관리하는 방법을 정리합니다. 클라이언트 프로그램은 Let’s Encrypt에서 추천하는 Certbot을 사용합니다. 환경 Ubuntu 16.04 Apache Web Server 저장소 추가 add-apt-repository ppa:certbot/certbot 업데이트 apt update 설치 apt install python-certbot-apache 인증서 발급 접속 가능한 도메인이어야 발급 가능합니다. 인증서 발급하고, Apache 설정 파일도 자동으로 만듭니다. abc.com 인증서 발급 certbot --apache -d abc.com abc.com과 www.abc.com 인증서 동시 발급 certbot --apache -d abc.com -d www.abc.com 인증서 갱신 certbot renew 인증서 삭제 abc.com ...

리눅스 / 명령어 / which, whereis, locate - 명령어 위치 찾기

리눅스 / 명령어 / which, whereis, locate - 명령어 위치 찾기

명령어의 위치를 찾을 때 사용할 수 있는 명령어에는 which, whereis, locate가 있습니다. 명령어의 위치만 찾을 때는 which를 사용하고, 관련된 파일들의 위치까지 찾을 때는 whereis나 locate를 사용합니다. 각 명령어로 find 명령어를 찾아보겠습니다. # which find /usr/bin/find # whereis find find: /usr/bin/find /usr/share/man/man1/find.1.gz # locate find /usr/bin/find /usr/bin/find2perl /usr/bin/findmnt /usr/bin/nl-link-ifindex2name /usr/bin/nl-link-name2ifindex /usr/bin/oldfind /usr/lib64/python2.7/modulefinder.py /usr/lib64/python2.7/modulefinder.pyc /usr/lib64/python2.7/modulefinder.pyo /usr/sbin/btrfs-find-root /usr/sbin/findfs /usr/share/bash-completion/completions/findmnt /usr/share/doc/findutils-4.5.11 /usr/share/doc/findutils-4.5.11/AUTHORS /usr/share/doc/findutils-4.5.11/COPYING /usr/share/doc/findutils-4.5.11/ChangeLog /usr/share/doc/findutils-4.5.11/NEWS /usr/share/doc/findutils-4.5.11/README /usr/share/doc/findutils-4.5.11/THANKS /usr/share/doc/findutils-4.5.11/TODO /usr/share/doc/wpa_supplicant-2.6/examples/p2p/p2p_find.py /usr/share/doc/wpa_supplicant-2.6/examples/p2p/p2p_stop_find.py /usr/share/info/find-maint.info.gz /usr/share/info/find.info.gz /usr/share/locale/be/LC_MESSAGES/findutils.mo /usr/share/locale/bg/LC_MESSAGES/findutils.mo /usr/share/locale/ca/LC_MESSAGES/findutils.mo /usr/share/locale/cs/LC_MESSAGES/findutils.mo /usr/share/locale/da/LC_MESSAGES/findutils.mo /usr/share/locale/de/LC_MESSAGES/findutils.mo /usr/share/locale/el/LC_MESSAGES/findutils.mo /usr/share/locale/eo/LC_MESSAGES/findutils.mo /usr/share/locale/es/LC_MESSAGES/findutils.mo /usr/share/locale/et/LC_MESSAGES/findutils.mo /usr/share/locale/fi/LC_MESSAGES/findutils.mo /usr/share/locale/fr/LC_MESSAGES/findutils.mo /usr/share/locale/ga/LC_MESSAGES/findutils.mo /usr/share/locale/gl/LC_MESSAGES/findutils.mo /usr/share/locale/hr/LC_MESSAGES/findutils.mo /usr/share/locale/hu/LC_MESSAGES/findutils.mo /usr/share/locale/id/LC_MESSAGES/findutils.mo /usr/share/locale/it/LC_MESSAGES/findutils.mo /usr/share/locale/ja/LC_MESSAGES/findutils.mo /usr/share/locale/ko/LC_MESSAGES/findutils.mo /usr/share/locale/lg/LC_MESSAGES/findutils.mo /usr/share/locale/lt/LC_MESSAGES/findutils.mo /usr/share/locale/ms/LC_MESSAGES/findutils.mo /usr/share/locale/nl/LC_MESSAGES/findutils.mo /usr/share/locale/pl/LC_MESSAGES/findutils.mo /usr/share/locale/pt/LC_MESSAGES/findutils.mo /usr/share/locale/pt_BR/LC_MESSAGES/findutils.mo /usr/share/locale/ro/LC_MESSAGES/findutils.mo /usr/share/locale/ru/LC_MESSAGES/findutils.mo /usr/share/locale/rw/LC_MESSAGES/findutils.mo /usr/share/locale/sk/LC_MESSAGES/findutils.mo /usr/share/locale/sl/LC_MESSAGES/findutils.mo /usr/share/locale/sr/LC_MESSAGES/findutils.mo /usr/share/locale/sv/LC_MESSAGES/findutils.mo /usr/share/locale/tr/LC_MESSAGES/findutils.mo /usr/share/locale/uk/LC_MESSAGES/findutils.mo /usr/share/locale/vi/LC_MESSAGES/findutils.mo /usr/share/locale/zh_CN/LC_MESSAGES/findutils.mo /usr/share/locale/zh_TW/LC_MESSAGES/findutils.mo /usr/share/man/man1/find.1.gz /usr/share/man/man1/find2perl.1.gz /usr/share/man/man1/oldfind.1.gz /usr/share/man/man8/btrfs-find-root.8.gz /usr/share/man/man8/findfs.8.gz /usr/share/man/man8/findmnt.8.gz locate 명령어는 -n 옵션으로 출력 개수를 정할 수 있습니다. # locate ...

CentOS 7 / mod_security 설치하는 방법

CentOS 7 / mod_security 설치하는 방법

mod_security는 아파치 웹서버에 사용할 수 있는 방화벽 모듈입니다. ModSecurity is an open source, cross-platform web application firewall (WAF) module. Known as the "Swiss Army Knife" of WAFs, it enables web application defenders to gain visibility into HTTP(S) traffic and provides a power rules language and API to implement advanced protections. 설치 yum install ...

리눅스 / rsync / 동기화 프로그램

리눅스 / rsync / 동기화 프로그램

rsync rsync는 동기화 프로그램입니다. 백업할 때 유용하게 사용할 수 있습니다. 사용법 기본 rsync -avz /abc/def /xyz abc 디렉토리 안의 def 디렉토리를 xyz 디렉토리 안에 동기화시키라는 뜻입니다. 처음 실행하는 것이라면 xyz 디렉토리 안에 def 디렉토리가 복사됩니다. 다시 실행시키면 /abc/def 디렉토리의 내용 중 수정되거나 추가된 것만 /xyz/def 디렉토리로 복사됩니다. /abc/def에서 삭제된 내용은 /xyz/def에 반영되지 않습니다. rsync -avz /abc/def/ /xyz def 뒤에 /를 ...

Ubuntu 16.04 / PHP 7.2 설치 또는 업그레이드하는 방법

Ubuntu 16.04 / PHP 7.2 설치 또는 업그레이드하는 방법

Ubuntu 16.04의 PHP 버전은 7.0입니다. 현재 PHP 최신 버전은 7.2입니다. 만약 PHP 7.2가 필요하다면 다음과 같이 합니다. PHP를 처음 설치하는 경우 저장소를 추가합니다. add-apt-repository ppa:ondrej/php 패키지 정보를 업데이트합니다. apt-get update PHP를 설치합니다. apt-get install php PHP 7.0이 설치되어 있는 경우 저장소를 추가합니다. add-apt-repository ppa:ondrej/php 패키지 정보를 업데이트합니다. apt-get update 업그레이드를 하면 PHP 7.0을 PHP 7.2로 업그레이드합니다. apt-get upgrade 웹서버 등 관련된 설정을 바꿔줘야 합니다. 만약 ...