序文#
Rclone は、さまざまなオブジェクトストレージやクラウドストレージ間でのデータの同期、アップロード、ダウンロードをサポートするコマンドラインツールです。さらに、いくつかの設定を通じて、オフラインダウンロードやサーバーバックアップなど、非常に便利な機能を実現することができます。この記事では、Rclone の一般的なコマンドパラメータについて説明します。
Rclone の設定#
rclone config
- インタラクティブな設定オプションに入り、クラウドストレージの追加、削除、管理などの操作を行います。詳細な操作は、Rclone のインストールと設定チュートリアルを参照してください。
rclone config file
- 設定ファイルのパスを表示します。一般的に、設定ファイルは ~/.config/rclone/rclone.conf
にあります。
rclone config show
- 設定ファイルの情報を表示します。
コマンドの構文#
# ローカルからクラウドストレージへ
rclone [オプション] <ローカルパス> <クラウドストレージ名:パス> [パラメータ] [パラメータ] ...
# クラウドストレージからローカルへ
rclone [オプション] <クラウドストレージ名:パス> <ローカルパス> [パラメータ] [パラメータ] ...
# クラウドストレージからクラウドストレージへ
rclone [オプション] <クラウドストレージ名:パス> <クラウドストレージ名:パス> [パラメータ] [パラメータ] ...
使用例#
rclone move -v /Download Onedrive:/Download --transfers=1
一般的なオプション#
rclone copy
- コピーrclone move
- 移動。移動後に空のソースディレクトリを削除する場合は、--delete-empty-src-dirs
パラメータを追加してください。rclone sync
- 同期:ソースディレクトリをターゲットディレクトリに同期し、ターゲットディレクトリのみを変更します。rclone size
- クラウドストレージのファイルの使用量を表示します。rclone delete
- パスの下のファイルを削除します。rclone purge
- パスとそのすべてのファイルを削除します。rclone mkdir
- ディレクトリを作成します。rclone rmdir
- ディレクトリを削除します。rclone rmdirs
- 指定されたディレクトリ内の空のディレクトリを削除します。--leave-root
パラメータを追加すると、ルートディレクトリは削除されません。rclone check
- ソースとターゲットのアドレスのデータが一致しているかどうかをチェックします。rclone ls
- 指定したパスのすべてのファイルとファイルサイズ、パスをリストします。rclone lsl
- アップロード時間を表示する、上記のコマンドよりも詳細なリストです。rclone lsd
- 指定したパスのディレクトリをリストします。rclone lsf
- 指定したパスのディレクトリとファイルをリストします。
一般的なパラメータ#
-n
=--dry-run
- テスト実行で、rclone が実際にどの操作を実行するかを確認するために使用します。-P
=--progress
- リアルタイムの転送進捗状況を表示します。500 ミリ秒ごとに更新されます。デフォルトでは 1 分ごとに更新されます。--cache-chunk-size SizeSuffi
- チャンクのサイズです。デフォルトは 5M です。理論的には、チャンクが大きいほどアップロード速度が速くなりますが、メモリの使用量も増えます。サイズが大きすぎると、プロセスが中断する可能性があります。--cache-chunk-total-size SizeSuffix
- ローカルディスク上で使用できるチャンクの合計サイズです。デフォルトは 10G です。--transfers=N
- 並行して処理するファイルの数です。デフォルトは 4 です。メモリが比較的小さい VPS では、このパラメータを小さくすることをお勧めします。たとえば、128M の小さな VPS では、1 に設定することをお勧めします。--config string
- 設定ファイルのパスを指定します。string
は設定ファイルのパスです。--ignore-errors
- エラーをスキップします。たとえば、OneDrive では、特定のファイルを転送した後にFailed to copy: failed to open source object: malwareDetected: Malware detected
というエラーメッセージが表示されることがあります。これにより、後続の転送タスクが中断されます。この場合、エラーをスキップするためにこのパラメータを追加できます。ただし、RCLONE の終了ステータスコードは0
にならないことに注意してください。
ログ#
rclone には、ERROR
、NOTICE
、INFO
、DEBUG
の 4 つのレベルのログがあります。デフォルトでは、rclone はERROR
とNOTICE
レベルのメッセージを生成します。
-q
- rclone はERROR
メッセージのみを生成します。-v
- rclone はERROR
、NOTICE
、INFO
メッセージを生成します。推奨です。-vv
- rclone はERROR
、NOTICE
、INFO
、DEBUG
メッセージを生成します。--log-level LEVEL
- ログレベルを制御するフラグです。
ログをファイルに出力する#
--log-file=FILE
オプションを使用すると、rclone はError
、Info
、Debug
メッセージと標準エラーをFILE
にリダイレクトします。ここでのFILE
は指定したログファイルのパスです。
別の方法は、次のようにシステムのリダイレクトコマンドを使用することです。
rclone sync -v Onedrive:/DRIVEX Gdrive:/DRIVEX > "~/DRIVEX.log" 2>&1
ファイルフィルタリング#
--exclude
- ファイルやディレクトリを除外します。
--include
- ファイルやディレクトリを含めます。
--filter
- ファイルフィルタリングルールで、上記の 2 つのオプションの他の使用方法に相当します。含めるルールは +
で始まり、除外するルールは -
で始まります。
ファイルタイプのフィルタリング#
たとえば、--exclude "*.bak"
、--filter "- *.bak"
は、すべてのbak
ファイルを除外します。また、次のように書くこともできます。
たとえば、--include "*.{png,jpg}"
、--filter "+ *.{png,jpg}"
は、すべての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 より大きいファイルを転送しません。
TIPS: 筆者は実際の使用中に、サイズフィルタリングの 2 つのオプションを同時に使用できないことに気付きました。
フィルタリングルールファイル#
--filter-from <ルールファイル>
オプションを使用して、ファイルに含める / 除外するルールを追加します。たとえば、--filter-from filter-file.txt
です。
フィルタリングルールファイルの例:
- secret*.jpg
+ *.jpg
+ *.png
+ file2.avi
- /dir/Trash/**
+ /dir/**
- *
ここでは、一般的で簡単なフィルタリングの使用例をいくつか紹介しました。より複雑で高度な使用法については、公式ドキュメントを参照してください。
環境変数#
rclone の各オプションは、環境変数を使用して設定することができます。環境変数の名前は、長いオプション名を変換し、--
のプレフィックスを削除し、-
を_
に変更し、大文字にし、プレフィックスRCLONE_
を追加することで決定されます。環境変数の優先順位は、コマンドラインオプションよりも低く、コマンドラインで対応するオプションを追加した場合、環境変数の値は上書きされます。
たとえば、最小アップロードサイズを設定するには --min-size 50
を使用し、環境変数では RCLONE_MIN_SIZE=50
とします。環境変数が設定された後、コマンドラインで --min-size 100
を使用すると、環境変数の値は上書きされます。
一般的な環境変数#
RCLONE_CONFIG
- カスタム設定ファイルのパスRCLONE_CONFIG_PASS
- rclone が暗号化設定を行っている場合、この環境変数をパスワードに設定すると、設定ファイルが自動的に復号化されます。RCLONE_RETRIES
- アップロードの失敗時のリトライ回数。デフォルトは 3 回です。RCLONE_RETRIES_SLEEP
- アップロードの失敗時のリトライ待機時間。デフォルトは無効です。単位はs
、m
、h
で、秒、分、時間を表します。CLONE_TRANSFERS
- 並行してアップロードするファイル数。RCLONE_CACHE_CHUNK_SIZE
- チャンクのサイズです。デフォルトは 5M です。理論的には、チャンクが大きいほどアップロード速度が速くなりますが、メモリの使用量も増えます。サイズが大きすぎると、プロセスが中断する可能性があります。RCLONE_CACHE_CHUNK_TOTAL_SIZE
- ローカルディスク上で使用できるチャンクの合計サイズです。デフォルトは 10G です。RCLONE_IGNORE_ERRORS=true
- エラーをスキップします。