⑴ linux下如何實現增量備份
伺服器需求:
需要備份文件的伺服器(伺服器端):192.168.10.2 (RHEL 5)
接收備份文件的伺服器(客戶端):192.168.10.3 (RHEL 5)
實現功能:
通過rsync工具對turbomail郵件伺服器的accounts目錄和conf目錄進行增量備份。
accounts目錄:用於存儲用戶相關信息的目錄
conf目錄:用戶配置文件存放目錄
前提條件:
先將turbomail郵件系統安裝好(伺服器端與客戶端操作一樣)
安裝過程如下:
1、掛載光碟機:mount /dev/cdrom
2、將turbomail的安裝包拷貝到跟目錄下/
#cd /dev/cdrom
#cp turbomail_linux_x86_xxx.tgz
3、解壓turbomail安裝包
tar –zxvf turbomail_linux_x86_xxx.tgz
4、啟動turbomail
#cd /turbomail
#./starttm.sh
#cd /turbomail/web/bin/
#./startup.sh 5、修改啟動腳本/etc/rc.d/rc.local
使郵件伺服器開機自動啟動加入以下幾行:#/turbomail/starttm.sh &
#/turbomail/web/bin/startup.sh & #/turbomail/safestart.sh &
rsync的配置如下:
1.伺服器端rsync的配置:使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
若採用採用源碼包安裝,上傳安裝包到伺服器1)tar –zxvf rsyncrsync-2.6.9.tar.gz #解壓2)cd rsyncrsync-2.6.9 3)./configure #默認配置,生成編譯環境
4)make #編譯
5)make install #安裝完成,任何步驟有疑問輸入echo $?查返回值,0表示成功,其他都為失敗rsync 版本
2.4.6(可以從http://rsync.samba.org/rsync/獲得最新版本)
1)編輯/etc/rsyncd.conf文件,rsync的主要配置文件:
#[globale]
strict modes= yes
#check passwd file
port= 873 #rsync工具默認使用的埠
#default port
logfile= /var/log/rsyncd.log #日誌文件存放路徑pidfile= /var/run/rsyncd.pid #記錄rsync運行時的進程ID
max connections= 4 #同上最大的鏈接數
#[moles] #同步模塊的配置
[rsync]
uid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的uid
gid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的gid
ignore errors #忽略一些無關的錯誤信息
#要備份的目錄
path= /turbomail/accounts #需要同步的目錄
read only= no #是否設置以只讀的方式運行
host allow= 192.168.10.3 #同步數據的客戶端ip如有多個客戶端,以「,」隔開即可
auth users= zhouhw #同步用的用戶名
secrets file= /etc/rsyncd.scrt #同步的密碼認證文件
[test]
uid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的uid
gid= root #該選項指定當該模塊傳輸文件時守護進程應該具有的gid
ignore errors #忽略一些無關的錯誤信息
#要備份的目錄
path= /turbomail/conf #需要同步的目錄
read only= no #是否設置以只讀的方式運行
host allow= 192.168.10.3 #同步數據的客戶端ip如有多個客戶端,以「,」隔開即可
auth users= zhouhw #同步用的用戶名
secrets file= /etc/rsyncd.scrt #同步的密碼認證文件2)編輯/etc/rsyncd.scrt文件,密碼認證文件
zhouhw:123456
該更許可權為600:chmod 600 /etc/rsyncd.scrt 3) 運行rsync --daemon,並在/etc/rc.d/rc.local加入此語句,開機自動啟動。
備註:rsync默認埠873,若安裝了iptables,如需改動啟動時啟動rsync –port 873,請在iptables 中開放該埠,語句如下:
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
4)編輯/etc/xinetd.d/rsync
rsync服務的監聽由xinet來統一分配:
service rsync
{
disable = no #將此項改為no
socket_typ
e = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
重啟xinetd以啟動rsync服務
service xinetd restart
5)查看rsync事故正常運行
輸入命令:netstat -ant|grep :873若有顯示以下一條語句,則說明rsync服務已經正常啟動了。
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2.客戶端的配置:使用系統自帶的rsync工具,插入系統啟動光碟,通過rpm安裝rsync工具。
1)編輯/etc/rsyncd.scrt文件,密碼認證文件
zhouhw:123456
該更許可權為600:chmod 600 /etc/rsyncd.scrt 2)編輯腳本vi /root/scrpit/rsync.sh並加入開機自動啟動。
#!/bin/sh /usr/bin/rsync -vazu --progress --delete
[email protected]::rsync /turbomail --password-file=/etc/rsyncd.scrt
[email protected]::test /turbomail
--password-file=/etc/rsyncd.scrt修改許可權:chmod u+x
/root/scrpit/rsync.sh執行./rsync.sh 同步數據。
3)編輯/etc/crontab文件,定義為每小時30分鍾執行一次數據同步。
vi /etc/crontab
# run-parts
01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root
run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4
1 * * root run-parts /etc/cron.monthly 30 * * * * root
/root/scrpit/rsync.sh客戶端的配置到此就可以了,伺服器與客戶端的數據也會在每小時的第30分鍾執行一次。
客戶端同步命令詳解:
v, --verbose 詳細模式輸出-q, --quiet 精簡輸出模式-c, --checksum
打開校驗開關,強制對文件傳輸進行校驗-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD
-r, --recursive 對子目錄以遞歸模式處理-R, --relative 使用相對路徑信息-b, --backup
創建備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不同的備份文件前綴。
--backup-dir 將備份文件(如~filename)存放在在目錄下。
-suffix=SUFFIX定義備份文件前綴
-u, --update 僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件。(不覆蓋更新的文件) -l, --links 保留軟鏈結-L, ---links 想對待常規文件一樣處理軟鏈結
---unsafe-links僅僅拷貝指向SRC路徑目錄樹以外的鏈結
--safe-links忽略指向SRC路徑目錄樹以外的鏈結
-H, --hard-links 保留硬鏈結-p, --perms 保持文件許可權-o, --owner 保持文件屬主信息-g,
--group 保持文件屬組信息-D, --devices 保持設備文件信息-t, --times 保持文件時間信息-S, --sparse
對稀疏文件進行特殊處理以節省DST的空間-n, --dry-run現實哪些文件將被傳輸-W, --whole-file
拷貝文件,不進行增量檢測-x, --one-file-system 不要跨越文件系統邊界-B, --block-size=SIZE
檢驗演算法使用的塊尺寸,默認是700位元組-e, --rsh=COMMAND 指定替代rsh的shell程序
--rsync-path=PATH指定遠程伺服器上的rsync命令所在路徑信息
-C, --cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸的文件--existing 僅僅更新那些已經存在於DST的文件,而不備份那些新創建的文件
--delete刪除那些DST中SRC沒有的文件
--delete-excluded同樣刪除接收端那些被該選項指定排除的文件
--delete-after傳輸結束以後再刪除
--ignore-errors及時出現IO錯誤也進行刪除
--max-delete=NUM最多刪除NUM個文件
--partial 保留那些因故沒有完全傳輸的文件,以是加快隨後的再次傳輸--force 強制刪除目錄,即使不為空
--numeric-ids不將數字的用戶和組ID匹配為用戶名和組名
--timeout=TIME IP超時時間,單位為秒-I, --ignore-times
不跳過那些有同樣的時間和長度的文件--size-only
當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間--modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認為0
-T --temp-dir=DIR在DIR中創建臨時文件
--compare-dest=DIR同樣比較DIR中的文件來決定是否需要備份
-P等同於--partial
--progress顯示備份過程
-z, --compress 對備份的文件在傳輸時進行壓縮處理
--exclude=PATTERN指定排除不需要傳輸的文件模式
--include=PATTERN指定不排除而需要傳輸的文件模式
--exclude-from=FILE排除F
ILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version列印版本信息
--address綁定到特定的地址
--config=FILE 指定其他的配置文件,不使用默認的rsyncd.conf文件
--port=PORT指定其他的rsync服務埠
--blocking-io對遠程shell使用阻塞IO
-stats給出某些文件的傳輸狀態
--progress在傳輸時現實傳輸過程
--log-format=formAT指定日誌文件格式
--password-file=FILE從FILE中得到密碼
--bwlimit=KBPS 限制I/O帶寬,KBytes per second -h, --help 顯示幫助信息
⑵ rsync 重啟後啟動就出錯了!`
Rsync(remote sync)是類unix系統下的數據鏡像備份工具,支持大多數的類unix系統,無論是Linux、Solaris還是BSD,都經過了的測試,現在也有支持windows下的rsync(cwRsync)也已經測試通過,rsync 是一個節約帶寬的備份方案,不像傳統的 ftp 會下載所有的文件。如果你啟動不了,嘗試下1、編輯/etc/ld.so.conf文件,添加一行:
/usr/local/困春lib
2、保存後運行ldconfig。
3、再啟動運行rsyncd服務運行,問題得到解決。
(註:ld.so.conf和ldconfig用於維護系統動態鏈汪培耐接庫)。
只能想中塌到這么多,再不行 你就從裝吧
(江西新華電腦學院為你解答)
⑶ linux rsync配置出錯
一燃握、rsync簡介用於替代rcp的一個工具,rsync可以通過rsh或ssh使用,也能以daemon模式去運行,在以daemon方式運行時rsyncserver會開一個873埠,賀段爛等待客戶端去連接,連接時,rsyncserver會檢查口令是否相符,若通過口令查核,則可以通禪漏過進行文
⑷ Linux命令rsync的疑問
Here is a short summary of the options available inrsync. Please refer to the detailed description below for
a complete description.-v, --verbose increase verbosity
-q, --quiet suppress non-error messages
--no-motd suppress daemon-mode MOTD (see 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 backup suffix (default ~ w/o --backup-dir)
-u, --update skip files that are newer on the receiver
--inplace update destination files in-place
--append append data onto shorter files
--append-verify --append w/old data in file checksum
-d, --dirs transfer directories without recursing
-l, --links symlinks as symlinks
-L, ---links transform symlink into referent file/dir
---unsafe-links only "unsafe" symlinks are transformed
--safe-links ignore symlinks that point outside the tree
-k, ---dirlinks transform symlink to 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 executability
--chmod=CHMOD affect file and/or directory permissions
-A, --acls preserve ACLs (implies -p)
-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
--super receiver attempts super-user activities
--fake-super store/recover privileged attrs using xattrs
-S, --sparse handle sparse files efficiently
-n, --dry-run perform a trial run with no changes made
-W, --whole-file files whole (w/o 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 thersyncto run on remote machine
--existing skip creating new files on receiver
--ignore-existing skip updating files that exist on receiver
--remove-source-files sender removes synchronized files (non-dir)
--del an alias for --delete-ring
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-ring receiver deletes ring xfer, not before
--delete-delay find deletions ring, delete after
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
--ignore-errors delete even if there are I/O errors
--force force deletion of dirs 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 end
-m, --prune-empty-dirs prune empty directory chains from file-list
--numeric-ids don't map uid/gid values by user/group name
--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 size and time
--size-only skip files that match in size
--modify-window=NUM compare mod-times with reced 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 received files relative to DIR
---dest=DIR ... and include copies of unchanged files
--link-dest=DIR hardlink to files in DIR when unchanged
-z, --compress compress file data ring the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
-C, --cvs-exclude auto-ignore files in 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; wildcard chars only
--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 ring 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 ing them
--bwlimit=KBPS limit I/O bandwidth; KBytes per second
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--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 (see below for -h comment)
⑸ Linux下rsync命令用法
rsync是一個功能非常強大的工具,其命令也有很多功能特色選項,我們下面就對它的選項一一詳細說明
在對rsync伺服器配置結束以後,下一步就需要在客戶端發出rsync命令來實現將伺服器端的文件備份到客戶端來。rsync是一個功能非常強大的工具,其命令也有很多功能特色選項,我們下面就對它的選項碧悉一一進行分析說明。
Rsync的命令察慧指格式可以為以下六種:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]...
[USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync
[OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]...
rsync://[USER@]HOST[:PORT]/SRC [DEST]
對應於以上六種命令格式,rsync有六種不同的工作模式:
1)拷貝本地文件。當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。如:rsync -a /data /backup
2)使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啟動該模式。如:rsync
-avz *.c foo:src
3)使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啟動該模式。如:rsync
-avz foo:src/bar /data
4)從遠程rsync伺服器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。如:rsync -av
[email protected]::www /databack
5)從本地機器拷貝文件到遠程rsync伺服器中。當DST路徑信息包含"::"分隔符時啟動該模式。如:rsync -av /databack
[email protected]::www
6)列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。如:rsync
-v rsync://172.16.78.192/www
rsync參數的具體解釋如下:
-v,
--verbose 詳細模式輸出
-q, --quiet 精簡輸出模式
-c, --checksum 打開校驗開關,強制對文件傳輸進行校驗
-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rlptgoD
-r, --recursive
對子目錄以遞歸模式處理
-R, --relative 使用相對路徑信息
-b, --backup
創建備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名為~filename。可以使用--suffix選項來指定不同的備份文件前綴。
--backup-dir 將備份文件(如~filename)存放在在目錄下。
-suffix=SUFFIX 定義敗配備份文件前綴
-u,
--update 僅僅進行更新,也就是跳過所有已經存在於DST,並且文件時間晚於要備份的文件。(不覆蓋更新的文件)
-l, --links 保留軟鏈結
-L, ---links 想對待常規文件一樣處理軟鏈結
---unsafe-links 僅僅拷貝指向SRC路徑目錄樹以外的鏈結
--safe-links 忽略指向SRC路徑目錄樹以外的鏈結
-H, --hard-links 保留硬鏈結
-p, --perms
保持文件許可權
-o, --owner 保持文件屬主信息
-g, --group 保持文件屬組信息
-D, --devices
保持設備文件信息
-t, --times 保持文件時間信息
-S, --sparse 對稀疏文件進行特殊處理以節省DST的空間
-n,
--dry-run現實哪些文件將被傳輸
-W, --whole-file 拷貝文件,不進行增量檢測
-x, --one-file-system
不要跨越文件系統邊界
-B, --block-size=SIZE 檢驗演算法使用的塊尺寸,默認是700位元組
-e, --rsh=COMMAND
指定使用rsh、ssh方式進行數據同步
--rsync-path=PATH 指定遠程伺服器上的rsync命令所在路徑信息
-C,
--cvs-exclude 使用和CVS一樣的方法自動忽略文件,用來排除那些不希望傳輸的文件
--existing
僅僅更新那些已經存在於DST的文件,而不備份那些新創建的文件
--delete 刪除那些DST中SRC沒有的文件
--delete-excluded 同樣刪除接收端那些被該選項指定排除的文件
--delete-after 傳輸結束以後再刪除
--ignore-errors 及時出現IO錯誤也進行刪除
--max-delete=NUM 最多刪除NUM個文件
--partial
保留那些因故沒有完全傳輸的文件,以是加快隨後的再次傳輸
--force 強制刪除目錄,即使不為空
--numeric-ids
不將數字的用戶和組ID匹配為用戶名和組名
--timeout=TIME IP超時時間,單位為秒
-I, --ignore-times
不跳過那些有同樣的時間和長度的文件
--size-only 當決定是否要備份文件時,僅僅察看文件大小而不考慮文件時間
--modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,默認為0
-T --temp-dir=DIR
在DIR中創建臨時文件
--compare-dest=DIR 同樣比較DIR中的文件來決定是否需要備份
-P 等同於 --partial
--progress 顯示備份過程
-z, --compress 對備份的文件在傳輸時進行壓縮處理
--exclude=PATTERN
指定排除不需要傳輸的文件模式
--include=PATTERN 指定不排除而需要傳輸的文件模式
--exclude-from=FILE
排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 列印版本信息
--address 綁定到特定的地址
--config=FILE 指定其他的配置文件,不使用默認的rsyncd.conf文件
--port=PORT 指定其他的rsync服務埠
--blocking-io 對遠程shell使用阻塞IO
-stats
給出某些文件的傳輸狀態
--progress 在傳輸時現實傳輸過程
--log-format=formAT 指定日誌文件格式
--password-file=FILE 從FILE中得到密碼
--bwlimit=KBPS 限制I/O帶寬,KBytes per second
-h, --help 顯示幫助信息
⑹ Linux下rsync命令用法
1、首先要設置一台rsync伺服器比如A伺服器,否則2個都是客戶機無法傳遞,還不如scp
2、B伺服器的test目錄許可權一定要開放,最好是777
3、rsync有6種狀態,可以從A到B,也可以從B到A,升值可以從A到B,C,D等等
4、rsync的語句結構是:rsync
[OPTION]...
SRC
[SRC]...
rsync://[USER@]HOST[:PORT]/DEST
你可以man或rsync
--help看一下關於option,給你個使用rsync語句2台伺服器同步的實例:rsync
-vazu
--progress
--password-file=/etc/rsyncd.secrets
[email protected]::Samba
/home/Samba/
解釋:-vazu
v代表詳細輸出
a代表歸檔
z代表壓縮傳遞
u代表只更新改動的地方
--progress顯示傳輸過程
--password表示可以選擇後面的密碼文件去自動匹配密碼
還可以加上
--delete選項,將伺服器沒有的內容刪除等等,選項很多,用法靈活,再配合crontab可以實現自動同步備份。
⑺ linux rsync 怎麼重啟
rsync的命令格式可以為:
1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
2. rsync [OPTION]... [USER@]HOST:SRC DEST
3. rsync [OPTION]... SRC [SRC]... DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync有六種不同的工作模式:
1. 拷貝本地文件;當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。
2.使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啟動該模式。
3.使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
4. 從遠程rsync伺服器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。
5. 從本地機器拷貝文件到遠程rsync伺服器中。當DST路徑信息包含"::"分隔符時啟動該模式。
6. 列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。
-a 以archive模式操作、復制目錄、符號連接 相當於-rlptgoD
rsync中的參數
-r 是遞歸
-l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有許可權;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件;
-z 傳輸時壓縮;
-P 傳輸進度;
-v 傳輸時的進度等信息,和-P有點關系,自己試試。可以看文檔;
-e ssh的參數建立起加密的連接。
-u只進行更新,防止本地新文件被重寫,注意兩者機器的時鍾的同時
--progress是指顯示出詳細的進度情況
--delete是指如果伺服器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致
--password-file=/password/path/file來指定密碼文件,這樣就可以在腳本中使用而無需互動式地輸入驗證密碼了,這里需要注意的是這份密碼文件許可權屬性要設得只有屬主可讀。
B、一些實例
B1、列出rsync 伺服器上的所提供的同步內容;
首先:我們看看rsync伺服器上提供了哪些可用的數據源
# rsync --list-only [email protected]::
++++++++++++++++++++++++++++++++++++++++++++++
Welcome to use the mike.org.cn rsync services!
2002------2009
++++++++++++++++++++++++++++++++++++++++++++++
rhel4home This is RHEL 4 data
註:前面是rsync所提供的數據源,也就是我們在rsyncd.conf中所寫的[rhel4home]模塊。而「This is RHEL 4 data」是由[rhel4home]模塊中的 comment = This is RHEL 4 data 提供的;為什麼沒有把rhel4opt數據源列出來呢?因為我們在[rhel4opt]中已經把list=no了。
⑻ Linux下數據備份命令scp、rsync和後台運行
scp和rsync 均可實現文件的復制,但相比較,scp佔用系統資源較小,rsync速度較快。當小文件眾多時,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用。可根據需要這倆選其一實現文件復制。
scp 是secure 的縮寫,scp是Linux系統下基於ssh登錄進行安全的遠程文件拷貝命令。
可以實現本地文件復制到遠程伺服器,也可以將遠程文件復制到本地。
rsync 是remote sync的縮寫。使用rsync備份數據時,不會直接覆蓋以前的數據(如果數據已經存在),而是先判斷已存在的數據和新數據的差異(默認規則是文件大小或修改時間有差異),只有數據不相同時才會把不相同的部分覆蓋。在僅作增量數據的時比scp靈活。
一般CentOS默認安裝rsync,若使用 rsync -v 提示找不到命令,可使用 yum install -y rsync 安裝。
單個冒號和雙冒號的區別 :使用rsync在遠程傳輸數據前,是需要進行登陸認證的,這個過程可使用ssh協議也可以使用rsync協議完成。單冒號(:)使用的是ssh協議;雙冒號(::)使用的是rsync協議。
默認情況下,rsync只確保源文件的所有內容(明確排除的文件除外)都復制到目標目錄。它不會使兩個目錄保持不同,並且不會刪除文件。如果要使目標目錄成為源目錄的鏡像副本,則使用--delete選項。可刪除只存在目標目錄,不存在於源目錄的文件。
增量備份算是一個經常使用的場景了。兩台伺服器之間進行文件定期備份,無需所有文件都一遍,僅復制有變動的文件。
具體做法是,第一次同步是全量備份,所有文件在基準目錄裡面同步一份。以後每一次同步都是增量備份,只同步源目錄與基準目錄之間有變動的部分,將這部分保存在一個新的目標目錄。這個新的目標目錄之中,也是包含所有文件,但實際上,只有那些變動過的文件是存在於該目錄,其他沒有變動的文件都是指向基準目錄文件的硬鏈接。
--link-dest 參數用來指定同步時的基準目錄。
上面命令中, --link-dest 參數指定基準目錄 /compare/path ,然後源目錄 /source/path 跟基準目錄進行比較,找出變動的文件,將它們拷貝到目標目錄 /target/path 。那些沒變動的文件則會生成硬鏈接。這個命令的第一次備份時是全量備份,後面就都是增量備份了。
一般伺服器之間復制文件都比較大,為防止誤操作,最好在後台運行。但因為需要和遠程伺服器之間的ssh通訊多是需要密碼的,所以不能直接使用nohup 放置於後台。無論是scp還是rsync都可操作如下:
後台和前台任務的切換
scp不支持斷點續傳,掛起scp進程可能導致數據缺失。傾向於使用rsync。
如果有其他任務需要使用nohup後台運行,但執行時卻忘記了使用nohup,也可參照此方法進行設置。
參考:1. Linux之scp命令及後台運行scp
⑼ linux上的rsync命令詳解
rsync 就是遠程同步的意思remote sync.
rsync 被用在UNIX / Linux執行備份操作操作.
rsync 工具包被用來從一個位置到另一個位置高效地同步文件和文件夾. rsync可以實現在同一台機器的不同文件直接備份,也可以跨伺服器備份.
rsync 語法如下
從語法結構我們可以看出, 源和目標即可以在本地也可以在遠端. 如果是遠端的話,需要指明登錄用戶名, 遠端伺服器名, 和遠端文件或目錄. 同時源可以是多個, 目標位置只能是一個.
說明:
-z: --compress 使用壓縮機制
-v: --verbose 列印詳細信息
-r: --recursive 以遞歸模式同步子目錄
注意: 同步完成後, 我們會發現文件的時間戳timestamps發生了改變.
有時我們希望拷貝或同步時, 時間戳不要發生變化, 源文件是什麼時間戳,目標文件就是什麼猜悉敏時間戳, 這時我們需要使用 -a --archive 歸檔模式選項. -a 選項相當於7個選項的組合 -rlptgoD
-r, --recursive: 遞歸模式Recursive mode
-l, --links: 將符號鏈接當作符號鏈接文件拷貝, 不拷貝符合鏈接指向的文件內容.
-p, --perms: 保留文件許可權
-t, --times: 保留陸高修改時間戳
-g, --group: 保留用戶組信息
-o, --owner: 保留用戶信息(需要超級用戶許可權)
-D, 相當於 --devices --specials 的組合, 保留設備文件, 保留特殊文件.
同步完成後, 我們再來看文件屬性, 時間戳信息得到了保留, 不僅如此文件的所有者 和所在組也得到保穗枝留.
說明: Pubkeys 是一個普通文件
使用rsync, 也可以從本地拷貝多個文件或目錄到遠端, 以下即為示例:
注意:
與本地文件拷貝不同的地方在於, 當拷貝文件到遠程伺服器時, 我們指定遠程主機上的用戶名, 伺服器地址, 路徑等信息, 類是於使用scp命令拷貝, 如果沒有設置ssh免密碼登錄我們還需要提供遠程用戶的密碼等信息.有時你不想頻繁輸入密碼, 或者rsync運行在一個無人執守的腳本裡面, 這是需要預先設置ssh免密登錄, 或者使用結合expect命令,自動輸入密碼, 但是出於安全考慮, 密碼需要加密. 所以在條件許可的情況下, 還是推薦設置ssh免密登錄.
與示例 4 稍有不同, 這時遠端目錄或文件作為源位置, 本地目錄或文件作為目標位置, 示例如下:
rsync 允許指定遠程主機上運行shell命令.
這時需要使用 -e 選項:
-e, --rsh=COMMAND 指定遠端使用的shell命令
Use rsync -e ssh to specify which remote shell to use. In this case, rsync will use ssh.
在一下特殊的使用場景中, 我們不希望拷貝文件時, 我們不希望拷貝過程覆蓋掉目標位置中用戶做出的修改. 這時我們需要使用 -u 選項明確的告訴rsync命令保留用戶在目標文件中作出的修改. 在下面的例子中, 文件Basenames是用戶基於上次的拷貝, 修改過的文件, 當我們使用了-u 選項後, 該文件中的修改將不會被覆蓋掉.
在某些特殊場景中, 我們只需要遠程伺服器上的目錄結構, 而不希望花大量時間, 帶寬拷貝文件內容, 這時我們可以使用 -d, --dirs選項來達到目的.
有時我們希望拷貝文件時, 能實時的顯示拷貝進度, 以及傳輸速率等信息. 尤其是拷貝大文件時, 程序不輸出信息, 用戶往往無法區分程序是在響應中, 還是已經掛起, 在這種情況下如果使用 –progress 就會非常有幫助.
rsync –progress option displays detailed progress of rsync execution as shown below.
你也可以使用rsnapshot工具 (rsnapshot會調用rsync)來備份本地linux伺服器, 或者備份遠程linux伺服器.
有時我們希望目標文件和源文件保持嚴格一致, 不要多文件也不要少文件, 這是我們可能需要使用 -delete 選項來達到目的. 如果使用 -delete 選項, rsync將刪除目標位置多餘的文件或文件夾. 此選項還可以結合--delete-excluded 選項一起使用, 添加一些例外的文件.
上述示例中, new-file.txt 是源文件中沒有的文件, 其將會在拷貝時被刪除掉.
在某些特殊的場景下, 我們只想更新, 目標位置已經存在的文件或目錄, 而不關心源位置的新文件, 這時我們可以使用-existing 選項僅僅更新已經存在的文件.
讓我們來驗證一下這個選項的功能, 首先在源端添加一個新文件 new-file.txt.
從上面的例子可以看到, 由於加了--existing選項新文件new-file.txt沒有被拷貝到目標位置
選項-i, --itemize-changes 非常有用, 當我們想了解目標位置和源位置的文件差異時.
在源端:
在目標端:
注意: 在上面的例子中, 源位置和目標位置有兩處差異. 第一, 源文件Basenames的所有者和組 與 目標文件不同, 第一Dirnames文件大小也不一樣.
現在讓我們來看看rsync會怎樣顯示這些差異
輸出信息只在相應文件前面顯示了9個字母來標識改變, 這些字母具體是什麼意思呢? 請參考以下詳細說明
rsync 可以使用--include 和 --exclude 選項結合通配符進行文件或文件夾過濾
在上面的示例中, 僅僅以P打頭的文件和文件夾被包含了進來, 其他的文件都被過濾在拷貝的過程中被排除在外了.
可以使用--max-size 告訴rsync 不要拷貝大小超過某個值的文件, 可以使用K, M, G指定文件大小, M for megabytes and G for gigabytes.
rsync 有個重要優點就是, 可以做到在拷貝的過程中, 只拷貝發生變化了的部分, 而不是發送整個文件.
但是在某些場景中, 比如文件較少, 文件size較小時, 我們的帶寬又足夠大, cpu資源相對又貧乏, 我們不希望它這樣做, 因為畢竟計算源端和目標端的checksum, 並做對比, 也需要額外cpu開銷. 這時我們可以使用 -W, --whole-file 選項, 讓rsync不用計算那麼多, 一上來就直接開始傳送文件. 我們可以像下面這么做.
15個Rsync命令實例
⑽ windows rsync傳輸到linux備份
一些軟體安裝在windows上想要對上面的文件進行異地備份
後來找到cwRsync ——同步Windows文件到Linux,和linux的rsync一樣的功效
鏈接: https://pan..com/s/1zDojiAAnpBaCDUCRiYzXzw
提取碼:07l1
windows默認安裝即可
windows上配置rsyncd.conf 文件
cat /cygdrive/d/Program Files (x86)/ICW/rsync_db.ps
此密碼文橋腔件里的敏運衫格式是"用戶名:密碼",這個密碼可以隨意指定。但最好設置伺服器的用戶名和密碼。如果覺得不安全,就另外創建一個用戶名和密碼,專門用於rsync同步之用。
但是千萬要記得這個創建的用戶名對E:\Setting\Rsync\rsync_db.ps這個密碼文件要有修改悄腔的操作許可權。
安裝完成後windows-服務,就可以找到,修改好配置文件,重啟服務即可
測試是否可以連通
進入Linux伺服器,新建一個backup_passwd的文件,內容為在上面windows中RsyncServer中設定的密碼內容:
linux伺服器上要安裝rsync環境。這里將windows備份數據同步到linux的/Win_Back目錄下
--delete表示如果有刪除也更新,可以實現目標文件夾增加和刪除和修改都更新的目的
放到linux的crontab中,每天執行一次,第一次全量備份會比較慢,後期都是增量備份會很快
windows重啟後rsync服務並沒有啟動,服務——RsyncServer,手動啟動後報錯
「本地計算機上的rsyncserver服務啟動後停止,某些服務在未由其他服務或程序」
後查看原來是rsyncserver異常結束時,pid文件未及時刪除,導致再次啟動服務時因檢測到pid文件而認為服務已經啟動。而windows的服務管理器並不以pid為檢測標准,所以彈出啟動又停止的提示
解決:
手動刪除esyncserver產生的pid文件,再次啟動即可
C:\Program Files (x86)\ICW\rsyncd.pid