2012-04-10 16 views
2

Webサーバーを移動しています。 (LAMP)サーバ間のシンボリックリンクをコピーするにはどうすればよいですか?

Webserver 1には、異なるディレクトリ(例:../../files/001.png)のファイルを指す数百のシンボリックリンクがあります。新しいサーバーに移動すると(サイトを自分のコンピューターにダウンロードしてから、SFTPクライアントの送信を使用してWebサーバー2に再アップロードします)。シンボリックリンクをコピーしません...

新しいサーバーで再作成する以外に、あるサーバーから別のサーバーへのシンボリックリンクを取得するより良い方法はありますか?次のような

答えて

3

何か? Webサーバ1上:

tar czf - the_directory | (ssh Webserver2 "cd /path/to/wherever && tar xzf -") 

これはSTDOUTにコピーするもののタール、およびSSHを介して他のサーバー上のuntarしへのパイプを作成します。これは、再帰的なsshコピーよりも速いことがあります。

+0

私はさらにそれが何をするかを説明し、なぜそれが使用されるべきであるあなたを納得させることができ、任意のチャンス:P – hozza

+0

確かに。要点は、tarはシンボリックリンクを保持しているということです。上記は単なるショートカットです.Webserver1の内容を圧縮し、Webserver2にコピーしてからuntarしてください。あなたはそれをして、移行前の状態のバックアップがあるようにしたいかもしれません。これにより、tarファイルをディスクに書き込む必要がなくなり、ネットワーク上を直進するだけでなく、個々のファイルではなくデータのストリームをコピーするため、タルファイルを高速化することができます。私はこのトリックをデータベース移行プロジェクト中に使用しました。任意の明確な? –

1

rsync -aサーバー間でファイルの属性とシンボリックリンクが維持されます。

rsync -av [email protected]:/path/to/source [email protected]:/path/to/target 
+0

Webサーバー1でrsyncを使用できません。 – hozza

+0

webserver 1はどのシステムで動作していますか? Webサーバー2への完全アクセス権があれば、rsyncでも可能です。 – lunixbochs

関連する問題