一、什麼是rsync
rsync,remote synchronize顧名思意就知道它是一款實作遠端同步功能的軟體,它在同步檔案的同時,可以保持原來檔案的權限、時間、軟硬連結等附加資訊。 rsync是用 “rsync 算法”提供了一個客戶機和遠端檔案伺服器的檔案同步的快速方法,而且可以通過ssh方式來傳輸檔案,這樣其保密性也非常好,另外它還是免費的軟體。
rsync 包括如下的一些特性:
能更新整個目錄和樹和檔案系統;
有選擇性的保持符号鍊鍊、硬連結、檔案屬于、權限、裝置以及時間等;
對于安裝來說,無任何特殊權限要求;
對于多個檔案來說,内部流水線減少檔案等待的延時;
能用rsh、ssh 或直接端口做為傳輸入端口;
支援匿名rsync 同步檔案,是理想的鏡像工具
特征:
可以鏡像儲存整個目錄樹和檔案系統。
可以很容易做到保持原來檔案的權限、時間、軟硬連結。
二、操作
首先關閉防火牆
iptables -f
iptables -x
iptables -z
iptables -l
setenforce 0
vi /etc/sysconfig/selinux #修改selinux
兩台虛拟機一台用戶端一台服務端
用戶端:
yum -y install rsync #安裝rsync服務
systemctl start rsyncd.service
systemctl enable rsyncd.service
netstat -lnp|grep 873 #檢查是否已經成功啟動
ssh-keygen #用戶端生成密鑰
ssh-keygen #服務端生成密鑰
cat /root/.ssh/id_rsa.pub #用戶端
cat /root/.ssh/id_rsa.pub #服務端
兩個節點都執行操作:#ssh-keygen然後全部回車,采用預設值
.
vi /root/.ssh/authorized_keys
定時腳本就涉及到一個目錄crontab,還是先介紹一下crontab檔案的含義:
使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個字段代表一項設定,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的指令段,格式如下:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。
command:要執行的指令,可以是系統指令,也可以是自己編寫的腳本檔案。
crontab -e #編輯該使用者的計時器設定;
bash /root/copy.sh 設定運作腳本的時間
crontab -l #-l:列出該使用者的計時器設定;
bash /root/copy.sh
定好時,完成