目次
Rクローンとは
Rclone は、クラウド ストレージ上のファイルを管理するためのコマンドライン プログラムです。これは、クラウド プロバイダーの Web ストレージ インターフェイスに代わる機能が豊富な代替手段です。S3 オブジェクト ストレージ、商用および消費者向けファイル ストレージ サービス、標準転送プロトコルなど、40 を超えるクラウド ストレージ製品が rclone をサポートしています。
Rclone には、UNIX コマンドの rsync、cp、mv、mount、ls、ncdu、tree、rm、cat に匹敵する強力なクラウド機能があります。Rclone の使い慣れた構文には、シェル パイプのサポートと --dry-run 保護が含まれています。コマンドライン、スクリプト、または API を通じて使用されます。
ユーザーは rclone を「テクノロジーと魔法が区別できない」「クラウド ストレージのスイス アーミー ナイフ」と呼びました。
Rclone はデータをしっかりと管理します。常にタイムスタンプを保存し、チェックサムを検証します。制限された帯域幅での転送。断続的な接続またはクォータ制限のある接続は、最後に正常に行われたファイル転送から再開できます。ファイルの整合性を確認できます。可能な場合、rclone はサーバー側トランスポートを使用してこれを最小限に抑えます。
ヒント: 上記は公式ウェブサイトからの翻訳です。
関数
Rclone は以下の機能をサポートしますが、これらに限定されません。
- ファイルをクラウド ストレージにバックアップ (および暗号化)
- クラウド ストレージからファイルを回復 (および復号)
- クラウド データを他のクラウド サービスまたはローカルにミラーリングする
- クラウドへ、またはクラウド ストレージ プロバイダー間でデータを移行する
- 複数の、暗号化された、キャッシュされた、または多様なクラウド ストレージをディスクとしてマウントします
- lsf、ljson、size、ncdu を使用して、クラウド ストレージに保持されているデータを分析および図示する
- Union File System は、複数のローカル ファイル システムやクラウド ファイル システムを 1 つとしてまとめて提供します。
ヒント: 上記は公式ウェブサイトからの翻訳です。
特性
-
送迎サービス
- ファイルの整合性を確保するために、MD5、SHA1 ハッシュを常にチェックしてください
- タイムスタンプはファイルに保存されます
- いつでも運転再開可能
- ネットワークに出入りできる (例: 2 つの異なるクラウド プロバイダー)
- マルチスレッドを使用してローカルディスクにダウンロードできます
- 新しいファイルまたは変更されたファイルをクラウド ストレージにコピーする
- 同期(一方向)してディレクトリを同じにする
- ファイルをクラウド ストレージに移動し、検証後にローカルを削除
- ハッシュと欠落/余分なファイルを確認する
- クラウド ストレージをネットワーク ディスクとしてマウントする
- HTTP/WebDav/FTP/SFTP/DLNA 経由でローカルまたはリモートのファイルを提供します
- 実験的な Web ベースの GUI
ヒント: 上記は公式ウェブサイトからの翻訳です。
サポートされているプロバイダー
仮想プロバイダー
使用
公式ドキュメントは非常に詳しく書かれていますが、ここでは主に使い方を確認するためにいくつかのアプリケーションシナリオを書きます。以下では、例として ubuntu を使用して説明します。
インストール
Rclone はバイナリ ファイル パッケージで、直接ダウンロードして環境変数を使用するように設定できますが、ここでは公式スクリプトを使用して直接インストールします。
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 version
構成
構成は、構成ファイルを直接追加するか、対話型構成セッション コマンドを入力して段階的に構成を完了することによって実行できます。
デフォルトの構成が完了すると、構成ファイルは次の/root/.config/rclone/rclone.conf
ディレクトリに保存されます。
ここではTencent COSの設定ファイルを直接与えます。
[tencent-cos] # 自定义的名称
type = s3 # 存储类型,参考官方文档所有支持的类型
provider = TencentCOS # 提供商,参考官方文档或者全部
env_auth = false # 不通过环境变量配置认证
access_key_id = AKxxxxxxxx # 腾讯云后台生成的密钥key
secret_access_key = Secretxxxxxxx # 腾讯云后台生成的密钥secret
endpoint = cos.ap-chengdu.myqcloud.com # 腾讯云cos所在的地区,看你所在存储桶的公网地址
文法
# 本地到网盘
rclone [功能选项] <本地路径> <配置名称:路径> [参数] [参数]
# 网盘到本地
rclone [功能选项] <配置名称:路径> <本地路径> [参数] [参数]
# 网盘到网盘
rclone [功能选项] <配置名称:路径> <配置名称:路径> [参数] [参数]
# [参数]为可选项
例:
# 同步本地/data/file的文件夹内容到tencent-cos存储下的/beifen文件夹中,并且排除/root/excludes.txt中指定的文件内容
rclone sync /data/file tencent-cos:/beifen --exclude-from '/root/excludes.txt'
# 两个网盘文件同步
rclone copy 配置网盘名称1:网盘路径 配置网盘名称2:网盘路径
コマンドリスト
すべてのコマンドを表示するにはこれを使用します rclone --help
。ここには一般的に使用されるコマンドのみがリストされており、他のコマンドの詳細については公式ドキュメントを参照してください。
注文 | 説明する |
---|---|
rcloneコピー | コピー |
rclone の移動 | 移動、移動後に空のソースディレクトリを削除したい場合は、 --delete-empty-src-dirs パラメータを追加します |
rcloneマウント | マウント |
rclone同期 | 同期: ソース ディレクトリをターゲット ディレクトリに同期します。ターゲット ディレクトリのみが変更されます。 |
rcloneのサイズ | ネットワークディスクのファイルサイズを確認する |
rclone削除 | パス下のファイルの内容を削除します |
rcloneパージ | パスとそのすべてのファイル内容を削除します |
rclone mkdir | ディレクトリを作成する |
rclone rmdir | ディレクトリを削除する |
rclone rmdirs | 指定した環境下の空のディレクトリを削除します。--leave-root パラメータを追加すると、ルート ディレクトリは削除されません |
rcloneチェック | 送信元アドレスと宛先アドレスのデータが一致するかどうかを確認する |
rclone ls | 指定されたパスの下にあるすべてのファイル、ファイル サイズ、およびパスを一覧表示します。 |
rclone LSL | ディスプレイのアップロード時間が上記より 1 つ長くなります |
rclone LSD | 指定されたパスの下のディレクトリを一覧表示します |
rclone lsf | 指定されたパスの下にあるディレクトリとファイルを一覧表示します |
共通パラメータ
注文 | 説明する |
---|---|
-n = --ドライラン | rclone が実際の動作でどのような動作を実行するかをテスト実行します。 |
-P = --進行状況 | リアルタイムの送信の進行状況を表示します。500 ミリ秒ごとに更新されます。それ以外の場合は、デフォルトで 1 分ごとに更新されます。 |
--キャッシュチャンクサイズ 5M | ブロックのサイズ。デフォルトは 5M です。アップロードが大きいほど、アップロードが速くなり、より多くのメモリを消費します。大きすぎると、プロセスが中断される可能性があります。 |
--onedrive-chunk-size 100M | G マウント ブロードバンド サーバーの OneDrive アップロード速度を向上 |
--ドライブ チャンク サイズ 64M | G マウント ブロードバンド サーバーの Google ドライブのアップロード速度を向上 |
--キャッシュチャンクの合計サイズ SizeSuffix | チャンクがローカル ディスク上で占有することができる合計サイズ |
--transfers=N | 並列ファイルの数。デフォルトは 4 です。メモリが比較的小さい VPS ではこのパラメータを減らすことをお勧めします。たとえば、128M チックでは 1 に設定することをお勧めします。 |
--config 文字列 | 構成ファイルのパスを指定します。文字列は構成ファイルのパスです |
--ignore-errors | スキップエラー |
--サイズのみ | ファイルサイズに応じてチェックし、ハッシュはチェックしない |
--drive-server-side-across-configs | サーバー間転送 |
ログ
rclone にはERROR
、 、 、NOTICE
、INFO
の 4 つのロギング レベルがありますDEBUG
。デフォルトでは、rclone はメッセージを生成し ERROR
、 NOTICE
平準化します。
-q
- rclone はERROR
メッセージのみを生成します。-v
- rclone はERROR
、これを推奨する メッセージNOTICE
を 生成します。INFO
-vv
- rclone はERROR
、NOTICE
、 、INFO
およびDEBUG
メッセージを生成します。--log-level LEVEL
- フラグはログ レベルを制御します。
フィルター
同期中にプログラムの起動ログや機密ファイルなどの重要でないファイルをフィルタリングして除外する必要がある場合。
注文 | 説明する |
---|---|
--除外対象 | 指定されたファイルからファイルまたはディレクトリのリストを除外します |
--include-from | 指定されたファイルからファイルまたはディレクトリを含めます |
--フィルターから | ファイル フィルタリング ルールは指定されたファイルから取得されます |
--除外する | ファイルまたはディレクトリを除外する |
- 含む | 包含文件或目录 |
--filter | 文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以+开头,排除规则以-开头 |
-
文件类型过滤
比如
--exclude "*.bak"
,表示排除所有.bak
结尾的文件,也可以写作--filter "- *.bak"
比如
--include "*.{png,jpg}"
,包含所有png
和jpg
文件,排除其他文件,也可以写作--filter "+ *.{png,jpg}"
--delete-excluded
删除排除的文件。需配合过滤参数使用,否则无效。 -
目录过滤
目录过滤需要在目录名称后面加上
/
,否则会被当做文件进行匹配。以/
开头只会匹配根目录(指定目录下),否则匹配所目录。这同样适用于文件。--exclude ".git/"
排除所有目录下的.git
目录。--exclude "/.git/"
只排除根目录下的.git
目录。--exclude "{Video,Software}/"
排除所有目录下的Video
和Software
目录。--exclude "/{Video,Software}/"
只排除根目录下的Video
和Software
目录。--include "/{Video,Software}/**"
仅包含根目录下的Video
和Software
目录的所有内容。 -
大小过滤
默认大小单位为
kBytes
,但可以使用k
,M
或G
后缀。--min-size
过滤小于指定大小的文件。比如--min-size 50
表示不会传输小于 50k 的文件。--max-size
过滤大于指定大小的文件。比如--max-size 1G
表示不会传输大于 1G 的文件。 -
过滤规则来自某个文件
--exclude-from <规则文件>
:从文件添加包含规则--include-from <规则文件>
:从文件添加删除规则--filter-from <规则文件>
:从文件添加包含 / 排除规则。比如--filter-from filter-file.txt
。filter-file.txt
示例:- secret*.jpg + *.jpg + *.png + file2.avi - /dir/Trash/** + /dir/** - *
环境变量
rclone 中的每个选项都可以通过环境变量设置。环境变量的名称可以通过长选项名称进行转换,删除 --
前缀,更改 -
为 _
,大写并添加前缀 RCLONE_
。环境变量的优先级会低于命令行选项,即通过命令行追加相应的选项时会覆盖环境变量设定的值。
比如设置最小上传大小 --min-size 50
,使用环境变量是 RCLONE_MIN_SIZE=50
。当环境变量设置后,在命令行中使用 --min-size 100
,那么此时环境变量的值就会命令行覆盖,最终生效的是 --min-size 100
。
命令 | 说明 |
---|---|
RCLONE_CONFIG | 自定义配置文件路径 |
RCLONE_CONFIG_PASS | 若 rclone 进行了加密设置,把此环境变量设置为密码,可自动解密配置文件 |
RCLONE_RETRIES | 上传失败重试次数,默认 3 次 |
RCLONE_RETRIES_SLEEP | 上传失败重试等待时间,默认禁用,单位s、m、h分别代表秒、分钟、小时 |
CLONE_TRANSFERS | 并行上传文件数 |
RCLONE_CACHE_CHUNK_SIZE | 块的大小 |
RCLONE_CACHE_CHUNK_TOTAL_SIZE | 块可以在本地磁盘上占用的总大小 |
RCLONE_IGNORE_ERRORS=true | 跳过错误 |
最佳实践
备份本地 /data/file
目录到腾讯云cos存储中,并设置定时任务每晚自动同步,这样可以达到定时备份重要文件上云的效果。
-
目录
/data/file
下创建excludes.txt
,里面填写需要排除的文件列表。logs/** # 排除logs下所有文件 *.bak # 排除.bak结尾的文件 *.zip # 排除.zip结尾的文件
-
配置腾讯云cos在此忽略,直接编写
rclone
命令,测试执行是否同步。rclone sync -v /data/file tencent-cos:/beifen --exclude-from '/data/file/excludes.txt' >> /root/rclone.log 2>&1
手动执行一把,然后查看
tail -f /root/rclone.log
是否输出日志了,只要没报错则成功。 -
配置定时任务,每天自动执行
执行
crontab -e
# 打开定时任务列表,跳到最后新起一行添加步骤2.成功的命令并保存,内容如下:(表示每晚3点30分进行同步)30 4 * * * rclone sync -v /data/file tencent-cos:/beifen --exclude-from '/data/file/excludes.txt' >> /root/rclone.log 2>&1
执行
systemctl restart cron.service
重启定时任务生效 - 达到执行时间后检查
/root/rclone.log
下的日志保证没问题。