天天看點

跨平台資料同步利器:Rclone實作Windows與Linux檔案互同步

作者:80周輝

大家好,今天給大家介紹一款軟體它的名字叫做Rclone。什麼是Rclone呢?

概述

Rclone是一個指令行程式,用于管理雲存儲上的檔案。他打包了各大供應商雲存儲的接口提供統一的通路界面。rclone支援40多種雲存儲産品,包括對象存儲、企業和消費者檔案存儲、服務以及标準傳輸協定。Rclone符合unix POSIX規範,支援于常見的shell工具,比如rsync、cp、 mv、mount、ls、ncdu、tree、rm 和cat等互動,Rclone使用我們耳聞能熟的文法,支援shell管道,支援---dry-run保護,同時為了保護資料的可靠性,Rclone可保留時間戳和始終進行檔案驗證校驗和。Rclone多種檔案傳輸協定,支援SFTP,HTTP,WebDAV,FTP和DLNA。Rclone是一個成熟的開源軟體,最初受rsync的啟發并采用Golang編寫。其文檔和社群也都非常好,提供廣泛和友好的使用用例。

這裡我們使用Rclone主要用來操作對象存儲,可以用來上傳對象、拉取對象,并可實作對象存儲間的遷移。

安裝

Rclone 是一個 Go 程式,以單個二進制檔案的形式出現。

腳本安裝 要在 Linux/macOS/BSD 系統上安裝 rclone,請運作(確定能通路到rclone.org這個網址):

curl https://rclone.org/install.sh | sudo bash           

對于 beta 安裝,運作:

curl https://rclone.org/install.sh | sudo bash -s beta           

此腳本首先檢查安裝的 rclone 的版本,如果不需要,将不會重新下載下傳。

從預編譯的二進制檔案安裝 Linux 擷取并解包

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64           

複制二進制檔案

sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone           

運作rclone config設定基本參數,根據指令提示輸入即可

rclone config           

使用

配置 首先,需要配置 rclone,由于對象存儲系統具有相當複雜的身份驗證,是以它們儲存在配置檔案中,可以通過以下指令進行配置:

rclone config           

基本按照指令提示輸入資訊即可

基本指令 通常文法是這樣的

Syntax: [options] subcommand <parameters> <parameters...>           

子指令清單 rclone config - 進入互動式配置會話。

rclone copy - 将檔案從源複制到目标,跳過已經複制的。

rclone sync - 使源和目标相同,僅修改目标。

rclone bisync -兩條路徑之間的雙向同步。

rclone move - 将檔案從源移動到目标。

rclone delete - 删除路徑的内容。

rclone purge - 删除路徑及其所有内容。

rclone mkdir - 如果路徑不存在,則建立路徑。

rclone rmdir - 删除路徑。

rclone rmdirs - 删除路徑下的所有空目錄。

rclone check - 檢查源檔案和目标檔案是否比對。

rclone ls - 列出路徑中所有對象的大小和路徑。

rclone lsd - 列出路徑中的所有目錄/容器/存儲桶。

rclone lsl - 列出路徑中的所有對象及其大小、修改時間和路徑。

rclone size - 傳回 remote:path 中對象的總大小和數量。

rclone version - 顯示版本号。

rclone copyto - 将檔案從源複制到目标,跳過已經複制的。

rclone mount - 将遠端挂載為挂載點。

rclone moveto - 将檔案或目錄從源移動到目标。

以上東西都是從官方文檔中查找到東西也比較簡單,今天我主要是介紹之前在項目中用到的利用rclone 功能。那麼它是什麼功能呢?我們希望通過一個windows 平台将linux 平台中某個檔案夾作為windows平台盤符使用,也就是說把linux 平台的某個盤符挂在到windows上,這樣就可以直接操作linux 檔案進行操作了。下面介紹一下具體使用。

windows平台挂在linux 作為盤符使用

  1. 下載下傳windows rclone 下載下傳位址 https://rclone.org/downloads/
  2. 配置rclone.conf,這裡主要是需要挂載的遠端的sftp 機器相關資訊
  3. [remotesftp]

    type = sftp

    host = 192.168.xx.xx

    user = root

    pass = yKRVM0vaewmCIWdkMkVYL1Rvq6Brom5D

    shell_type = unix

    md5sum_command = md5sum

    sha1sum_command = sha1sum

    1. 安裝 WinFsp
    2. 官方有一段對話是關于windows 平台下需要安裝winfsp軟體
    3. 執行挂載指令如下
    4. rclone --config=E:\soft\rclone-v1.61.1-windows-amd64\rclone.conf mount remotesftp:/home/trivy X:
    5. remotesftp:/home/trivy 這個很好了解 遠端sftp 伺服器 的挂載的目錄 , X: 是需要挂載的盤符,挂載後的效果

CMD 指令視窗如上,表示挂載啟動了。

跨平台資料同步利器:Rclone實作Windows與Linux檔案互同步

我們看到計算機中多了一個 X: 盤符,打開後可以看到裡面檔案

跨平台資料同步利器:Rclone實作Windows與Linux檔案互同步

我們在 192.168.xx.xx對應的/home/trivy 檢查下檔案

跨平台資料同步利器:Rclone實作Windows與Linux檔案互同步

檔案是能對應上的,這樣我們就實作了windows 挂載linux 檔案作為補充盤符使用了。

為了讓挂載背景執行,我們可以編寫一個vbs 背景執行 腳本如下

Dim ws
Set ws=CreateObject("WScript.Shell")
ws.run "rclone --config=E:\soft\rclone-v1.61.1-windows-amd64\rclone.conf mount  remotesftp:/home/trivy X:",vbhide           

将vbs腳本發送到桌面快捷方式,後面點選一下就可以實作挂載。

參考文檔:https://rclone.org/commands/rclone_mount/

github位址:https://github.com/rclone/rclone

總結

Rclone是一個功能強大且靈活的工具,适用于需要在多個雲存儲服務之間同步和備份資料的使用者。它易于使用,具有廣泛的雲存儲支援,并提供了許多進階功能和選項。下期我們在給大家介紹借助Rclone實作minio複制檔案到FTP。

繼續閱讀