溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

centos7下rsync+crontab如何定期同步備份

發(fā)布時(shí)間:2021-05-31 11:23:31 來(lái)源:億速云 閱讀:168 作者:小新 欄目:服務(wù)器

這篇文章給大家分享的是有關(guān)centos7下rsync+crontab如何定期同步備份的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

這次整一個(gè)Linux下的腳本sh,執(zhí)行定期自動(dòng)備份數(shù)據(jù)

centos7下rsync+crontab如何定期同步備份

客戶端:192.168.0.100(rsync-Linux)

服務(wù)端:192.168.0.252(存儲(chǔ))

rsync簡(jiǎn)介:

rsync是linux系統(tǒng)下的數(shù)據(jù)鏡像備份工具。使用快速增量備份工具Remote Sync可以遠(yuǎn)程同步,支持本地復(fù)制,或者與其他SSH、rsync主機(jī)同步。

1.服務(wù)端配置:

rsync的服務(wù)端主要是群輝的存儲(chǔ),所以直接有界面式的配置,所以這邊就不詳細(xì)講解,如下圖:

centos7下rsync+crontab如何定期同步備份

2.客戶端配置:

創(chuàng)建密碼文件,/etc/rsyncd/rsyncd.pass,并修改為 600 權(quán)限

[root@localhost ~]# mkdir rsyncd
[root@localhost ~]# vim /rsyncd/rsyncd.pass
[root@localhost ~]# chmod 600 /rsyncd/rsyncd.pass

▲說(shuō)明:/rsyncd/rsyncd.pass其內(nèi)密碼需要和服務(wù)端內(nèi)/etc/rsyncd/rsyncd.pass或存儲(chǔ)rsync指定用戶的密碼保持一致

客戶端向服務(wù)端傳輸文件,如果是 873 端口,可以把 --port 去掉

rsync -arvz --progress /data rsync@192.168.0.252::log --password-file=/rsyncd/rsyncd.pass

若有需要也可以從服務(wù)端拉取文件,需要把服務(wù)器的 /etc/rsyncd/rsyncd.conf 中的 write only = yes 給去掉

#拉取整個(gè)目錄
rsync -arvz --progress --password-file=/rsyncd/rsyncd.pass --port=873 rsync@192.168.0.252::log /var/log
#拉取單個(gè)文件
rsync -arvz --progress --password-file=/rsyncd/rsyncd.pass --port=873 rsync@192.168.0.252::log/a.log /var/log

rsync服務(wù)端配置參數(shù):

