シンボリックリンクフォルダからデータをコピーするスクリプトを設定しようとしています。アイデアは、フォルダを設定し、このフォルダに複数のシンボリックリンクを作成し、rsyncがそのディレクトリのデータをコピーすることです。
/backups/local/
/backups/local/etc # symlink to /etc/
/backups/local/var # symlink to /var/
/backups/local/home # symlink to /home/
これはファイルをコピーするときに問題になり、心配です。今度は追加のシンボリックリンクについて心配する必要があります。私が見たいのは、次のディレクトリをコピーするためにルートシンボリックリンクのみを処理しますが、その/etc/
/var/
中にあるか見つかったシンボリックリンク/home/
もコピーされないことです。
テストするために内部に別のシンボリックリンクを置き、試した/etc/
すべてのオプションを使用して毎回ファイル全体の内容をコピーしました。/home/
/home/etc
/home/etc/
私は次のオプションを見つけてみて、それが私が探しているものかもしれないと思います。
rsync -avz -L [options] # i knew this would copy everything and it did.
rsync -avz -L --copy-unsafe-links [options] # copies all symlinks recursively still.
rsync -avz --copy-unsafe-links [options] # still copies all symlinks file/contents recursively
--copy-unsafe-links オプションを試してみました。マニュアルページにルートシンボリックリンクが安全でないと見なされていたので、ルートシンボリックリンクだけをコピーすることもできると思いました。
答え1
-a
これは、記憶オプションを使用して有効になっている-a = -rlptgoD
ことを確認したため-l --links
です。以下を試してください。
rsync -vzrptgoD -L SRCFOLDER DSTFOLDER