Şu anda sadece aşağıdaki Directories
gibi RSync -ing yapıyorum :
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
Peki rsync
tek bir dosya nasıl olur /var/www/public_html/.htaccess
?
Yanıtlar:
Bunu bir dizinde yaptığınız gibi yaparsınız, ancak kaynak olarak dosya adına giden tam yolu belirtirsiniz. Örneğinizde:
rsync -avz --progress /var/www/public_html/.htaccess root@<remote-ip>:/var/www/public_html/
Yorumlarda belirtildiği gibi: yinelemeyi-a
içerdiğinden , küçük bir yazım hatası, tam bir dizin ağacı aktarımını başlatabilir, bu nedenle daha kusursuz bir yaklaşım, onu yalnızca kullanmak veya bununla değiştirmek olabilir .-vz
-lptgoD
Temel sözdizimi
rsync options source destination
Misal
rsync -az /var/www/public_html/filename root@<remote-ip>:/var/www/public_html
Michael Place'in yanıtı, hem kaynak hem de hedef için kök dizine göre dosyanın yolundaki tüm dizinler zaten mevcutsa harika çalışıyor.
Ama ya bir dosyayı bu kaynak yolu ile senkronize etmek isterseniz:
/ kaynak-kök / a / b / dosya
aşağıdaki hedef yola sahip bir dosyaya:
/ hedef-kök / a / b / dosya
ve a ve b dizinleri yok mu?
Aşağıdaki gibi bir rsync komutu çalıştırmanız gerekir:
rsync -r --include="/a/" --include="/a/b/" --include="/a/b/file" --exclude="*" [source] [target]
Bugüne kadar, cevaplardan ikisi pek doğru değil, birden fazla dosya alacaklar ve diğeri olabileceği kadar basit değil, işte size daha basit bir IMO cevabı.
Aşağıdakiler tam olarak bir dosya alır, ancak mkdir ile dest dizini oluşturmanız gerekir. Bu muhtemelen en hızlı seçenektir:
mkdir -p ./local/path/to/file
rsync user@remote:/remote/path/to/file/ -zarv --include "filename" --exclude "*" ./local/path/to/file/
/ Remote / path konumunda dosyanın yalnızca bir örneği varsa, aşağıdakileri yaparsanız rsync sizin için dizinler oluşturabilir. Bu muhtemelen biraz daha zaman alacaktır çünkü daha fazla dizinde arama yapar. Ayrıca, / remote / path içindeki ./local içinde olmayan dizinler için boş dizinler yaratacaktır.
cd ./local
rsync user@remote:/remote/path -zarv --include "*/" --include "filename" --exclude "*" .
Unutmayın ki - dahil et ve - hariç tut.