それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

tarに纏めながら、rclone の転送を同時にやる

tar しながら転送も同時にやる。

tar zcvf - <dir> | rclone rcat remote:path/to/file

rclone "rcat"

rcat を使えば、パイプで処理するみたいに投げられる。

https://rclone.org/commands/rclone_rcat/

echo "hello world" | rclone rcat remote:path/to/file
ffmpeg - | rclone rcat remote:path/to/file

使い所

バックアップをとったりするとファイル数が多くなりがちで、ダウンロードや同期にAPI呼び出しが多くなりタイムロスが多い。 また、google drive のように symbolic link に非対応なクラウド・ストレージに転送すると情報が欠損するためtar にまとめて転送したほうがなにかと使い勝手がいい。

同様に圧縮しながら転送

gzip や xz を使って圧縮しながら転送すれば、処理も楽である。

mysqldump と組み合わせると。

一時ファイルを作らずに直接rclone の先にバックアップ取れるから快適じゃないか。

たとえば、こんな感じでmysqldump | gzip | rclone をパイプに纏めてやる

sudo \
 mysqldump --single-transaction  \
 -h localhost -u takuya --password=XXXXX takuya-database  2>/dev/null \
 | gzip -  | \ 
 rclone gdrive:takuya-server/backup/mysqldump.sql.gz > /dev/null

gdriveなら30日間のファイル履歴が残るので、バックアップをローテーションして消さなくても良い。最強じゃないか。

rclone で圧縮しながら dd

ddも rclone で圧縮しながらできます。

sudo dd if=/dev/sdg bs=16M --progress | \
  gzip -9 -c  | \
 rclone --bwlimit=5M rcat gdrive:/backup.img.gz

ディスク容量がカツカツでも dd / ddrescue できるので嬉しい。

2021-11-26

rclone と mysqldump の組み合わせについて追記。