PCLinuxOS

rsync로 backup하기

작성자
관리자  127.0.♨.1
작성일
2017-06-13 17:47
조회
709
Guest
3.233.217.91
1. 로컬 백업


$ rsync -avcuh /from/ /to/


--delete --force : 이 옵션도 유용하다. /to//from/에 없는 파일과 디렉토리를 지운다. --force를 덧붙이면 비어있지 않은 디렉토리도 삭제한다.

주의 : 그러나 이 옵션은 매우 주의해야 한다. /를 붙인 것과 안붙인 것은 엄청난 차이가 있다.

예를 들면

$ rsync -avh --delete --force /from/ /to/
$ rsync -avh --delete --force /from /to/


위의 경우는 원본 디렉토리 /from과 목적 디렉토리 /to를 비교하여, 목적 디렉토리 /to에서 원본 디렉토리 /from 안에 없는 파일과 디렉토리를 지우고, /from 안에 있는 내용을 복사할 것이다. 즉 원본 디렉토리 /from과 목적 디렉토리 /to를 일치시킨다.

아래의 경우는 목적 디렉토리 /to 안에  원본 디렉토리 /from이 없으면 원본 디렉토리 /from 을 통채로 복사할 것이고, 만일 목적 디렉토리 /to안에 디렉토리 /from이 있다면 원본 디렉토리 /from과 비교하여 목적 디렉토리 /to/from 안에 있는 내용을 비교하여 삭제한 후에 복사할 것이다. 즉 원본 디렉토리 /from과 목적 디렉토리 /to/from을 일치시킨다.

--exclude : 이 옵션은 파일과 디렉토리를 제외하고 복사할 때 사용한다.


ex) --exclude="filename1" --exclude="filename2" --exclude="dirname1"


--exclude-from : 이 옵션은 제외할 파일과 디렉토리가 많을 때 파일을 만든 후에 불러서 사용한다.


ex) --exclude-from="$HOME/exclude"



$ cat exclude
filename1
filename2
dirname1


2. 원격 백업


$ rsync -avh -e "ssh" --delete --force --rsync-path="sudo rsync" /from/ user@host:/to/
$ rsync -avh -e "ssh" --delete --force --rsync-path="sudo rsync" user@host:/from/ /to/


원격 백업을 하려면 원격 PC에 적어도 rsync가 설치되어 있어야 한다. xinetd는 설치가 안되어도 된다. 위에 있는 명령줄은 로컬에서 원격으로 파일을 복사할 때 사용하고, 아래의 명령줄은 원격에서 로컬로 파일을 복사할 때 사용한다. -e "ssh"는 생략가능하며, 생략해도 ssh를 타고 가게 된다. --rsync-path="sudo rsync" 는 원격지에 sudo 권한을 얻어야 할 때 사용한다. 당연히 user가 /etc/sudoers에 등록되어야 한다. 거의 대부분 user ALL=(ALL) NOPASSWD: ALL 로 설정되어 있을 것이니 별도의 rsync를 위한 등록은 필요없다. 만약 rsync를 위한 user 등록은 user ALL= NOPASSWD:/usr/bin/rsync를 추가하면 된다.

rsync와 expect를 이용하여 html의 백업 스크립트를 작성할 수도 있다.


$ rsync --help
rsync version 3.1.2 protocol version 31
Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes, prealloc

rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.

rsync is a file transfer program capable of efficient remote update
via a fast differencing algorithm.

Usage: rsync [OPTION]... SRC [SRC]... DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
or rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
or rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
or rsync [OPTION]... [USER@]HOST:SRC [DEST]
or rsync [OPTION]... [USER@]HOST::SRC [DEST]
or rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect
to an rsync daemon, and require SRC or DEST to start with a module name.

