Forum
Merhabalar..
Freebsd de calisacak ftp uzerinden dosya gonderecek seknronize scriptine ihtiyacim var.. Soyle A dizinindeki dosyalari B dizinine tasiyacak eger B dizinin de ayni isimde dosya varsa atlayacak. Buraya kadar rsync ile yapilabiliyor. yapamadigim kisim, karsilikli kontrolu yaparken dosya uzantilarini dikkate almayacak. sadece isimlerini kontrol edecek. Mesela; A dizininde abc.mov, acd.mp4, sdf.flv dosyalari B de abc.flv, sdf.mp4 dosyalari olsun. Script calistiginda A dizinideki dosyalardan abc.mov ve sdf.flv dosyalirini B dizininde ayni ismde abc.flv ve sdf.mp4 isim karsiliklari oldugu icin atlayip sadece acd.mp4 u kopyalamali. Bu senkronizasyonu nasil yapabilirim.
Tesekkurler...
Merhaba,
Python ile ufak bir script yazdım. Dosya kontrolü ve, yükleme işlemini ftp protokolü üzerinden gerçekleştiriyor.
Scriptte A dizini dediğiniz local dosya dizini, B dizini dediğiniz ftp üzerinden kontrol edilecek dizini gösteriyor. Ayrıca bağlanılacak ftp bilgilerini düzenlemelisiniz.
Belirttiğiniz senaryoya göre denediğimde, script düzgün şekilde çalışıyor. Umarım işinize yarar. Test edip bilgi verirseniz sevinirim.
Script : http://gokhanmankara.com/files/python/ftp_check.py
Not: Çalışan sistem üzerinde kullanmadan önce, test ortamında emin olduktan sonra, çalışan sistem üzerinde deneyin. FTP üzerindeki dizini kontrol ettiği için, dosya olmaması durumunda hata verecektir.
Merhaba,
Ilginiz icin tesekkurler..
Scripti freebsd de calistiramadim, mac te calistirdim. mac ile denedim ilk bir kac denemede guzel calisti. daha sonra ne olduysa tum dosyalari bastan gondermeye basladi. karsi tarafta dosyalari silip tekrar gonderiyor. farki bir makinada farkli bir ftp ile denedim yine ayni sekilde dosyalari yeniden gonderdi.
frebsd de ise su hatayi veriyor.
Traceback (most recent call last):
File "/ftp_check.py", line 18, in <module>
a, b = i.split('.')
ValueError: too many values to unpack
Bu hatayı benim testlerimde A dizininde klasör var ise veriyor idi, senaryonuza göre iki dizinde de klasör olmaması gerekiyor.
Dosya silme yerine üzerine mi yazıyor? Sonucta dosya sil şeklinde bir parametre yok. Yapınızı tam olarak bilmediğimden yorum yapmak zor.
A dizininde klasor yok. silip yeniden yaziyordan kastim uzerine yaziyor, uzantilarina bakmiyor hesini gonderiyor.
Dediğim gibi, düzgün çalışıp bir müddet sonra dediğiniz şekilde dosyaları tekrar yüklemesinin sebebini, gerçek ortamda kullandığınız yapıyı tam olarak bilmeden yorum yapmam zor. Sonuçta test ortamı 10 dosyadan oluşan bir yapı. Sizin kullandığınız gerçek ortamı bilmek gerekiyor. Size PM gönderdim, bakabilirseniz sevinirim.
Merhabalar..
Freebsd de calisacak ftp uzerinden dosya gonderecek seknronize scriptine ihtiyacim var.. Soyle A dizinindeki dosyalari B dizinine tasiyacak eger B dizinin de ayni isimde dosya varsa atlayacak. Buraya kadar rsync ile yapilabiliyor. yapamadigim kisim, karsilikli kontrolu yaparken dosya uzantilarini dikkate almayacak. sadece isimlerini kontrol edecek. Mesela; A dizininde abc.mov, acd.mp4, sdf.flv dosyalari B de abc.flv, sdf.mp4 dosyalari olsun. Script calistiginda A dizinideki dosyalardan abc.mov ve sdf.flv dosyalirini B dizininde ayni ismde abc.flv ve sdf.mp4 isim karsiliklari oldugu icin atlayip sadece acd.mp4 u kopyalamali. Bu senkronizasyonu nasil yapabilirim.
Tesekkurler...
Bu dediğinizi rsync yapıyor zaten neden onla devam etmiyorsunuz ?
rsync ile yapmaya calistim ama yapamdim. Rsync'e kaynak ve hedef karsilastirmasini yaparken dosya uzantilarini dikkate alma secenegini nasil tanimlayabilirim... hedefte 'abc.mov' dosyasi varsa, kaynaktaki 'abc.flv' dosyasini atla nasil diyebilirim.