sftp
Rsync的用途和部署目的
網站各個模組的釋出中,不管是靜態處理(Nginx)還是動態處理的伺服器(Tomcat),版本和版本路徑都是一樣的(/data/www/ROOT)。為了使得各種負載均衡的單元以及各個service或app模組的伺服器的版本保持同步,Rsync定時將批次伺服器版本同步。從而提升釋出效率,避免版本不同步的錯誤發生。同時也起到版本交叉備份的作用。
4、Rsyncd(服務端&釋出端)的部署
注:以下操作全部以root賬號執行。
4.1、Rsyncd的安裝
wget http://phzcudns001.phzc.com/src/rsync-3.1.1.tar.gz
tar zxvf rsync-3.1.1.tar.gz && cd rsync-3.1.1
./configure -prefix=/usr/local/rsync
make && make install
4.2、Rsyncd的配置檔案
建立一個配置檔案(預設無):
vi /etc/rsyncd.conf
內容如下:
uid = root
gid = root
use chroot = no
max connections = 100
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /data/logs/rsync/rsyncd.log
address = 內網地址
port = 873
[www]
path = /data/www/
ignore errors
read only = true
list = false
hosts allow = 10.10.0.0/16
auth users = root
secrets file = /etc/rsync.pas
(這裡推薦2個配置檔案的引數,叫include和exclude,分別可以指派要同步的檔案和目錄,以及不需同步的檔案和目錄,比如logs目錄,*.log檔案等)
4.3、Rsyncd的密碼檔案
配置密碼檔案(/etc/rsync.pas)也是需要手動建立
vi /etc/rsync.pas 內容如下:
root:123456789
需要將該檔案的許可權修改為600,屬主和屬組都是root
chown root:root /etc/rsync.pas
chmod 600 /etc/rsync.pas
4.3、建立rsyncd的日誌檔案,並用logrotate每日截斷
mkdir -p /data/logs/rsync
vi /etc/logrotate.d/rsync 加入以下指令碼:
/data/logs/rsync/rsyncd.log {
daily
rotate 365
missingok
sharedscripts
postrotate
if [ -f /var/run/rsyncd.pid ]; then
kill -USR1 `cat /var/run/rsyncd.pid`
fi
endscript
}
4.4、啟動rsync服務並將其設定為開機啟動
/usr/local/rsync/bin/rsync --daemon
echo "/usr/local/rsync/bin/rsync --daemon" >> /etc/rc.local
(可以透過vi /etc/rc.local檢視是否有追進進去)
5、Rsync(客戶端的同步)的部署
5.1、新增密碼配置檔案
在從伺服器上(rsync客戶端)用命令去同步檔案即可。
首先生成一個密碼配置檔案,需要和源資料伺服器(主伺服器)上面的密碼保持一致。
vim /etc/rsyncd.secrets(檔案不存在,vi手動生成)
只需要填寫密碼即可(例如上面的123456789)
該檔案的許可權也需要保持為600
chmod 600 /etc/rsyncd.secrets
5.2、加入每日計劃任務
使用crontab來實現定時更新
crontab –e 加入以下:
0 2 * * * rsync -auzvP --progress --password-file=/etc/rsyncd.secrets root@內網地址::www /data/www/
這樣就把遠端伺服器下的/data/www/(在源資料伺服器的/etc/rsyncd.conf裡面配置的)的資料同步到了遠端伺服器下的/data/www/了。
注意:如果要實現真實同步,可以加--delete,但是這樣會引起本地確實需要的檔案在執行同步之後沒有了,所以建議一般情況不加delete引數,實現增量同步。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-1766813/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sftp命令FTP
- sftp指令碼FTP指令碼
- SFTP協議FTP協議
- sftp 上傳類FTP
- linux配置sftpLinuxFTP
- idea 配置sftpIdeaFTP
- SFTP服務搭建FTP
- sftp簡單使用FTP
- 函式組:SFTP函式FTP
- CentOS上搭建SFTPCentOSFTP
- SFTP, FTPS區別FTP
- sftp 傳輸檔案FTP
- centos7配置sftp資訊CentOSFTP
- SFTP是什麼協議FTP協議
- 使用 SSH 和 SFTP 協議FTP協議
- Sftp部署及最佳化FTP
- sftp常用命令介紹FTP
- linux如何搭建sftp伺服器LinuxFTP伺服器
- MacOS下shh,sftp,scp簡單使用MacFTP
- 淺談SFTP和FTP的區別FTP
- Java SFTP 上傳、下載等操作JavaFTP
- CentOS7系統搭建SFTP教程。CentOSFTP
- linux sftp遠端連線命令LinuxFTP
- SFTP和FTS協議的區別FTP協議
- linux下FTP、SFTP命令詳解LinuxFTP
- 使用autoexpect避免sftp輸入密碼FTP密碼
- Ubuntu16.04開啟SFTP服務UbuntuFTP
- c#連線SFTP上傳檔案C#FTP
- CentOS 下 sftp 有人能連有人不能連CentOSFTP
- Transmit for mac(FTP/SFTP客戶端)中文版MITMacFTP客戶端
- jftp通過sftp協議上傳檔案FTP協議
- 使用Proftpd支援FTP/SFTP許可權管控FTP
- xshell 使用 sftp上傳下載檔案FTP
- CentOS7 sftp 配置與新增使用者CentOSFTP
- FTP/SFTP客戶端:Transmit Mac中文版FTP客戶端MITMac
- 關於SFTP和網路分層的理解FTP
- Laravel 5.6.7 版本釋出,加入了 SFTP 驅動LaravelFTP
- 用Python操作SFTP的簡易程式碼PythonFTP