1. 程式人生 > >用rsync同步centos伺服器上的圖片檔案到windows本地

用rsync同步centos伺服器上的圖片檔案到windows本地

在團隊小的時候,運維都是後臺人員兼職。沒時間搞什麼圖片伺服器啊,fastdfs啊之類的分散式儲存,用七牛,阿里雲oss好像又有些奢侈,這些物件儲存平臺按流量收費,聽說有些團隊的圖片被惡意訪問,一晚上扣流量費扣了好多錢。小企業,擔不起這個風險。就用最笨的辦法。伺服器收到圖片儲存請求,就將圖片儲存在伺服器硬碟上。然後用nginx反向代理,給一個獨立域名訪問。方案如下

http - > nginx -> 訪問指定資源目錄

個人以為,使用者量不大的早期app後臺或小型後臺服務,可以這樣處理。

但是這樣處理存在一個隱患。上次騰訊雲崩潰,導致使用者的資料資料丟失還歷歷在目。所以,不怕一萬,就怕萬一。還是需要對傳到伺服器上的圖片進行備份。可以備份到另外一臺伺服器上,當然也可以備份到本地硬碟。本文提供一種簡單的伺服器檔案備份到本機的操作方案

伺服器端 centos7

安裝rsync
1、檢查有沒有安裝rsync
在這裡插入圖片描述
沒有安裝則用

yum -y install rysnc

命令安裝
在這裡插入圖片描述

2、安裝完畢新增配置

在 /etc/rsyncd 目錄下新增如下三個檔案
在這裡插入圖片描述

rsyncd.conf檔案內容

# Distributed under the terms of the GNU General Public License v2
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
#告訴程序寫到 /var/run/rsyncd.pid 檔案中
pid file = /var/run/rsyncd.pid 
lock file =/var/run/rsyncd.lock

#日誌檔案
log file =/var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3

#指定執行埠,預設是873
port = 8877     

#指定伺服器IP地址
address = 192.168.0.199

#伺服器端傳輸檔案時,要發哪個使用者和使用者組來執行,預設是nobody
uid = root
gid = root

#如果"use chroot"指定為yes,那麼rsync在傳輸檔案以前首先chroot到path引數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要以root許可權,並且不能備份指向外部的符號連線所指向的目錄檔案。預設情況下chroot值為yes
use chroot = no

#客戶端最多連線數
max connections = 5
motd file = /etc/rsyncd/rsyncd.motd
timeout = 300

#同步模組
[resources] 
#指定檔案目錄所在路徑
path =  /home/RESOURCES

#list 意思是把rsync 伺服器上提供同步資料的目錄在伺服器上模組是否顯示列出來。預設是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的伺服器上提供了哪些目錄。你自己知道就行了
list=yes

#指定在 rsync 伺服器上執行 delete 操作時是否忽略 I/O 錯誤。一般來說 rsync 在出現 I/O 錯誤時將將跳過 –delete 操作,以防止因為暫時的資源不足或其它 I/O 錯誤導致的嚴重問題。
ignore errors

#如果為yes,表示只讀本地檔案就無法同步到伺服器
read only = no

#允許連線的ip,在演示中使用的雲伺服器就直接寫*,表示無限制 如果要規定ip或者ip段(10.1.4.0/255.255.255.0)需要進行其他配置
hosts allow=*
#hosts allow=10.1.4.0/255.255.255.0
#hosts deny=*

#auth users 是必須在伺服器上存在的真實的系統使用者,如果你想用多個使用者,那就以,號隔開
auth users = root

#密碼存在rsyncd.passwd檔案裡
secrets file = /etc/rsyncd/rsyncd.passwd

rsync.passwd 內容
指定密碼。為了示範,這裡搞了個最簡單的國民常用密碼
在這裡插入圖片描述
rsyncd.motd 內容
這個是用來設定歡迎頁面
在這裡插入圖片描述

啟動

rsync --daemon --config=/etc/rsyncd/rsyncd.conf

已經啟動
在這裡插入圖片描述

許可權設定-很重要
如果不進行許可權設定,在客戶端就會提示授權失敗!
在這裡插入圖片描述

客戶端

