1. 程式人生 > >在腳本中運用rsync——使用服務的方式進行同步

在腳本中運用rsync——使用服務的方式進行同步

rsync服務 保存 文件中 sock 二進制文件 run inux 配置文件 相關

rsync以服務方式同步

環境:192.168.1.223和192.168.1.200主機ip
在192.168.1.223服務端上,編輯/etc/rsyncd.conf配置文件

port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.1.223
[path]
path=/usr/local/src/tmp
use chroot=true
max connections=4
read only=no
list=false
uid=root
gid=root
auth users=user
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.1.200

啟動rsync服務,rsync服務同步文件時需要停止firewalld、iptables或放行配置文件中定義的873端口,啟動rsync服務: rsync --daemon

[root@localhost tmp]# systemctl stop firewalld
[root@localhost tmp]# rsync --daemon

在192.168.1.200上推送同步一個文件或推送同步目錄,這裏同步的是一個文件,::兩個冒號表示指定模塊,模塊設定了傳輸的文件路徑,傳輸時使用模塊名代替詳細的目錄路徑

----------------------推送文件到服務端
[root@localhost src]# rsync -avP /usr/local/src/tmp/1.txt 192.168.1.223::path/1-2.txt
sending incremental file list
1.txt
           0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)

sent 65 bytes received 27 bytes 184.00 bytes/sec
total size is 0 speedup is 0.00
---------------------拉取服務端的文件,可以是拉取目錄
[root@Huaching tmp]# rsync -avP  192.168.1.223::path/jisuan.py /usr/local/src/tmp/
receiving incremental file list
jisuan.py
         278 100%  271.48kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 42 bytes  received 367 bytes  818.00 bytes/sec
total size is 278  speedup is 0.68
[root@Huaching tmp]# ls
1.txt  jisuan.py

配置文件中配置項的解釋

prot:指定rsync服務運行的端口,默認是873
log file:指定日誌文件存儲的路徑
pid file:指定pid文件,這個文件涉及服務啟動、停止進程等管理操作
address : 指定rsync服務的IP ,如果服務器上有多個IP,可以指定一個IP作為rsync服務的ip,不指定ip則是在該服務器所有的ip地址上提供服務
[] 模塊名稱,自定義,可代替詳細目錄路徑
path : 指定同步數據存放的目錄路徑
use chroot:(false|true) 在傳輸文件時首先chroot到path參數所指定目錄下,傳輸數據時會在服務端把所有傳輸文件限制在path設置的目錄下,如果path設置的目錄中有軟連接文件時,且軟連接在path設定的目錄以外的其他目錄下,則不能同步該軟連接的源文件,同時導致同步出錯,如果同步的數據中有軟連接文件時,建議設置成false(否,假)

max connections 指定最大鏈接數,默認0,沒有限制
read only ture|false 如果為true 則不能同步數據到該模塊設置的目錄下(是|否)
list 當用戶查詢服務器上的模塊時,是否列出顯示,設定為true(是)表示列出,false(否)不列出
uid/gid 用於指定同步時是以哪個用戶和組身份傳輸,同步存儲的話設置的用戶必須對存儲的目錄有讀寫權限,否則不能同步
auth users 在服務端指定同步時認證使用的用戶
secrets file 在服務端指定同步時使用用戶的密碼文件路徑,如果不指定則表示不使用密碼驗證,密碼權限修改為600,只讓root用戶可讀,用戶密碼寫入格式為:user:password
hosts allow 指定允許訪問鏈接的主機,可以設置為ip或一個ip網段,多個ip使用空格隔開
客戶端同步推送及拉取時可以指定服務端設定的用戶認證的密碼,用於腳本不能交互輸入的需求,該密碼文件存儲在客戶端上,為了安全起見將其設置為僅root可讀的600權限

客戶端無交互式使用用戶密碼認證同步

客戶端指定密碼同步,服務端不想使用輸入面交互需要將服務端設置的認證用戶的密碼存儲到本地的一個目錄下,這裏是存在了/etc/rsync-pass這個文件中,直接寫入認證用戶的密碼,文件權限需要設置為600,執行rsync同步如下:
rsync -avL [email protected]::path/Python* /usr/local/src/tmp/ --password-file=/etc/rsync-pass

[root@Huaching tmp]# rsync -avL [email protected]::path/Python* /usr/local/src/tmp/ --password-file=/etc/rsync-pass
receiving incremental file list
Python-3.7.0.tgz

sent 42 bytes received 22751371 bytes 9100565.20 bytes/sec
total size is 22745726 speedup is 1.00
[root@Huaching tmp]# ls
1.txt jisuan.py Python-3.7.0.tgz
[root@Huaching tmp]# cat /etc/rsync-pass 
1234567

linux系統日誌

/var/log/messages日誌,系統中記錄開機啟動加載信息、用戶登錄信息、網絡、內核等記錄
系統中存有一個日誌切割機制,日誌的滾動,在增長到一定級別了,就會自動切割

dmesg命令

dmesg命令會把系統硬件相關的日誌列出來,這個日誌是保存在內存中的,並不是一個文件

假如你的網卡有問題了,硬盤損壞了,都會記錄在這個日誌中

dmesg -c //清空當前日誌,但是一重啟這個系統,又會生成這些日誌

/var/log/dmesg日誌文件

/var/log/dmesg 這是一個日誌文件,這個日誌文件和 dmesg命令 沒有任何關聯,它是系統啟動的一個日誌,記錄的信息

last命令

last命令,查看你正確的登錄歷史,調用的文件/var/log/wtmp

記錄是是誰,在哪裏,來源IP,時間,登錄的時長都會有記錄

/var/log/wtmp日誌是一個二進制文件,不能直接cat查看的,只能用last命令去查看

lastb命令
lastb命令,查看登錄失敗的用戶,對應的文件時/var/log/btmp 日誌

/var/log/btmp也是二進制文件,不能直接cat的

screen工具
安裝screen:yum install -y screen
直接執行screen打開一個虛擬的終端
掛起screen到後臺執行,按ctrl+a,然後按d可掛起到後臺執行
查看並進入打開的screen虛擬終端內,-r指定screen的id

[root@localhost tmp]# screen -ls
There is a screen on:
 13061.pts-0.localhost  (Detached)
1 Socket in /var/run/screen/S-root.
[root@localhost tmp]# screen -r 13061
[screen is terminating

創建一個自定義的screen運行的ID名稱,方便記憶這個screen進程運行的是哪種任務
screen -S "自定義易識別的ID名"
secreen -r ?id或自定義名可進入虛擬的screen終端

在腳本中運用rsync——使用服務的方式進行同步