全局參數(shù)
在文件中[module]之前的所有參數(shù)都是全局參數(shù),當(dāng)然也可以在全局參數(shù)部分定義模塊參數(shù),這時(shí)候該參數(shù)的值就是所有模塊的默認(rèn)值。
port
指定后臺(tái)程序使用的端口號(hào),默認(rèn)為873。
motd file
"motd file"參數(shù)用來(lái)指定一個(gè)消息文件,當(dāng)客戶連接服務(wù)器時(shí)該文件的內(nèi)容顯示給客戶,默認(rèn)是沒(méi)有motd文件的。
log file
"log file"指定rsync的日志文件,而不將日志發(fā)送給syslog。比如可指定為“/var/log/rsyncd.log”。
pid file
指定rsync的pid文件,通常指定為“/var/run/rsyncd.pid”。
syslog facility
指定rsync發(fā)送日志消息給syslog時(shí)的消息級(jí)別,常見(jiàn)的消息級(jí)別是:uth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security, sys-log, user, uucp, local0, local1, local2, local3,local4, local5, local6和local7。默認(rèn)值是daemon。
模塊參數(shù)
主要是定義服務(wù)器哪個(gè)目錄要被同步。其格式必須為“[module]”形式,這個(gè)名字就是在rsync 客戶端看到的名字,其實(shí)有點(diǎn)象Samba服務(wù)器提供的共享名。而服務(wù)器真正同步的數(shù)據(jù)是通過(guò) path 來(lái)指定的。我們可以根據(jù)自己的需要,來(lái)指定多個(gè)模塊,模塊中可以定義以下參數(shù):
comment
給模塊指定一個(gè)描述,該描述連同模塊名在客戶連接得到模塊列表時(shí)顯示給客戶。默認(rèn)沒(méi)有描述定義。
path
指定該模塊的供備份的目錄樹(shù)路徑,該參數(shù)是必須指定的。
use chroot
如 果"use chroot"指定為true,那么rsync在傳輸文件以前首先chroot到path參數(shù)所指定的目錄下。這樣做的原因是實(shí)現(xiàn)額外的安全防護(hù),但是缺 點(diǎn)是需要以roots權(quán)限,并且不能備份指向外部的符號(hào)連接所指向的目錄文件。默認(rèn)情況下chroot值為true。
uid
該選項(xiàng)指定當(dāng)該模塊傳輸文件時(shí)守護(hù)進(jìn)程應(yīng)該具有的uid,配合gid選項(xiàng)使用可以確定哪些可以訪問(wèn)怎么樣的文件權(quán)限,默認(rèn)值是"nobody"。
gid
該選項(xiàng)指定當(dāng)該模塊傳輸文件時(shí)守護(hù)進(jìn)程應(yīng)該具有的gid。默認(rèn)值為"nobody"。
max connections
指定該模塊的最大并發(fā)連接數(shù)量以保護(hù)服務(wù)器,超過(guò)限制的連接請(qǐng)求將被告知隨后再試。默認(rèn)值是0,也就是沒(méi)有限制。
list
該選項(xiàng)設(shè)定當(dāng)客戶請(qǐng)求可以使用的模塊列表時(shí),該模塊是否應(yīng)該被列出。如果設(shè)置該選項(xiàng)為false,可以創(chuàng)建隱藏的模塊。默認(rèn)值是true。
read only
該選項(xiàng)設(shè)定是否允許客戶上載文件。如果為true那么任何上載請(qǐng)求都會(huì)失敗,如果為false并且服務(wù)器目錄讀寫權(quán)限允許那么上載是允許的。默認(rèn)值為true。
exclude
用來(lái)指定多個(gè)由空格隔開(kāi)的多個(gè)文件或目錄(相對(duì)路徑),并將其添加到exclude列表中。這等同于在客戶端命令中使用--exclude來(lái)指定模式,一個(gè) 模塊只能指定一個(gè)exclude選項(xiàng)。但是需要注意的一點(diǎn)是該選項(xiàng)有一定的安全性問(wèn)題,客戶很有可能繞過(guò)exclude列表,如果希望確保特定的文件不能 被訪問(wèn),那就最好結(jié)合uid/gid選項(xiàng)一起使用。
exclude from
指定一個(gè)包含exclude模式的定義的文件名,服務(wù)器從該文件中讀取exclude列表定義。
include
用來(lái)指定不排除符合要求的文件或目錄。這等同于在客戶端命令中使用--include來(lái)指定模式,結(jié)合include和exclude可以定義復(fù)雜的exclude/include規(guī)則。
include from
指定一個(gè)包含include模式的定義的文件名,服務(wù)器從該文件中讀取include列表定義。
auth users
該選項(xiàng)指定由空格或逗號(hào)分隔的用戶名列表,只有這些用戶才允許連接該模塊。這里的用戶和系統(tǒng)用戶沒(méi)有任何關(guān)系。如果"auth users"被設(shè)置,那么客戶端發(fā)出對(duì)該模塊的連接請(qǐng)求以后會(huì)被rsync請(qǐng)求challenged進(jìn)行驗(yàn)證身份這里使用的 challenge/response認(rèn)證協(xié)議。用戶的名和密碼以明文方式存放在"secrets file"選項(xiàng)指定的文件中。默認(rèn)情況下無(wú)需密碼就可以連接模塊(也就是匿名方式)。
secrets file
該選項(xiàng)指定一個(gè)包含定義用戶名:密碼對(duì)的文件。只有在"auth users"被定義時(shí),該文件才有作用。文件每行包含一個(gè)username:passwd對(duì)。一般來(lái)說(shuō)密碼最好不要超過(guò)8個(gè)字符。沒(méi)有默認(rèn)的 secures file名,需要限式指定一個(gè)(例如:/etc/rsyncd.passwd)。注意:該文件的權(quán)限一定要是600,否則客戶端將不能連接服務(wù)器。
strict modes
該選項(xiàng)指定是否監(jiān)測(cè)密碼文件的權(quán)限,如果該選項(xiàng)值為true那么密碼文件只能被rsync服務(wù)器運(yùn)行身份的用戶訪問(wèn),其他任何用戶不可以訪問(wèn)該文件。默認(rèn)值為true。
hosts allow
該選項(xiàng)指定哪些IP的客戶允許連接該模塊??蛻裟J蕉x可以是以下形式:
單個(gè)IP地址,例如:192.167.0.1
整個(gè)網(wǎng)段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0
多個(gè)IP或網(wǎng)段需要用空格隔開(kāi),“*”則表示所有,默認(rèn)是允許所有主機(jī)連接。
hosts deny
指定不允許連接rsync服務(wù)器的機(jī)器,可以使用hosts allow的定義方式來(lái)進(jìn)行定義。默認(rèn)是沒(méi)有hosts deny定義。
ignore errors
指定rsyncd在判斷是否運(yùn)行傳輸時(shí)的刪除操作時(shí)忽略server上的IO錯(cuò)誤,一般來(lái)說(shuō)rsync在出現(xiàn)IO錯(cuò)誤時(shí)將將跳過(guò)--delete操作,以防止因?yàn)闀簳r(shí)的資源不足或其它IO錯(cuò)誤導(dǎo)致的嚴(yán)重問(wèn)題。
ignore nonreadable
指定rysnc服務(wù)器完全忽略那些用戶沒(méi)有訪問(wèn)權(quán)限的文件。這對(duì)于在需要備份的目錄中有些文件是不應(yīng)該被備份者得到的情況是有意義的。
lock file
指定支持max connections參數(shù)的鎖文件,默認(rèn)值是/var/run/rsyncd.lock。
transfer logging
使rsync服務(wù)器使用ftp格式的文件來(lái)記錄下載和上載操作在自己?jiǎn)为?dú)的日志中。
log format
通過(guò)該選項(xiàng)用戶在使用transfer logging可以自己定制日志文件的字段。其格式是一個(gè)包含格式定義符的字符串,可以使用的格式定義符如下所示:
%h 遠(yuǎn)程主機(jī)名
%a 遠(yuǎn)程IP地址
%l 文件長(zhǎng)度字符數(shù)
%p 該次rsync會(huì)話的進(jìn)程id
%o 操作類型:"send"或"recv"
%f 文件名
%P 模塊路徑
%m 模塊名
%t 當(dāng)前時(shí)間
%u 認(rèn)證的用戶名(匿名時(shí)是null)
%b 實(shí)際傳輸?shù)淖止?jié)數(shù)
%c 當(dāng)發(fā)送文件時(shí),該字段記錄該文件的校驗(yàn)碼
默認(rèn)log格式為:"%o %h [%a] %m (%u) %f %l",一般來(lái)說(shuō),在每行的頭上會(huì)添加"%t [%p] "。在源代碼中同時(shí)發(fā)布有一個(gè)叫rsyncstats的perl腳本程序來(lái)統(tǒng)計(jì)這種格式的日志文件。
timeout
通過(guò)該選項(xiàng)可以覆蓋客戶指定的IP超時(shí)時(shí)間。通過(guò)該選項(xiàng)可以確保rsync服務(wù)器不會(huì)永遠(yuǎn)等待一個(gè)崩潰的客戶端。超時(shí)單位為秒鐘,0表示沒(méi)有超時(shí)定義,這也是默認(rèn)值。對(duì)于匿名rsync服務(wù)器來(lái)說(shuō),一個(gè)理想的數(shù)字是600。
refuse options
通過(guò)該選項(xiàng)可以定義一些不允許客戶對(duì)該模塊使用的命令參數(shù)列表。這里必須使用命令全名,而不能是簡(jiǎn)稱。但發(fā)生拒絕某個(gè)命令的情況時(shí)服務(wù)器將報(bào)告錯(cuò)誤信息然后退出。如果要防止使用壓縮,應(yīng)該是:"dont compress = *"。
dont compress
用來(lái)指定那些不進(jìn)行壓縮處理再傳輸?shù)奈募J(rèn)值是*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

