ユーザーが離れると、後で特定のファイルがまだ必要になる可能性があることに気付いた場合に備えて、ユーザーのホームフォルダのワンタイムアーカイブコピーをアーカイブサーバーに作成する必要があります(最終削除待機中)。だから) 去る前に必要なすべてのものを直接バックアップしておきなさい。
私たちはこれを使用してきましたが、scp
今では、以前のユーザーがフォルダの1つに珍しいシンボリックリンク構造を作成するいくつかのソフトウェアをインストールするように誤ってだまされてscpを検索し、ブロックされる前にコピーを試みているようです。 、意外にも。
残念ながら、scpは常にシンボリックリンクに従うことがわかり、これを防ぐためのオプションはないようです。
この問題を回避するために、ユーザーフォルダをバックアップする別の方法を探しています(理想的には、必ずしも必要なものよりも複雑ではありません)。
tar
可能であるかもしれませんが、アーカイブサーバーにコピーする前にローカルでタールボールを作成すると、多くのストレージスペースが利用可能になり、将来ファイルサーバーがいっぱいになると少し問題が発生する可能性があることが少し心配です。
もう1つの可能性はrsyncを使用することですが、1回限りのrsync
ファイル転送には過剰である可能性があり、以前の経験でrsync独自のオプションを調整することは時々それ自体で退屈する可能性があることを知っています。
これに安定したシンプルなscpの代替案を提案できる人はいますか?
答え1
一時ファイルが気に入らない場合はtar
簡単です。一時ファイルを使用しないでください。パイプを使用してください。
cd /home ; tar cf - user | gzip | ssh archivehost -l archiveuser 'cat > user.archived.tar.gz'
代替xz
またはあなたが好きなものgzip
。または、マスターサーバーのCPUサイクルを保存することが、ネットワーク帯域幅(したがってアーカイブサーバーのCPU)を節約するよりも重要な場合は、接続の反対側に移動します。
cd /home ; tar cf - user | ssh archivehost -l archiveuser 'gzip > user.archived.tar.gz'
gpg
そこに投稿することもできます。保存するときは公開鍵暗号化を使用し、何かを復元する必要がある場合は秘密鍵を使用してこれらのアーカイブ専用鍵のペアを取得します。
リクエストに応じて詳細を確認できます。
私はuser
あなたが保管しているホームディレクトリのユーザーになります/home/user
。archivehost
アーカイブを保存するサーバーとarchiveuser
アーカイブサーバーでアーカイブを所有しているアカウント。
tar cf - user
「tarアーカイブを作成してuser
標準出力に書き込む」という意味です。 「作成-c
」、-f -
「stdin/stdoutをファイルとして使用」です。これは基本的な操作であるため機能しますが、最初は基本操作がtar c user
テープ装置を読み書きすることです。明示的な表現を使用することは、私の年齢が聞こえたという信号であるかもしれません。-f -
tar
-f -
tarz
フラグがあると思いますが、それを.tarファイルの反対側に移動する方法を示すことはできませんssh
。 (また、明示的なパイプを接続しgzip
てtar
使用することは、「老人」の仕事の1つです。tar
これに対するオプションが常にあるわけではありません。)また、そのオプションを覚えなくても、、、bzip2
または他lzop
のxz -3v
コンプレッサーを交換することができますtar
。
私は--checkpoint
以前聞いたことがないので、直接テストに頼る必要があります。
答え2
Rsyncは合理的な選択です。ワンタイム転送にrsyncを使用することには問題はありません。
Tarも合理的な選択です。アーカイブをローカルに保存する必要はありません。SSHによる直接パイプ。
もう1つの可能性は、サーバーディレクトリを次の場所にマウントすることです。SSHFS。ただし、SSHFSはすべてのメタデータ(権限など)を保存していないことに注意してください。 (Tarとrsyncはすべてのメタデータを保存することはできませんが、より良いパフォーマンスを発揮することができます。GNU --acls --xattrs
tarに渡して--acls --xattrs
rsyncに渡します。)