前言
還是記個筆記吧
暑假時用的rclone,寒假就全忘光了…
雖然有存當初的網址,但重新掌握還是需要時間
加上這次學了不少新東西,還是記個筆記比較實在…
使用方法
rclone 動作 來源地址 目標地址 flag
常用動作
1 | config (設定) |
flag常用的有
1 | -v |
範例
1 | rclone copy D1: D2: -v -size-only -bwlimit 1800k |
過濾器
rclone 不能直接在路徑上使用萬用字元,要配合一種flag來使用
例如不能用 D1:test/*.jpg
來表示 D1:test/
目錄下的全部jpg檔要使用 D1:test/ --include *.jpg
來表示
其中規則應該是支援正規表達式的,不過我對正規不太熟…
因為我對這也不熟,所以我就直接用官網的範例了…
如果模式以"/"開頭,代表他在目錄的頂層,不往下搜尋
例如:
1 | rclone ls D1: --include *.jpg |
p.s. windows v1.44好像沒辦法用"/"?
結合管線使用
這不做筆記我一定會忘掉…
rclone 有兩個指令:
cat
rcat
cat 和 linux 上的基本一樣,就是把檔案從stdout印出來,不過rclone cat 可以印目錄
(ex: rclone cat D1:
把D1:和子目錄底下的檔案全部印出來)
rcat 做的事和 cat 相反,他是將stdin的東西存到一個檔案裡
(ex: cat file.txt | rclone rcat D1:file.txt
)
結合tar便可以將小檔案打包起來,藉由管線傳到rclone去處理
再加上這個好心人的腳本,便可分割上傳
(我不會python不知道他有沒有暫存檔案,但好像沒有?)
tar使用
tar 常用指令(原諒我不學無術又偷懶:P)
http://www.vixual.net/blog/archives/127
gpg ASE 加密
用gnupg ase 256加密
gpg --symmetric --cipher-algo AES256
輸入來自stdin,輸出至stdout
這個指令會要你輸入兩次密碼
解密時用gpg就好了
輸入一樣來至stdin,輸出一樣至stdout
如果要存入檔案,可以用gpg | cat > file
有些裝置會顯示
gpg: signing failed: Inappropriate ioctl for device
可用 export GPG_TTY=$(tty)
解決
pv顯示進度
這東西好像會顯示管線的進度(已經傳多少MB,現在每秒多少MB)
使用 | pv | 夾在管線和管線中間即可使用
pipechunk.py
好心人寫的腳本,可以把tar的資料串流,分隔成一個一個的塊,再借由rclone上傳到雲端硬碟
作者給的使用範例:
1 | tar -cf - MyMachine/ | |
--chunk-size
是指要每個分割檔要多大,範例是50MB一個分割,上傳後的檔案名會是 file_name.0001,file_name.0002 以此類推
需要注意的是--command
裡的參數每有一個空格就要加一次""
例如我想要加上 --bwlimit 1500K
,就要寫成'["--bwlimit", "1500K"]'
注意事項
-
不會python,看了老半天也不知道他是全部分割好再上傳還是,串流上傳,不過我傾向於後者
-
補充,上傳大檔案後發現應該是串流上傳,並且會使用RAM做暫存如果一個區塊大小是1G
--parallel
為8 的話會吃8G的RAM,可以適時的調整區塊大小和--parallel
-
--parallel
參數是開幾個rclone同時上傳,如果--parallel
為4,--bwlimit 500k
上傳限制就會是500k*4 = 2000k
下載再還原
如果還是要使用管線來達成可用rclone cat指令,將全部的分割檔全部下載並還原
例如: rclone cat D1:tar/ | gpg | pv | tar -x
大概4jone,之後想到什麼再寫上來…