導航:首頁 > 文件類型 > linux增量文件壓縮復制

linux增量文件壓縮復制

發布時間:2025-03-24 13:09:46

1. linux系統怎麼復制文件夾下的全部文件到另外文件夾

在Linux系統中,利用cp命令能夠便捷地進行文件復制。若要將一個文件夾內的所有文件(包括子文件夾)復制到另一個文件夾,可以使用cp命令的-r參數,以遞歸方式復制,命令格式如下:

cp -ri A/B/* A1/B1/ 回車

在復制過程中,若遇到已存在相同文件名的情況,系統會提示是否覆蓋,輸入'y'並按回車鍵確認覆蓋,若不希望看到覆蓋提示,可以使用-rf參數強制覆蓋:

若源文件夾A與目標文件夾A1不在同一目錄下,建議提供絕對路徑,比如:

/xxx/xxx/A/B/* /xxx/A1/B1/

例如,需要先創建目標文件夾:

mkdir /home/server/test

接著執行復制命令:

cp -ri /home/server/tomcat/*/ /home/server/test/

若遇到類似「cp: target '/home/server/test/' is not a directory」的錯誤提示,表明目標路徑不是一個目錄,需確保目標路徑確實是一個目錄。

在實際操作中,若遇到大量文件需要復制,可以考慮使用更高級的工具,如rsync,它不僅支持遞歸復制,還能進行增量復制,有效節省帶寬和時間。

此外,使用-c參數可以讓cp命令在復制文件時檢查源文件和目標文件的修改時間,若目標文件比源文件新,就不會進行復制。

總之,熟練掌握cp命令及其參數的使用,能夠大大提高在Linux系統中文件管理的效率。

2. 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 顯示幫助信息

3. Linux拷貝文件的命令!

給你一個鏈接地址吧,你找的應該是在這個頁面里的這句話:
# cp -avx /home/* /mnt/newhome

即:
解決方案的開始

在開始轉換之前,首先在硬碟驅動器的結尾處對未使用的空間進行分區。我使用 cfdisk 創建了一個 35 GB 的分區 (/dev/hda5),然後將分區的分區類型設置成 "8E"(正規 LVM 分區類型)。在這一更改後,我進行了重新引導以強制重新讀取分區表。在重新引導後,我的分區表如下:

# sfdisk -l
Disk /dev/hda: 89355 cylinders, 16 heads, 63 sectors/track
Units = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/hda1 * 0+ 247 248- 124960+ 83 Linux
/dev/hda2 248 743 496 249984 82 Linux swap
/dev/hda3 744 20119 19376 9765504 83 Linux
/dev/hda4 20120 89354 69235 34894440 5 Extended
/dev/hda5 20120+ 89354 69235- 34894408+ 8e Linux LVM

既然有了空的 35 GB 的分區,我就准備為 LVM 初始化它。以下是過程 -- 首先,我將 35 GB 初始化成 物理卷;然後,使用這個物理卷創建一個 卷組 ,最後,在卷組上分配一些范圍,創建將包含新文件系統並存放當前 /home 中所有文件的 邏輯卷。

為開始這個過程,我使用 pvcreate 命令將 /dev/hda5 初始化成物理卷:

# pvcreate /dev/hda5
pvcreate -- physical volume "/dev/hda5" successfully created

pvcreate 在 /dev/hda5 上設置一個特殊的「記帳」區域,稱作 VGDA(「卷組描述符區域」)。LVM 使用該區域來記錄物理范圍是如何分配的,以及其它一些操作。

下一步是創建卷組並向該卷組添加 /dev/hda5。卷組將充當范圍池(許多存儲塊)。創建卷組之後,創建所需數量的邏輯卷。我決定將卷組稱為 "main":

# vgcreate main /dev/hda5
vgcreate -- INFO: using default physical extent size 4 MB
vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte
vgcreate -- doing automatic backup of volume group "main"
vgcreate -- volume group "main" successfully created and activated

