やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

rsync+sshでマシン間ファイルコピーする

 Raspberry Pi 3B+から4Bへコピーする。

モチベ

 ラズパイ3B+のデータを4Bにコピーしたい。

rsync+ssh

 ローカルからリモートへファイルを送るには以下のようにrsyncコマンドを使う。

rsync -auvzP -e <ローカルのファイルパス> <リモートのファイルパス>

 リモートのファイルパスは以下のような書式で示す。

<ユーザー名>@<サーバーのホスト名 or IPアドレス>:<パス>

 合わせると以下。

rsync -auvzP -e <ローカルのファイルパス> <ユーザー名>@<サーバーのホスト名 or IPアドレス>:<パス>

 具体的には以下。$HOMEはローカル・リモード両方とも/home/pi。ローカルはPi3B+、リモートはPi4B。

rsync -auvzP -e ssh $HOME/root/in pi@192.168.11.10:$HOME/root
rsync -auvzP -e ssh $HOME/root/sys pi@192.168.11.10:$HOME/root
rsync -auvzP -e ssh $HOME/root/work pi@192.168.11.10:$HOME/root

 これでリモートの$HOME/root配下にin/,sys/,work/ディレクトリとその配下がすべてコピーされた。

ドットファイル

rsync -auvzP -e ssh $HOME/.sqliterc pi@192.168.11.10:$HOME
rsync -auvzP -e ssh $HOME/.vimrc pi@192.168.11.10:$HOME
rsync -auvzP -e ssh $HOME/.vim pi@192.168.11.10:$HOME
rsync -auvzP -e ssh $HOME/.fonts pi@192.168.11.10:$HOME

.config

rsync -auvzP -e ssh $HOME/.config/ranger pi@192.168.11.10:$HOME/.config

 openboxはバージョン違いによって仕様変更があるかもしれない。上書きして壊れたら嫌なので適当なパスへコピーする。

rsync -auvzP -e ssh $HOME/.config/openbox pi@192.168.11.10:/tmp/work

rsync

説明
-a --arcive -rlptgoD -no-H -no-A -no-X相当
-v --verbose 動作内容を表示する
-u --update 同期先ファイルの方が新しい場合はスキップする
-z --compress 転送中のデータを圧縮する
-P --partial --progress相当
-e sshコマンドを指定する

 -aで無効化するオプション。

説明
-no-? 指定オプションを無効化する(-no-H-Hを無効化)
-H --hard-links ハードリンクを保持する
-A --acls ACL(アクセス制御リスト)を保持する(「-p」も同時に指定した扱いになる)
-X --xattrs 拡張属性を保持する

 -aで有効化するオプション。

説明
-r --recursive ディレクトリを再帰的に処理する
-l --links シンボリックリンクシンボリックリンクのままコピーする
-p --perms パーミッションを保持する
-t --times タイムスタンプを保持する
-g --group 所有グループをそのまま保持する
-o --owner 所有者をそのまま保持する(自分以外の所有者を保持するにはroot権限が必要)
-D バイスファイルや特殊ファイルを保持する。--devices --specials相当
--devices バイスファイルを保持する(root権限が必要)
--specials 特殊ファイルを保持する

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで

 ハード。

 ソフト。

 設定。

 企業。