linux 檔案同步

2021-08-01 03:34:48 字數 3535 閱讀 8134

這個過程中使用rsync來進行操作日誌的同步,為避免遺忘特記錄下配置rsync服務以及進行日誌檔案傳輸的過程。

機器以及配置過程如下:

192.168.1.100作為rsync伺服器,提供rsync服務;

192.168.1.101 、192.168.1.102 、192.168.1.103、192.168.1.104作為應用伺服器;

(1)配置rsync服務端(192.168.1.100)

當前的絕大多數linux作業系統都安裝有rsnyc服務,如果不公升級版本的話,可以直接使用,要是需要公升級的話,可以參考網上教程。

檢查是否存在/etc/rsyncd.conf 檔案,不存在則建立,檔案的內容如下。

[plain]view plain

copy

pid file = /var/run/rsyncd.pid  

port = 873  

#只監控內網的ip位址,更加安全  

address = 192.168.1.100  

uid =root  

gid = root  

use chroot = yes  

#客戶端只能寫入不能讀取  

read only = no  

write only = yes  

#只允許指定ip位址的機器能夠訪問  

hosts allow = 192.168.1.101 192.168.1.102 192.168.1.103 192.168.1.104  

max connections = 4  

motd file = /etc/rsyncd/rsyncd.motd  

timeout = 300  

transfer logging = yes  

log file = /var/log/rsync.log  

#客戶端上傳檔案時候的儲存模組  

[ logs ]   

#客戶端上傳檔案的儲存位址  

path = /var/log/access_log    

list = yes  

ignore errors  

auth users = zhangzk  

#密碼檔案  

建立密碼檔案 /etc/rsyncd/rsyncd.secrets,使用者名稱與密碼以冒號分割,整個檔案內容如下:

[plain]view plain

copy

zhangzk:239fjdalk@893246dasaatdfbsad  

設定該檔案的600許可權

[plain]view plain

copy

chmod 600 /etc/rsyncd/rsyncd.secrets  

以守護程序方式啟動該服務:

/usr/local/bin/rsync --daemon

檢查服務是否執行正常:

[plain]view plain

copy

-bash-3.2# ps -aef |grep rsync  

root      8510  8481  0 18:30 pts/0    00:00:00 grep rsync  

root     31787     1  0 aug14 ?        00:00:00 rsync --daemon  

至此服務端全部搞定了。

(2)客戶端(以192.168.1.101為例)

客戶端相對要簡單得多了,只需要設定密碼檔案即可。

建立密碼檔案/etc/rsyncd/ rsyncd.pass,該密碼檔案的內容與服務端的密碼檔案中的密碼必須一致。

[plain]view plain

copy

239fjdalk@893246dasaatdfbsad  

設定該檔案的600許可權

[plain]view plain

copy

chmod 600 /etc/rsyncd/rsyncd.pass  

ok!現在可以使用rsync服務從客戶端192.168.1.101上無密碼的方式傳輸檔案到192.168.1.100上去了!

[plain]view plain

copy

rsync -vzrtopg --delete --progress $tarfile [email protected]::logs  --password-file=/etc/rsyncd/rsyncd.pass  

(3)建立crontab任務來定時傳輸日誌檔案

檢查並且建立指令碼檔案/var/scripts/rsync_operate_log.sh

[plain]view plain

copy

#!/bin/sh  

filename=my_play_download.log.`date -d yesterday +%y-%m-%d`  

logfile=$filepath$filename  

ipaddress=101  

tarname=$filename.$ipaddress.tar.gz  

tarfile=$filepath$tarname  

cd $filepath  

if [ -e "$logfile" ]; then  

tar -zcvf $tarname $filename;  

else  

echo "log file not existed.file=$logfile"  

fi  

if [ -e "$tarfile" ]; then  

rsync -vzrtopg --delete --progress $tarfile [email protected]::logs  --password-file=/etc/rsyncd/rsyncd.pass  

rm -rf $tarfile  

else  

echo "log file not existed.file=$tarfile"  

fi  

設定該crontab指令碼檔案的700許可權:

[plain]view plain

copy

chmod 700 /var/scripts/rsync_operate_log.sh  

再使用crontab -e命令來設定每日凌晨3點定時執行指令碼檔案即可:

[plain]view plain

copy

0 3 * * * /var/scripts/rsync_operate_log.sh > /dev/null 2>&1  

linux 遠端檔案同步 shell

127.0.0.1 username password 192.168.12.12 usename password編寫expect shell usr bin expect f set timeout 1 永不超時,預設為10s set src file lindex argv 0 argv引數讀...

Linux 使用 rsync 同步檔案

rsync是unix下的一款應用軟體,它能同步更新兩處計算機的檔案與目錄,並適當利用差分編碼以減少資料傳輸量。rsync中的一項同類軟體不常見的重要特性是每個目標的映象只需傳送一次。rsync可以拷貝 顯示目錄內容,以及拷貝檔案,並可選壓縮以及遞迴拷貝。有的版本的 linux 可能已經預裝了 rsy...

Linux 命令 rsync 檔案同步

1 rsync src dest 2 rsync src user host dest rsync home zhangting 10.1.2.121 home v,verbose 詳細模式輸出。q,quiet 精簡輸出模式。c,checksum 開啟校驗開關,強制對檔案傳輸進行校驗。a,archi...