rsync常用命令:

-v, --verbose 詳細(xì)模式輸出
 -q, --quiet 精簡(jiǎn)輸出模式
 -c, --checksum 打開(kāi)校驗(yàn)開(kāi)關(guān),強(qiáng)制對(duì)文件傳輸進(jìn)行校驗(yàn)
 -a, --archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD
 -r, --recursive 對(duì)子目錄以遞歸模式處理
 -R, --relative 使用相對(duì)路徑信息
 -b, --backup 創(chuàng)建備份,也就是對(duì)于目的已經(jīng)存在有同樣的文件名時(shí),將老的文件重新命名為~filename。可以使用--suffix選項(xiàng)來(lái)指定不同的備份文件前綴。
 --backup-dir 將備份文件(如~filename)存放在在目錄下。
 -suffix=SUFFIX 定義備份文件前綴
 -u, --update 僅僅進(jìn)行更新,也就是跳過(guò)所有已經(jīng)存在于DST,并且文件時(shí)間晚于要備份的文件。(不覆蓋更新的文件)
 -l, --links 保留軟鏈結(jié)
 -L, --copy-links 想對(duì)待常規(guī)文件一樣處理軟鏈結(jié)
 --copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹(shù)以外的鏈結(jié)
 --safe-links 忽略指向SRC路徑目錄樹(shù)以外的鏈結(jié)
 -H, --hard-links 保留硬鏈結(jié)
 -p, --perms 保持文件權(quán)限
 -o, --owner 保持文件屬主信息
 -g, --group 保持文件屬組信息
 -D, --devices 保持設(shè)備文件信息
 -t, --times 保持文件時(shí)間信息
 -S, --sparse 對(duì)稀疏文件進(jìn)行特殊處理以節(jié)省DST的空間
 -n, --dry-run現(xiàn)實(shí)哪些文件將被傳輸
 -W, --whole-file 拷貝文件,不進(jìn)行增量檢測(cè)
 -x, --one-file-system 不要跨越文件系統(tǒng)邊界
 -B, --block-size=SIZE 檢驗(yàn)算法使用的塊尺寸,默認(rèn)是700字節(jié)
 -e, --rsh=COMMAND 指定使用rsh、ssh方式進(jìn)行數(shù)據(jù)同步
 --rsync-path=PATH 指定遠(yuǎn)程服務(wù)器上的rsync命令所在路徑信息
 -C, --cvs-exclude 使用和CVS一樣的方法自動(dòng)忽略文件,用來(lái)排除那些不希望傳輸?shù)奈募?
 --existing 僅僅更新那些已經(jīng)存在于DST的文件,而不備份那些新創(chuàng)建的文件
 --delete 刪除那些DST中SRC沒(méi)有的文件
 --delete-excluded 同樣刪除接收端那些被該選項(xiàng)指定排除的文件
 --delete-after 傳輸結(jié)束以后再刪除
 --ignore-errors 及時(shí)出現(xiàn)IO錯(cuò)誤也進(jìn)行刪除
 --max-delete=NUM 最多刪除NUM個(gè)文件
 --partial 保留那些因故沒(méi)有完全傳輸?shù)奈募允羌涌祀S后的再次傳輸
 --force 強(qiáng)制刪除目錄,即使不為空
 --numeric-ids 不將數(shù)字的用戶和組ID匹配為用戶名和組名
 --timeout=TIME IP超時(shí)時(shí)間,單位為秒
 -I, --ignore-times 不跳過(guò)那些有同樣的時(shí)間和長(zhǎng)度的文件
 --size-only 當(dāng)決定是否要備份文件時(shí),僅僅察看文件大小而不考慮文件時(shí)間
 --modify-window=NUM 決定文件是否時(shí)間相同時(shí)使用的時(shí)間戳窗口,默認(rèn)為0
 -T --temp-dir=DIR 在DIR中創(chuàng)建臨時(shí)文件
 --compare-dest=DIR 同樣比較DIR中的文件來(lái)決定是否需要備份
 -P 等同于 --partial
 --progress 顯示備份過(guò)程
 -z, --compress 對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理
 --exclude=PATTERN 指定排除不需要傳輸?shù)奈募J?
 --include=PATTERN 指定不排除而需要傳輸?shù)奈募J?
 --exclude-from=FILE 排除FILE中指定模式的文件
 --include-from=FILE 不排除FILE指定模式匹配的文件
 --version 打印版本信息
 --address 綁定到特定的地址
 --config=FILE 指定其他的配置文件,不使用默認(rèn)的rsyncd.conf文件
 --port=PORT 指定其他的rsync服務(wù)端口
 --blocking-io 對(duì)遠(yuǎn)程shell使用阻塞IO
 -stats 給出某些文件的傳輸狀態(tài)
 --progress 在傳輸時(shí)現(xiàn)實(shí)傳輸過(guò)程
 --log-format=formAT 指定日志文件格式
 --password-file=FILE 從FILE中得到密碼
 --bwlimit=KBPS 限制I/O帶寬,KBytes per second
 -h, --help 顯示幫助信息

