secara bersamaan memperbarui ratusan situs di server yang sama

Saya sedang mengerjakan server khusus Hostgator di mana terdapat ratusan situs yang memiliki kesamaan dalam struktur file dan file .php yang umum untuk setiap situs.

Saya ingin dapat bekerja hanya pada satu situs (situs "model") dan kemudian menyinkronkan perubahan tersebut di semua situs lainnya. Saya terbuka untuk melakukan hal ini secara otomatis atau semi-manual (menjalankan skrip atau perintah.) Salah satu persyaratannya adalah karena beberapa situs berbeda, maka situs tersebut harus dikecualikan dari sinkronisasi ini. Apa sajakah itu? beberapa teknik untuk mencapai ini? Inilah yang saya pikirkan sejauh ini...

  • RSync : apakah rsync mampu melakukan ini? Saya belum pernah menggunakannya tetapi saya dengar ini bagus untuk menyalin file dari satu lokasi server ke lokasi server lainnya.

  • SSH : Saya tidak terlalu nyaman bekerja dengan perintah shell tapi saya bisa membayangkan ini jelas merupakan tempat yang "tepat" untuk membuat perubahan semacam ini. (tidak yakin bagaimana cara mengulang dan membuat perubahan pada semua direktori KECUALI beberapa yang berbeda)

  • PHP : Jika memungkinkan, saya ingin melakukan ini dengan PHP kecuali server saya menggunakan SuPHP untuk keamanan dan saya tidak dapat mengabaikan izin yang diperlukan. Saya mungkin bisa beralih ke fcgi... (terbuka juga untuk saran untuk ini)

Struktur file saya adalah sebagai berikut:

    /home/model/
    /home/site1/
    /home/site2/
    /home/site3/
    /home/exception/
    /home/site5/
    /home/site6/
    /home/exception/

person filip    schedule 02.12.2010    source sumber


Jawaban (1)


Perintah Bash lebih cocok dan cenderung lebih mudah,
seperti itu menggabungkan rysnc plus tautan simbolik ln

Singkatnya,

ln -s /home/model/ /home/site1 
ln -s /home/model/ /home/site2
ln -s /home/model/ /home/site3

jadi, ini akan menghubungkan situs1,situs2,situs3 dengan lembut ke model

apa itu tautan simbolis?
http://en.wikipedia.org/wiki/Symbolic_link

Setelah itu, Anda hanya perlu melakukan rsync perubahan Anda pada model direktori,
dan perubahan akan langsung berlaku pada site1,site2,site3
(karena semua direktori merupakan symbolic link ke model)

sedangkan untuk situs5, situs6, karena perbedaannya, scp lebih cocok dengan sepatunya.

person ajreal    schedule 02.12.2010
comment
ah pendekatan yang sangat keren @ajreal. Masalah dengan symlink adalah bahwa situs-situs tersebut tidak sepenuhnya identik, semuanya memiliki struktur yang sama namun banyak file yang unik. Yang sebenarnya saya cari adalah cara menambahkan direktori ke setiap situs atau memperbarui beberapa file di seluruh situs dengan mudah. Melihat ke scp sekarang. - person filip; 02.12.2010
comment
Tautan simbolik +1 jelas merupakan pilihan yang lebih baik, daripada menyinkronkan file. - person Ish; 02.12.2010
comment
@Ish Kumar mungkin saya salah memahami tautan simbolik, tetapi jika saya memiliki seluruh tautan simbolis /site1/, /site2/ ke /model/ bagaimana cara menyimpan file unik di dalam direktori yang terhubung dengan simbol ini? Di sisi lain, jika saya hanya menghubungkan file dan direktori umum, bagaimana saya menambahkan direktori ke setiap situs? Terima kasih - person filip; 02.12.2010
comment
@filip, Anda harus melakukan softlink site1/common/ -› model/common dan menyimpan site1/unique_files sebagai file fisik. Jadi di masa depan jika Anda perlu memperbarui file umum, cukup edit model/common - person Ish; 02.12.2010
comment
Terima kasih @Ish Kumar, itu masuk akal, namun mungkin sulit diterapkan saat ini. Penasaran apakah ada yang punya saran lain - person filip; 02.12.2010