vgcreate 命令執行幾個操作。除了創建 "main" 卷組以外,它還設置 /dev/hda5,使它使用 4 MB 的范圍,4 GB 是預設范圍大小。這意味著在卷組上創建的所有邏輯卷都可以以 4 MB 為增量單位來進行擴充或縮減。

由於內核限制的原因,范圍大小決定了邏輯卷的最大大小。您可以從上面的輸出中看出,4 MB 的范圍大小決定了邏輯卷大小限制為 256 GB,如果您向卷組添加幾個高容量驅動器,這是很容易達到的邏輯卷組大小。如果每一個卷最後都大於 256 GB,我建議您在運行 vgcreate 時指定更大一些的范圍大小。范圍的大小可以是從 8 KB 到 512 MB 之間的任何值,並且必須總是 2 的倍數。通過將范圍大小增加到 4 MB 以上,最大的物理卷大小將相應地增加到最大為 1 Petabyte(盡管當今現實世界中,x86 系統上的大小限制是 2 Terabytes)。例如,如果希望使用 32 MB 的范圍創建卷組,我會輸入:

# vgcreate -s 32M main /dev/hda5

32 MB 是個合適的范圍大小,因為 32 MB 的顆粒度仍然便於管理,並將引導的最大邏輯卷大小增加到 2 TB。創建卷組之後,可以通過輸入 "vgdisplay" 來查看其信息:

# vgdisplay
--- Volume group ---
VG Name main
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 1
Act PV 1
VG Size 33.28 GB
PE Size 4 MB
Total PE 8519
Alloc PE / Size 0 / 0
Free PE / Size 8519 / 33.28 GB
VG UUID 2qC2H2-iA8s-qW6F-cwXx-JVIh-I6VC-VVCGmn

既然有了自己的卷組,我准備創建邏輯卷。我決定在最初時將它的大小設置為 8 GB,並稱它作 "lv_home":

# lvcreate -L8G -nlv_home main
lvcreate -- doing automatic backup of "main"
lvcreate -- logical volume "/dev/main/lv_home" successfully created

然後,在邏輯卷上創建文件系統:

# mkreiserfs /dev/main/lv_home

<----------- MKREISERFSv2 ----------->

Block size 4096 bytes
Block count 2097152
Used blocks 8275
Journal - 8192 blocks (18-8209), journal header is in block 8210
Bitmaps: 17, 32768, 65536, 98304, 131072, 163840,
196608, 229376, 262144, 294912, 327680, 360448,
393216, 425984, 458752, 491520, 524288, 557056,
589824, 622592, 655360, 688128, 720896, 753664,
786432, 819200, 851968, 884736, 917504, 950272,
983040, 1015808, 1048576, 1081344, 1114112,
1146880, 1179648, 1212416, 1245184, 1277952,
1310720, 1343488, 1376256, 1409024, 1441792,
1474560, 1507328, 1540096, 1572864, 1605632,
1638400, 1671168, 1703936, 1736704, 1769472,
1802240, 1835008, 1867776, 1900544, 1933312,
1966080, 1998848, 2031616, 2064384
Root block 8211
Hash function "r5"
ATTENTION: ALL DATA WILL BE LOST ON '/dev/main/lv_home'! (y/n)y
journal size 8192 (from 18)
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..done.

既然創建了文件系統,我就可以在 /mnt/newhome 上安裝它:

# mkdir /mnt/newhome
# mount /dev/main/lv_home /mnt/newhome
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda3 9765200 6989840 2775360 72% /
tmpfs 291388 0 291388 0% /dev/shm
/dev/main/lv_home 8388348 32840 8355508 1% /mnt/newhome

您可以從上面看出,我幾乎准備復制 /home 中的所有數據。在開始之前,我把系統降低到運行級別 1 以確保在復制 /home 中的文件時,沒有用戶或進程能夠訪問或修改它們:

# init 1

然後,開始復制文件:

# cp -avx /home/* /mnt/newhome

復制操作需要大約 10 分鍾的時間完成。然後,我將原始 /home 備份成 /home.old,這只是為在復制過程中有任何錯誤而准備的。創建一個新的安裝點,然後在 /home 上重新安裝新 home:

