⇧ 問題になることは分かってはいるけど、対応が難しいという話ですかね。
Linuxのscpコマンドは所有ユーザーや所有グループなど維持できないらしい
Linuxのscpコマンドで、サーバー間でファイルの送受信を行った場合、所有ユーザーや所有グループなども維持されてるものと思っていたんですが、
⇧ 上記サイト様にありますように、そもそも、サーバー間で同じユーザー、グループの構成になっていないこともあるので、引継げないということらしい。
なるほど、
⇧ マニュアルを見ても、所有ユーザーや所有グループについては言及されていないと。
所有ユーザーが全て同じであれば、
⇧ ユーザーを所有ユーザーに切り替えて、scpを実行という手段も取れそうなのですが、所有ユーザーが混在するようなケースには対応できないような気がする...
rsyncなら所有ユーザーや所有グループなども保持してくれるらしいのだけど、OSインストールした初期状態でインストールされてるんでしたっけ?
scpの代替としては、
⇧ rsyncが候補に上がってきそう。
なんだけど、rsyncってOSインストールした初期状態でインストールされているパッケージなんでしたっけ?
悲報...
そもそも、
- scp
- rsync
のどちらも、OSインストールで同梱されているものでは無いみたいね...
WSL 2(Windows Subsystem for Linux 2)のRocky Linuxでは、どちらのコマンドも同梱されてませんでした...
tarコマンドとSSHコマンドを併用してファイル転送する方法はファイルの属性を維持できるのか
流石に、SSHコマンドが使えない環境は無いと思うのだけど、
⇧ tarとsshでファイル転送できますと。
ただ、ファイルの属性を維持してくれるのかが分からない...
⇧ 上記サイト様によりますと、tarの圧縮時にオプションを指定することで、ファイル属性を維持できるようなんだけど、維持できる情報に所有ユーザーや所有グループも含まれると考えて良いんだろうか?
⇧ なるほど、rootユーザー、ないしは、rootユーザーのようにスーパーユーザーの権限のあるユーザーで作業すれば良いということみたい。
分かり辛いが、rootユーザーが使える環境なので、tarとsshを併用する感じで対応することにしますかな...
2024年1月25日(木)追記:↓ ここから
tarのオプションのexcludeがなかなかに曲者で、
⇧ 上記サイト様にありますように、挙動に注意が必要っぽいですと。
そして、
⇧ catとsshの併用でのファイル転送も可能ということが分かりました。
2024年1月25日(木)追記:↑ ここまで
2024年1月26日(金)追記:↓ ここから
意外に、既に圧縮が済んでいるファイルをsshコマンドのみで転送する情報がネットの情報で見当たらなかったので、備忘録として。
cat [圧縮済みファイル名].tar.gz | ssh [ユーザー]@[転送先のホスト] 'cat > [転送先のディレクトリ]/[圧縮済みファイル名].tar.gz'
⇧ で、いけた。
というか、他に方法が無さそうなんよね...
docker saveとかすると、拡張子が「.tar.gz」の圧縮ファイルができるんで、余計なことせず転送するだけを実現したかったというね...
パイプ処理で繋げば良いのかもしらんけど...
ファイルの圧縮は別の人が行っていて、圧縮済みのファイルだけ連携されてを送信だけしたいってケースもあると思うんだけど、猫も杓子も圧縮しながら転送するって情報ばっかりなのはどうなのかね...
2024年1月26日(金)追記:↑ ここまで
毎度モヤモヤ感が半端ない...
今回はこのへんで。