Nedir farklı bir sunucuya bir dosya taşımak için en iyi yolu nedir?

3 Cevap php

Im tek bir sunucunun kapasitesinin ötesinde yetiştirilen bir dosya ana Thats çalışan, ve ben dosyaların birden çok sunucu depolama uygulamak gerekir. Ben mümkün olduğunca bu kadar ucuz yapmak istiyorum, bu yüzden bu süslü yığın depolama yöntemleri söz konusu değildir. Ben sadece medya sunucularından birine tüm http ve mysql barındıran "ağ geçidi" sunucu, kullanıcı tarafından yüklenen bir dosya Thats taşımak istiyorum. Bu dakika her çift Ya kullanıcının isteği sonunda yapılabilir, veya cron üzerinden.

Bu noktada tek yöntem ile gerçekten aşina Im, php fonksiyonu ftp_put kullanıyor ve sadece farklı bir sunucuya dosya FTPing, ama özellikle büyük dosyalar için, geçmişte bu yöntem ile sorunları vardı, ve bir sürü var transfer elde edilecek dosyalar 100mb üzerinde olacak.

Herkes bunun için iyi bir çözüm önerebilir? Tercihen Im tamamen yazılım çözümü arıyor ... umarım bir php / bash komut daha fazla bir şey.

3 Cevap

Programlı bir kurulum gerektirir ve oldukça güvenli bir yöntem diğer sunucudan bir klasör montaj ve normalde yaptığınız gibi bu dizine kaydetmek için php kullanmaktır.

Sen sshfs kullanmak zorunda değilsiniz, aynı çözüm sağlamak için başka yollar bir grup vardır. SSH üzerinde çalışıyor, ve bu nedenle güvenli ve kurulumu oldukça kolay olduğu gibi bu durum için sshfs kullanmak istiyorsunuz.

(Sshfs kullanarak) Bu amaca ulaşmak için:

  1. Kurulum sshfs
  2. Php için bir klasör erişilebilir bir ssfs dosyasını mount
  3. Montaj sshfs içindeki dosyaları saklamak için bir php komut dosyası kullan ve bu nedenle başka bir sunucu üzerinde.

Başka bir yöntem kurulum için iki kullanarak crontab'ın arasında bir rsync komutu olduğunu.

Eğer cron çalıştırmak bir bash komut dosyası yazabilirsiniz

ve scp sftp veya rsync gibi komut satırını kullanın

Örnek:

[bash]# scp filename alice@galaxy.example.com:/home/alice

Uzak galaxy.example.com sunucuda alice ana dizinine kopyalayın "dosya"

Cron, bir bash betiği, ve rsync kullanın.

cron: "Cron Unix benzeri işletim sistemlerinde bir zamana dayalı bir iş scheduler. 'Cron' kronograf 'için kısa."

bash: "Bash GNU Projesi için yazılmış bir özgür yazılım Unix kabuk."

rsync: "rsync uygun olduğunda delta kodlamasını kullanarak veri transferini en aza indirirken başka bir yerden dosyaları ve dizinleri senkronize Unix sistemleri için bir yazılım uygulamasıdır."

Özet olarak, place the rsync command in a bash script and get cron to run it at regular intervals.

here bazı örnekler için bkz: