Rsync, uzak sistemden ya da sisteme dizin yapılarını kopyalamak için etkili bir yöntem. Kendi üzerinden ya da rsh/ssh ile çalışmasına rağmen, ftp ile çalışmaması, sadece ftp sunan bazı ISP’lerde sorun yaratabiliyor - mesela benimkinde. Uzunca bir süre rsync ile ftp’yi bir arada mutlu yaşatabilir miyim diye arayıp kurcaladıktan sonra, çözümün önümde durduğunu farkettim. Sadece parçaları birleştirmek gerekli. Şöyle ki:
Diyelim ki, normalde vereceğiniz komut şöyle birşey:
$ rsync -a user@www.isp.com: backup
Ssh çalışmadığına göre, bu da çalışmayacak. Ama www.isp.com’a ftp ile ulaşabiliyorsak, curlftpfs kurarak, ftp üzerinden karşı dizini kendi sistemimize bağlayıp, yerel olarak rsync çalıştırabiliriz. Bu kesinlikle yavaş olacak ama en azından çalışacak bir çözüm olur. Ubuntu’da curlftpfs kurmak için yapacağımız şey:
$ sudo aptitude install curlftpfs
Sonra dizinin istek üzerine bağlanması için autofs kuruyoruz:
$ sudo aptitude install autofs
Arkasından autofs’in yapılandırma dosyalarını kurcalıyoruz: Önce /etc/auto.master dosyasını açıp, içinde /misc geçen satırın önündeki “#” işaretini kaldırıyoruz. Sonra da /etc/auto.misc dosyasını açıp aşağıdaki satırı ekliyoruz:
isp -fstype=fuse,allow_other :curlftpfs\#user@www.isp.com
Unutmadan, dizinleri de yaratalım:
$ sudo mkdir -p /misc
Burada user@www.isp.com yerini özelleştirmeniz gerekli. Son adımda, şifreyi bir yere kaydetmemiz gerekli:
- sudo -s
- cd /root
- touch .netrc ; chmod go= .netrc
- echo machine www.isp.com >> .netrc
- echo login user >> .netrc
- echo password çokçokgizli >> .netrc
En son olarak da autofs’i dürtüklüyoruz:
$ sudo invoke-rc.d autofs restart
Bu kadar. Bundan sonra, en başta deneyip de çalışmayan rsync komutunun karşılığı şöyle bir şey olacak:
$ rsync -a /misc/isp backup
Geçmiş olsun.