Linux定時同步文件夾
rsync 簡介
Rsync是linux/Unix文件同步和傳送工具。用于替代rcp的一個工具,可通過 LAN/WAN 快速同步多臺主機之間的文
件。也可以使用 rsync 同步本地硬盤中的不同目錄。rsync 使用所謂的rsync算法進行數據同步,這種算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。
本次使用rsync定時同步兩臺機器間的文件夾,Linux是redhat6.5,默認已經安裝了rsync.
同步文件夾
首次使用如下命令進行全量同步,并將同步的日志記錄在/var/logs/rsync.log文件中。
1
rsync -ravpogt --log-file=/var/logs/rsync.log --log-file-format='%i %o %f %M %t' /source/path IP:/target/path
會顯示同步的日志
1
2
3
4
5
6
sending incremental file list
....
....
....
sent 5117763 bytes ?received 90 bytes ?2047141.20 bytes/sec
total size is 77135632871 ?speedup is 15071.87
第一次同步完成,就需要定時去執行這個命令了,Linux的cron正好可以做這件事,將上面命令保存到一個文件中,并設置可執行權限.
1
vim syncfile.sh
加入下面內容:
1
rsync -ravpogt --log-file=/var/logs/rsync.log --log-file-format='%i %o %f %M %t' /source/path IP:/target/path
注意要修改IP目錄等信息。
設置可執行權限
1
chmod 755 syncfile.sh
然后定時執行這個文件就可以。
使用命令編輯定時任務內容:
1
crontab -e
增加內容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
* * * * * sh /root/syncfile.sh
* * * * * sleep 3 && sh /root/syncfile.sh
* * * * * sleep 6 && sh /root/syncfile.sh
* * * * * sleep 9 && sh /root/syncfile.sh
* * * * * sleep 12 && sh /root/syncfile.sh
* * * * * sleep 15 && sh /root/syncfile.sh
* * * * * sleep 18 && sh /root/syncfile.sh
* * * * * sleep 21 && sh /root/syncfile.sh
* * * * * sleep 24 && sh /root/syncfile.sh
* * * * * sleep 27 && sh /root/syncfile.sh
* * * * * sleep 30 && sh /root/syncfile.sh
* * * * * sleep 33 && sh /root/syncfile.sh
* * * * * sleep 36 && sh /root/syncfile.sh
* * * * * sleep 39 && sh /root/syncfile.sh
* * * * * sleep 42 && sh /root/syncfile.sh
* * * * * sleep 45 && sh /root/syncfile.sh
* * * * * sleep 48 && sh /root/syncfile.sh
* * * * * sleep 51 && sh /root/syncfile.sh
* * * * * sleep 54 && sh /root/syncfile.sh
* * * * * sleep 57 && sh /root/syncfile.sh
上面的內容是指每三秒執行一次syncfile.sh。
rsync 參數
rsync參數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
-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, --copy-links ? ? ? ? ? ? ?想對待常規文件一樣處理軟鏈結
--copy-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
Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。