crontab簡(jiǎn)介:

crond是linux下用來(lái)周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程,與windows下的計(jì)劃任務(wù)類似,當(dāng)安裝完成操作系統(tǒng)后,默認(rèn)會(huì)安裝此服務(wù)工具,并且會(huì)自動(dòng)啟動(dòng)crond進(jìn)程,crond進(jìn)程每分鐘會(huì)定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任務(wù)。
Linux下的任務(wù)調(diào)度分為兩類:系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。
系統(tǒng)任務(wù)調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作,比如寫緩存數(shù)據(jù)到硬盤、日志清理等。在/etc目錄下有一個(gè)crontab文件,這個(gè)就是系統(tǒng)任務(wù)調(diào)度的配置文件。
/etc/crontab文件包括下面幾行:

[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""HOME=/

# run-parts
51 * * * * root run-parts /etc/cron.hourly
24 7 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前四行是用來(lái)配置crond任務(wù)運(yùn)行的環(huán)境變量,第一行SHELL變量指定了系統(tǒng)要使用哪個(gè)shell,這里是bash,第二行PATH變量指定了系統(tǒng)執(zhí)行命令的路徑,第三行MAILTO變量指定了crond的任務(wù)執(zhí)行信息將通過(guò)電子郵件發(fā)送給root用戶,如果MAILTO變量的值為空,則表示不發(fā)送任務(wù)執(zhí)行信息給用戶,第四行的HOME變量指定了在執(zhí)行命令或者腳本時(shí)使用的主目錄。

用戶任務(wù)調(diào)度:用戶定期要執(zhí)行的工作,比如用戶數(shù)據(jù)備份、定時(shí)郵件提醒等。用戶可以使用 crontab 工具來(lái)定制自己的計(jì)劃任務(wù)。所有用戶定義的crontab 文件都被保存在 /var/spool/cron目錄中。其文件名與用戶名一致。

crontab文件的含義:

用戶所建立的crontab文件中,每一行都代表一項(xiàng)任務(wù),每行的每個(gè)字段代表一項(xiàng)設(shè)置,它的格式共分為六個(gè)字段,前五段是時(shí)間設(shè)定段,第六段是要執(zhí)行的命令段,格式如下:

minute   hour   day   month   week   command

其中:

minute: 表示分鐘,可以是從0到59之間的任何整數(shù)。

hour:表示小時(shí),可以是從0到23之間的任何整數(shù)。

day:表示日期,可以是從1到31之間的任何整數(shù)。

month:表示月份,可以是從1到12之間的任何整數(shù)。

week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。

command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫的腳本文件。

centos7下rsync+crontab如何定期同步備份

在以上各個(gè)字段中,還可以使用以下特殊字符:

星號(hào)(*):代表所有可能的值,例如month字段如果是星號(hào),則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。

逗號(hào)(,):可以用逗號(hào)隔開(kāi)的值指定一個(gè)列表范圍,例如,“1,2,5,7,8,9”

中杠(-):可以用整數(shù)之間的中杠表示一個(gè)整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”

正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每?jī)尚r(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。

crontab常用命令:

1.列出crontab文件

   為了列出crontab文件,可以用:

 [root@localhost ~]# crontab -l
 0,15,30,45,18-06 * * * /bin/echo `date` > dev/tty

你將會(huì)看到和上面類似的內(nèi)容??梢允褂眠@種方法在$HOME目錄中對(duì)crontab文件做一備份:

 [root@localhost ~]# crontab -l > $HOME/mycron

    這樣,一旦不小心誤刪了crontab文件,可以用上一節(jié)所講述的方法迅速恢復(fù)。

2.編輯crontab文件

 如果希望添加、刪除或編輯crontab文件中的條目,而編輯環(huán)境變量又設(shè)置為v i,那么就可以用vi來(lái)編輯crontab文件,相應(yīng)的命令為:

[root@localhost ~]# crontab -e

可以像使用vi編輯其他任何文件那樣修改crontab文件并退出。如果修改了某些條目或添加了新的條目,那么在保存該文件時(shí), c r o n會(huì)對(duì)其進(jìn)行必要的完整性檢查。如果其中的某個(gè)域出現(xiàn)了超出允許范圍的值,它會(huì)提示你。

我們?cè)诰庉媍rontab文件時(shí),沒(méi)準(zhǔn)會(huì)加入新的條目。例如,加入下面的一條:

# DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month(注釋說(shuō)明)

 30 3 1,7,14,21,26 * * /bin/find -name "core' -exec rm {} \;

現(xiàn)在保存并退出。最好在crontab文件的每一個(gè)條目之上加入一條注釋,這樣就可以知道它的功能、運(yùn)行時(shí)間,更為重要的是,知道這是哪位用戶的作業(yè)。

現(xiàn)在讓我們使用前面講過(guò)的crontab -l命令列出它的全部信息:

[root@localhost ~]# crontab -l 
 # (crondave installed on Tue May 4 13:07:43 1999)
 # DT:ech the date to the console every 30 minites
 0,15,30,45 18-06 * * * /bin/echo `date` > /dev/tty1
 # DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month
 30 3 1,7,14,21,26 * * /bin/find -name "core' -exec rm {} \;

3.刪除crontab文件

要?jiǎng)h除crontab文件,可以用:

 [root@localhost ~]# crontab -r

crontab使用實(shí)例

實(shí)例1:每1分鐘執(zhí)行一次command

命令:

* * * * * command

實(shí)例2:每星期日的晚上00 : 00執(zhí)行rsync-sh腳本

命令:

[root@localhost ~]# crontab -e
# DT:Execute rsync-sh script every Sunday at 00: 00(注釋說(shuō)明)
0 0 * * 7 sh /root/rsyncd/rsync-gitbak.sh