Options
-v, --verbose increase verbosity
--info=FLAGS fine-grained informational verbosity
--debug=FLAGS fine-grained debug verbosity
--msgs2stderr special output handling for debugging
-q, --quiet suppress non-error messages
--no-motd suppress daemon-mode MOTD (see manpage caveat)
-c, --checksum skip based on checksum, not mod-time & size
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
--no-OPTION turn off an implied OPTION (e.g. --no-D)
-r, --recursive recurse into directories
-R, --relative use relative path names
--no-implied-dirs don't send implied dirs with --relative
-b, --backup make backups (see --suffix & --backup-dir)
--backup-dir=DIR make backups into hierarchy based in DIR
--suffix=SUFFIX set backup suffix (default ~ w/o --backup-dir)
--backup-dir-dels=DIR backup removed files into hierarchy based in DIR
--suffix-dels=SUFFIX set removed-files suffix (def. --suffix w/o b-d-d)
-u, --update skip files that are newer on the receiver
--inplace update destination files in-place (SEE MAN PAGE)
--append append data onto shorter files
--append-verify like --append, but with old data in file checksum
-d, --dirs transfer directories without recursing
-l, --links copy symlinks as symlinks
-L, --copy-links transform symlink into referent file/dir
--copy-unsafe-links only "unsafe" symlinks are transformed
--safe-links ignore symlinks that point outside the source tree
--munge-links munge symlinks to make them safer (but unusable)
-k, --copy-dirlinks transform symlink to a dir into referent dir
-K, --keep-dirlinks treat symlinked dir on receiver as dir
-H, --hard-links preserve hard links
-p, --perms preserve permissions
-E, --executability preserve the file's executability
--chmod=CHMOD affect file and/or directory permissions
-A, --acls preserve ACLs (implies --perms)
-X, --xattrs preserve extended attributes
-o, --owner preserve owner (super-user only)
-g, --group preserve group

