天天看點

rsync+shell腳本完成自動化備份

一、什麼是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

定好時,完成

繼續閱讀