客戶端下載cwRsync_5.4.1_x86_Free檔案
解壓後如下圖,紅色的是新增的一個password.txt
在這裡插入圖片描述
password.txt內容如下
在這裡插入圖片描述
也就是對應的centos上rsync.passwd 的內容一樣

2、執行命令

rsync.exe  -avzP  --port=8877 --password-file=D:\Dev\Tools\cwRsync_5.4.1_x86_Free\password.txt 
[email protected]
.168.0.199::resources /cygdrive/d/data

這段命令的意思簡單說下
–port=8877 #埠
root #執行資料同步的使用者
192.68.0.199 #伺服器地址
resources #模組名稱
/cygdrive/d/data 表示本地的同步資料夾/d/data 為同步資料夾

如果指定
–delete #從cwRsync客戶端D:\data目錄中刪除與Rsync服務端/home/test目錄中不相同的資料,即保證兩邊的資料完全一致

執行起來,同步的效果如下
在這裡插入圖片描述

僅供各位老鐵參考。等使用者量大了,該花錢上OSS的,該弄圖片伺服器叢集的還是要搞的。

2018年9月26日18:40:23
witch_soya

相關推薦

rsync同步centos伺服器圖片檔案windows本地

在團隊小的時候,運維都是後臺人員兼職。沒時間搞什麼圖片伺服器啊,fastdfs啊之類的分散式儲存,用七牛,阿里雲oss好像又有些奢侈,這些物件儲存平臺按流量收費,聽說有些團隊的圖片被惡意訪問,一晚上扣流量費扣了好多錢。小企業,擔不起這個風險。就用最笨的辦法。伺服

Xshell 5+lrzsz實現Windows客戶端向CentOS伺服器檔案

安裝lrzsz 在centost的命令列上執行命令: yum install lrzsz 安裝完成後,可以進入需要上傳檔案的目錄,然後執行命令: rz 這時會彈出一個上傳檔案的視窗,選擇需要上傳的檔案即可上傳。

通過SecureCRT下載遠端Linux伺服器檔案本地Windows

①  sz  檔名【先cd到需要下載的檔案的目錄層】 [[email protected] bookinterface]# sz test.txt    rz   Starting zmodem transfer.  Press Ctrl+C to can

從Linux伺服器下載檔案本地

測試環境是linux伺服器,所以經常會傳輸檔案到伺服器,或者從伺服器下載檔案。如果伺服器安裝了FTP,那麼直接用FTP軟體來下載就可以了,如果沒有安裝,那麼就要用DOS命令來解決了,以下以下載檔案到windows本機為例,簡單說下整個過程。 一、伺服器檔案打包 注:

通過SecureCRT從遠端Linux伺服器下載檔案本地Windows