--devices preserve device files (super-user only)
--specials preserve special files
-D same as --devices --specials
-t, --times preserve modification times
-O, --omit-dir-times omit directories from --times
-J, --omit-link-times omit symlinks from --times
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
--preallocate allocate dest files before writing them
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (without delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
-e, --rsh=COMMAND specify the remote shell to use
--rsync-path=PROGRAM specify the rsync to run on the remote machine
--existing skip creating new files on receiver
--ignore-existing skip updating files that already exist on receiver
--remove-source-files sender removes synchronized files (non-dirs)
--del an alias for --delete-during
--delete delete extraneous files from destination dirs
--delete-before receiver deletes before transfer, not during
--delete-during receiver deletes during the transfer
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not during
--delete-excluded also delete excluded files from destination dirs
--ignore-missing-args ignore missing source args without error
--delete-missing-args delete missing source args from destination
--ignore-errors delete even if there are I/O errors
--force force deletion of directories even if not empty
--max-delete=NUM don't delete more than NUM files
--max-size=SIZE don't transfer any file larger than SIZE
--min-size=SIZE don't transfer any file smaller than SIZE
--partial keep partially transferred files
--partial-dir=DIR put a partially transferred file into DIR
--delay-updates put all updated files into place at transfer's end
-m, --prune-empty-dirs prune empty directory chains from the file-list
--numeric-ids don't map uid/gid values by user/group name
--usermap=STRING custom username mapping
--groupmap=STRING custom groupname mapping
--chown=USER:GROUP simple username/groupname mapping
--timeout=SECONDS set I/O timeout in seconds
--contimeout=SECONDS set daemon connection timeout in seconds
-I, --ignore-times don't skip files that match in size and mod-time
-M, --remote-option=OPTION send OPTION to the remote side only
--size-only skip files that match in size
--modify-window=NUM compare mod-times with reduced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
--compare-dest=DIR also compare destination files relative to DIR
--copy-dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-z, --compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with a suffix in LIST
-C, --cvs-exclude auto-ignore files the same way CVS does
-f, --filter=RULE add a file-filtering RULE
-F same as --filter='dir-merge /.rsync-filter'
repeated: --filter='- .rsync-filter'
--exclude=PATTERN exclude files matching PATTERN
--exclude-from=FILE read exclude patterns from FILE
--include=PATTERN don't exclude files matching PATTERN
--include-from=FILE read include patterns from FILE
--files-from=FILE read list of source-file names from FILE
-0, --from0 all *-from/filter files are delimited by 0s
-s, --protect-args no space-splitting; only wildcard special-chars
--address=ADDRESS bind address for outgoing socket to daemon
--port=PORT specify double-colon alternate port number
--sockopts=OPTIONS specify custom TCP options
--blocking-io use blocking I/O for the remote shell
--stats give some file-transfer stats
-8, --8-bit-output leave high-bit chars unescaped in output
-h, --human-readable output numbers in a human-readable format
--progress show progress during transfer
-P same as --partial --progress
-i, --itemize-changes output a change-summary for all updates
--out-format=FORMAT output updates using the specified FORMAT
--log-file=FILE log what we're doing to the specified FILE
--log-file-format=FMT log updates using the specified FMT
--password-file=FILE read daemon-access password from FILE
--list-only list the files instead of copying them
--bwlimit=RATE limit socket I/O bandwidth
--outbuf=N|L|B set output buffering to None, Line, or Block
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating destination
--read-batch=FILE read a batched update from FILE
--protocol=NUM force an older protocol version to be used
--iconv=CONVERT_SPEC request charset conversion of filenames
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-6, --ipv6 prefer IPv6
--version print version number
(-h) --help show this help (-h is --help only if used alone)

Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers
전체 0

전체 126
번호 제목 작성자 작성일 추천 조회
공지사항
이 게시판의 용도
관리자 | 2017.08.21 | 추천 0 | 조회 465
관리자 2017.08.21 0 465
125
Konsole 프로필 파일
관리자 | 2020.02.23 | 추천 0 | 조회 11
관리자 2020.02.23 0 11
124
PCLinuxOS, ssh 혹은 su, mkdir: cannot create directory ‘/var/run/user/500’: Permission denied
관리자 | 2020.02.22 | 추천 0 | 조회 33
관리자 2020.02.22 0 33
123
PCLinuxOS, gtk 설치
관리자 | 2020.02.14 | 추천 0 | 조회 11
관리자 2020.02.14 0 11
122
systemsettings 5.18.0-1 문제 해결
관리자 | 2020.02.14 | 추천 0 | 조회 9
관리자 2020.02.14 0 9
121
slackware 14.2
관리자 | 2020.02.13 | 추천 0 | 조회 9
관리자 2020.02.13 0 9
120
PCLinuxOS, mame 문제 해결(mame-0217s --> mame-0153 downgrade)
관리자 | 2020.02.12 | 추천 0 | 조회 7
관리자 2020.02.12 0 7
119
PCLinuxOS, kde plasma 업데이트 하기
관리자 | 2020.01.27 | 추천 0 | 조회 13
관리자 2020.01.27 0 13
118
KDE5 테마 위치
관리자 | 2019.12.23 | 추천 0 | 조회 21
관리자 2019.12.23 0 21
117
nasm, ld: warning: cannot find entry symbol _start; defaulting to
관리자 | 2019.10.22 | 추천 0 | 조회 13
관리자 2019.10.22 0 13
116
drakconf 배경화면 문제점 해결
관리자 | 2019.10.19 | 추천 0 | 조회 12
관리자 2019.10.19 0 12
115
lib64wxgtku3.0_0 패키지에 에러(amule 에러)
관리자 | 2019.10.08 | 추천 0 | 조회 16
관리자 2019.10.08 0 16
114
영어사전 goldendict 설치하기
관리자 | 2019.07.11 | 추천 0 | 조회 57
관리자 2019.07.11 0 57
113
PCLinuxOS, conky 설치하기
관리자 | 2019.05.27 | 추천 0 | 조회 47
관리자 2019.05.27 0 47
112
Plymouth 설정하기
관리자 | 2019.05.25 | 추천 0 | 조회 48
관리자 2019.05.25 0 48
111
PCLinuxOS, python idle 설치하기
관리자 | 2019.05.21 | 추천 0 | 조회 45
관리자 2019.05.21 0 45
110
Linux, iso 파일 생성하기
관리자 | 2019.05.05 | 추천 0 | 조회 43
관리자 2019.05.05 0 43
109
gfortran, Warning: Nonconforming tab character at (1) [-Wtabs]
관리자 | 2019.04.02 | 추천 0 | 조회 48
관리자 2019.04.02 0 48
108
PCLinuxOS, KDE-> systemsettings5 --> Regional Settings(지역 설정) --> Language 오류 해결
관리자 | 2019.04.02 | 추천 0 | 조회 69
관리자 2019.04.02 0 69
107
PCLinuxOS clojure(lein) 설치
관리자 | 2019.03.07 | 추천 0 | 조회 60
관리자 2019.03.07 0 60
106
PCLinuxOS, kde5 바탕화면(desktop) 아이콘(icon)의 간격(sapce) 줄이기
관리자 | 2019.01.17 | 추천 0 | 조회 46
관리자 2019.01.17 0 46
105
wget, URL의 특정 위치의 파일만 다운로드 하기
관리자 | 2019.01.15 | 추천 0 | 조회 55
관리자 2019.01.15 0 55
104
PCLinuxOS juffed 설치하기
관리자 | 2018.11.11 | 추천 0 | 조회 60
관리자 2018.11.11 0 60
103
PCLinuxOS scratch 1.4 설치하기
관리자 | 2018.11.08 | 추천 0 | 조회 89
관리자 2018.11.08 0 89
102
중들도 리눅스 하나? bodhi linux
관리자 | 2018.11.08 | 추천 0 | 조회 92
관리자 2018.11.08 0 92
101
비밀글 Linux 압축하기, 압축풀기
관리자 | 2018.10.12 | 추천 0 | 조회 0
관리자 2018.10.12 0 0
100
Fedora Workstation(Fedora-Workstation-Live-x86_64-28-1.1.iso) 설치하기
관리자 | 2018.10.08 | 추천 0 | 조회 44
관리자 2018.10.08 0 44
99
파일 .bashrc를 수정하고 새로 login없이 적용하는 3가지 방법
관리자 | 2018.10.07 | 추천 0 | 조회 108
관리자 2018.10.07 0 108
98
kernel이 문제였다.
관리자 | 2018.10.05 | 추천 0 | 조회 102
관리자 2018.10.05 0 102
97
리눅스에서 여러 그림 파일 한꺼번에 자르기, pdf 만들기 - mogrify, convert
관리자 | 2018.10.02 | 추천 0 | 조회 125
관리자 2018.10.02 0 125
96
Linux에서 video 파일 자르기 - losslesscut, vidcutter
관리자 | 2018.10.02 | 추천 0 | 조회 287
관리자 2018.10.02 0 287
95
KDE5 command 자동시작, 최소화 실행, 패널에 표시 안하기, 종료 단추 무력화 하기
관리자 | 2018.08.22 | 추천 0 | 조회 230
관리자 2018.08.22 0 230
94
우체국 email, Sylpheed, k-9 Mail 사용하기
관리자 | 2018.08.21 | 추천 0 | 조회 286
관리자 2018.08.21 0 286
93
PCLinuxOS LXDE 설치하기
관리자 | 2018.08.04 | 추천 0 | 조회 252
관리자 2018.08.04 0 252
92
kali linux(kali-linux-2018.2-amd64.iso) 설치, 설정, 한글화
관리자 | 2018.07.04 | 추천 0 | 조회 397
관리자 2018.07.04 0 397
91
리눅스에서 파일을 복사하는 몇 가지 방법
관리자 | 2018.06.11 | 추천 0 | 조회 202
관리자 2018.06.11 0 202
90
PCLinuxOS kde5 설치 및 한글화 스크립트
관리자 | 2018.06.09 | 추천 0 | 조회 228
관리자 2018.06.09 0 228
89
mylivecd 오류 해결(cp: cannot stat '/usr/lib64/libpng.so.3': 그런 파일이나 디렉터리가 없습니다)
관리자 | 2018.06.04 | 추천 0 | 조회 235
관리자 2018.06.04 0 235
88
주판(abacus)
관리자 | 2018.05.31 | 추천 0 | 조회 234
관리자 2018.05.31 0 234
87
kiwix 오류 해결
관리자 | 2018.05.18 | 추천 0 | 조회 310
관리자 2018.05.18 0 310
86
umount 불가시(umount: /path/to : target is busy.) lsof를 이용하여 해결하기
관리자 | 2018.05.15 | 추천 0 | 조회 272
관리자 2018.05.15 0 272
85
user가 sudo 권한이 있는지 확인하기
관리자 | 2018.05.12 | 추천 0 | 조회 375
관리자 2018.05.12 0 375
84
Hardware 정보 확인하기(kinfocenter, inxi, drakhardware)
관리자 | 2018.05.11 | 추천 0 | 조회 250
관리자 2018.05.11 0 250
83
PCLinuxOS 바탕화면(Desktop)에 달력 표시하기(rainlendar2-lite)
관리자 | 2018.04.27 | 추천 0 | 조회 257
관리자 2018.04.27 0 257
82
ssh 패스워드 입력없이 자동 로그인 하기
관리자 | 2018.04.26 | 추천 0 | 조회 370
관리자 2018.04.26 0 370
81
VIM (VIsual editor iMproved) 설정하기
관리자 | 2018.04.18 | 추천 0 | 조회 287
관리자 2018.04.18 0 287
80
John the Ripper password cracker
관리자 | 2018.03.20 | 추천 0 | 조회 304
관리자 2018.03.20 0 304
79
CentOS 7(1708) Everything ISO 설치, 설정
관리자 | 2018.03.19 | 추천 0 | 조회 832
관리자 2018.03.19 0 832
78
Linux LVM 생성하기
관리자 | 2018.03.14 | 추천 0 | 조회 334
관리자 2018.03.14 0 334
77
PCLinuxOS Screensaver, DPMS(KDE5, xscreensaver) 설정 및 중지
관리자 | 2018.03.12 | 추천 0 | 조회 703
관리자 2018.03.12 0 703
76
Linux ping(icmp protocol) 차단하기
관리자 | 2018.03.07 | 추천 0 | 조회 641
관리자 2018.03.07 0 641