# cd /
# mv home home.old
# mkdir home
# umount /mnt/newhome
# mount /dev/main/lv_home /home

然後,應該設置伺服器以使我的新 /home 分區可以在每次啟動機器時使用。首先修改 /etc/fstab 以使它包括新的 /home 項:

# /etc/fstab: static file system information.
#
# fs mountpoint type opts mp/pass
/dev/hda3 / reiserfs defaults 1 1
/dev/main/lv_home /home reiserfs defaults 2 2
/dev/hda2 none swap sw 0 0
/dev/hda1 /boot reiserfs noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
none /dev/pts devpts mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0

然後,我對初始化腳本進行了一些小小改動。我修改了 "checkroot" 啟動腳本,使以下命令可以在根分區重新安裝讀/寫後立即運行:

/sbin/vgscan
/sbin/vgchange -a y

接下來,我修改了在關機時運行的文件系統卸裝腳本,使以下命令在卸裝了所有文件系統 後立即運行:

/sbin/vgchange -a n

完成了這些步驟後,我重新引導了機器,讓我高興的是一切都工作正常。在接下去的一天左右的時間里完全沒有問題,隨後我刪除了 /home.old 以釋放根文件系統上的一些空間。太棒了!到 LVM 的轉換成功了。

4. linux rsync命令