最近因為要和和串列埠打交道,咋個整呢,以前完全沒接觸過,頭疼,首先是應該下載一個啥工具來除錯串列埠呢? 折騰了老半天,我下載了兩個工具 SecureCRT:除錯串列埠 Xmanager:從Linux伺服器上下載檔案或者編譯程式碼(其實我用的是Xmanage

【轉載】使用jsp實現檔案傳到伺服器或者從伺服器下載檔案本地計算機完整說明版

很多同學在使用jsp實現檔案上傳到伺服器或者從伺服器上下載檔案到本地計算機這方面不是很瞭解,今天在這裡我會幫助大家慢慢的實現這一功能。 準備工作: 1.到網上下載兩個包 第一個叫做commons-fileupload-1.2.1.jar 第二個叫做commons-io-1.3.2.jar 2.建一個專案用來實

圖片(檔案)在本地沒問題,伺服器上報錯413(Request Entity Too Large)

上傳這個問題困了我幾個小時才找到原因。 原因:伺服器使用了nginx,nginx預設的上傳檔案大小為1M,所以如果想上傳更大的檔案,就需要修改nginx的配置檔案。 操作:在nginx的配置檔案中的server下的server_name下,新增 client

命令的方式向ftp伺服器檔案

先假設有一FTP伺服器,FTP伺服器:qint.ithot.net,使用者名稱:username 密碼:user1234。在本地電腦D:盤建立一個資料夾"qint"。將要上傳的檔案複製到d:\qin

fillzilla 修改Liunx伺服器的配置檔案引起的java.lang.NoClassDefFoundError

今天做了一件很挫的事情,為了方便通過fillzilla修改了伺服器一個專案的配置檔案,修改之後,專案可以部署成功,但發起的任何請求都會報一個錯誤,java.lang.NoClassDefFoundError: Could not initialize class

C# WinForm 通過URL取得伺服器的某圖片檔案本地

方法1示例程式碼: -------------- string strImageURL = "http://192.168.0.1:88/VDirA/images/1.jpg"; System.Net.WebClient webClient = new System.N

rsync同步本地DNS和Hadoop給Datanode主機

Hadoop#!/bin/bashfunction rr(){rsync -aSH --delete -e ‘ssh‘ /usr/local/hadoop/etc/hadoop $1:/usr/local/hadoop/etc/rsync -a --delete -e ‘ssh‘ /etc/hos

Linux——在centos伺服器搭建一個ftp服務

安裝FTP服務 安裝 yum install -y vsftpd 啟動 service vsftpd start 嘗試訪問訪問 ftp://ip可瀏覽機器上的pub目錄了,該目錄為伺服器上/var/ftp/pub/。 配置許可權配置 FTP 許可權 vsf

怎麼ssh開啟遠端伺服器的teamviewer (shit!弄這玩意花了我大半天時間)

必須記錄一下在我裝軟體道路上的其中一個絆腳石,狗血經歷,開學一個月了,裝軟體裝的我懷疑人生,我的研究生生活難道要就此止步於裝軟體了?。。。想起剛開始裝docker,接著又是SimpleElastix ,現在又卡在裝Matlab ,每個都得花我好幾天時間,我遇到的錯誤也是奇葩,各種找不到解決辦

Express、Nodejs伺服器檔案時出現Unexpected field

我出現這個問題是因為用了 multer模組   死活讀不到上傳的檔案, 後來查了說是這個模組沒法讀取檔案  於是採用了 connect-multipary 要上傳檔案  不要用multer ! 要上傳檔案  不要用multer !

把vue腳手架的專案放在centos伺服器執行

1.首先把vue專案用npm run build打包,預設打包後的檔案是dist,對應下圖的public 目錄: 2.建立app.js,服務端程式碼,反正這個套路來就是了 const Koa = require('koa'); const body = require('koa

怎麼ssh開啟遠端伺服器的teamviewer (shit!弄這玩意花了我大半天時間)

必須記錄一下在我裝軟體道路上的其中一個絆腳石,狗血經歷,開學一個月了,裝軟體裝的我懷疑人生,我的研究生生活難道要就此止步於裝軟體了?。。。想起剛開始裝docker,接著又是SimpleElastix ,現在又卡在裝Matlab ,每個都得花我好幾天時間,我遇到的

利用Sftp連線伺服器檔案

最近專案碰到  要同步一個檔案到另一臺伺服器。借用了前輩的工具類做了點修改。記錄下來,方便以後查閱。 package com.sitech.billing.framework.util; import java.io.File; import java.io.FileIn

Linux下伺服器rzsz傳限制時如何給伺服器檔案

很多時候公司伺服器上傳檔案需要用到rzsz,但是檔案大小限制為4GB,這時候需要把一個大的檔案壓縮成幾個小檔案,解壓時候是一起解壓。 命令如下: 壓縮: 將大檔案或目錄打包、 壓縮並分割成制定大小的檔案,在Linux下可以通過組合使用tar,bzip2(或者gzip),

java 根據url連結判斷伺服器檔案是否存在有效

方法一:        URL serverUrl = new URL("http://localhost:8090/Demo/clean.sql"); HttpURLConnection urlcon = (HttpURLConnection) se

linux 將一個伺服器檔案或資料夾拷貝到另一個伺服器

複製檔案或目錄命令: 複製檔案: (1)將本地檔案拷貝到遠端 scp 檔名使用者名稱@計算機IP或者計算機名稱:遠端路徑 本地192.168.1.8客戶端 scp /root/install.* [email protected]:/usr/local