rsync客戶端自動(dòng)與rsync服務(wù)器端同步:

首先,我們來(lái)做一個(gè)shell腳本

[root@localhost rsyncd]# vim rsyncd.sh
#!/bin/bash
rsync -arvz --progress /data rsync@192.168.0.252::log --password-file=/rsyncd/rsyncd.pass

命令:crontab -e來(lái)編輯加入計(jì)劃任務(wù)

[root@localhost ~]# crontab -e
# DT:Execute rsync-sh script every Sunday at 00: 00(注釋說(shuō)明)
0 0 * * 7 sh /root/rsyncd/rsyncd.sh

使用crontab -l查看加入的計(jì)劃任務(wù)

[root@localhost ~]# crontab -l
0 0 * * 7 sh /root/rsyncd/rsyncd.sh

注意:

1. 當(dāng)程式在你所指定的時(shí)間執(zhí)行后,系統(tǒng)會(huì)寄一封信給你,顯示該程式執(zhí)行的內(nèi)容,若是你不希望收到這樣的信,請(qǐng)?jiān)诿恳恍锌找桓裰蠹由?> /dev/null 2>&1 即可。

2. %在crontab中被認(rèn)為是newline,要用\來(lái)escape才行。比如crontab執(zhí)行行中,如果有"date +%Y%m%d",必須替換為:"date +\%Y\%m\%d"

遇到的問(wèn)題和解決方法:

在Windows上面編輯了sh腳本上傳到Linux上面,執(zhí)行報(bào)錯(cuò):

bad interpreter:No such file or directory

vim rsyncd.sh用命令:set ff?查看是doc還是unix格式,如果是dos格式,用命令:set ff=unix轉(zhuǎn)化為unix格式

感謝各位的閱讀!關(guān)于“centos7下rsync+crontab如何定期同步備份”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)
AI