linux系統下rsync命令是什麼呢?下面是具體介紹:
1、rsync有六種不同的工作模式:
拷貝本地文件:當SRC和DES路徑信息都不包含有單個冒號」:」分隔符時就啟動這種工作模式。
rsync -a /data /backup
使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號」:」分隔符時啟動該模式。
rsync -avz *.c foo:src
使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號」:」分隔符時啟動該模式。
rsync -avz foo:src/bar /data
從遠程rsync伺服器中拷貝文件到本地機。當SRC路徑信息包含」::」分隔符時啟動該模式。
rsync -av [email protected]:: /databack
從本地機器拷貝文件到遠程rsync伺服器中。當DST路徑信息包含」::」分隔符時啟動該模式。
rsync -av /databack [email protected]::
列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。
rsync -v rsync://192.168.1.2/
2、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 給出某些文件的傳輸狀態
--log-format=formAT 指定日誌文件格式
--password-file=FILE 從FILE中得到密碼
--bwlimit=KBPS 限制I/O帶寬,KBytes per second
-h, --help 顯示幫助信息
3、使用rsync一定要注意的一點是,源路徑如果是一個目錄的話,帶上尾隨斜線和不帶尾隨斜線是不一樣的,不帶尾隨斜線表示的是整個目錄包括目錄本身,帶上尾隨斜線表示的是目錄中的文件,不包括目錄本身。例如:
[root@xuexi ~]# rsync /etc /tmp
[root@xuexi ~]# rsync /etc/ /tmp
第一個命令會在/tmp目錄下創建etc目錄,而第二個命令不會在/tmp目錄下創建etc目錄,源路徑/etc/中的所有文件都直接放在/tmp目錄下。
將/etc/fstab拷貝到/tmp目錄下。
[root@xuexi ~]# rsync /etc/fstab /tmp
將/etc/cron.d目錄拷貝到/tmp下。
[root@xuexi ~]# rsync -r /etc/cron.d /tmp
該命令會在目標主機上創建/tmp/cron.d目錄,並將/etc/cron.d/中的文件放入到/tmp/cron.d/目錄中,也就是說默認情況下,是不會在目錄路徑下創建上層目錄/etc的。
將/etc/cron.d目錄拷貝到/tmp下,但要求在/tmp下也生成etc子目錄。
[root@xuexi ~]# rsync -R -r /etc/cron.d /tmp
其中」-R」選項表示使用相對路徑,此相對路徑是以目標目錄為根的。對於上面的示例,表示在目標上的/tmp下創建etc/cron.d目錄,即/tmp/etc/cron.d,etc/cron.d的根」/」代表的就是目標/tmp。
如果要拷貝的源路徑較長,但只想在目標主機上保留一部分目錄結構,例如要拷貝/var/log/anaconda/*到/tmp下,但只想在/tmp下保留從log開始的目錄,如何操作?使用一個點代表相對路徑的起始位置即可,也就是將長目錄進行劃分。
[root@xuexi ~]# rsync -R -r /var/./log/anaconda /tmp
這樣,從點開始的目錄都是相對路徑,其相對根目錄為目標路徑。所以對於上面的示例,將在目標上創建/tmp/log/anaconda/*。
對遠程目錄下已存在文件做一個備份。
[root@xuexi ~]# rsync -R -r –backup /var/./log/anaconda /tmp
這樣在目標目錄下,已存在的文件就被做一個備份,備份文件默認使用」~」做後綴,可以使用」–suffix」指定備份後綴。
[root@xuexi tmp]# ll log/anaconda/ total 3112
-rw——- 1 root root 6668 Jul 14 12:45 anaconda.log
-rw——- 1 root root 6668 Jul 14 11:44 anaconda.log~
-rw——- 1 root root 3826 Jul 14 12:45 ifcfg.log
-rw——- 1 root root 3826 Jul 14 11:44 ifcfg.log~
-rw——- 1 root root 1102699 Jul 14 12:45 journal.log
-rw——- 1 root root 1102699 Jul 14 11:44 journal.log~
-rw——- 1 root root 0 Jul 14 12:45 ks-script-1uLekR.log
-rw——- 1 root root 0 Jul 14 11:44 ks-script-1uLekR.log~
-rw——- 1 root root 0 Jul 14 12:45 ks-script-iGpl4q.log
-rw——- 1 root root 0 Jul 14 11:44 ks-script-iGpl4q.log~
-rw——- 1 root root 160420 Jul 14 12:45 packaging.log
-rw——- 1 root root 160420 Jul 14 11:44 packaging.log~
-rw——- 1 root root 27906 Jul 14 12:45 program.log
-rw——- 1 root root 27906 Jul 14 11:44 program.log~
-rw——- 1 root root 78001 Jul 14 12:45 storage.log
-rw——- 1 root root 78001 Jul 14 11:44 storage.log~
-rw——- 1 root root 197961 Jul 14 12:45 syslog
-rw——- 1 root root 197961 Jul 14 11:44 syslog~
可以使用」–backup-dir」指定備份文件保存路徑,但要求保存路徑必須存在。
[root@xuexi ~]# mkdir /tmp/log_back
[root@xuexi ~]# rsync -R -r –backup –backup-dir=/tmp/log_back /var/./log/anaconda /tmp
指定備份路徑後,默認將不會加備份後綴,除非使用」–suffix」顯式指定後綴,如」–suffix=~」。
[root@xuexi tmp]# tree /tmp/log_back/
/tmp/log_back/
└── log
└── anaconda
├── anaconda.log
├── ifcfg.log
├── journal.log
├── ks-script-1uLekR.log
├── ks-script-iGpl4q.log
├── packaging.log
├── program.log
├── storage.log
└── syslog

閱讀全文

與linux增量文件壓縮復制相關的資料

熱點內容
win10minidump文件內容 瀏覽:389
菜鳥網路還存在哪些劣勢 瀏覽:726
steamlinuxdota2 瀏覽:371
java如何給已存在的pdf設置密碼 瀏覽:481
分區助手會不會刪除以前文件 瀏覽:547
linux目錄鏈接 瀏覽:468
pdf文件復制所有內容 瀏覽:636
就業網站的日語怎麼說 瀏覽:497
cad打開dwg文件後如何顯示內容 瀏覽:437
此電腦文件夾的路徑變成了d盤 瀏覽:89
蘋果設置開機啟動 瀏覽:484
電腦里啟動文件找不到 瀏覽:692
java中單引號怎麼輸入 瀏覽:647
熊貓繪畫app怎麼畫眼睛漸變色 瀏覽:68
要如何編程游戲 瀏覽:571
微信支付虛假交易 瀏覽:92
在哪裡查個人貸款統計數據 瀏覽:649
免費字體哪裡下載app 瀏覽:447
移動磁碟錄音文件找不到了 瀏覽:284
win10補丁更新失敗 瀏覽:330

友情鏈接