Tüm dosya ve klasörleri bir Ana Bilgisayardan diğerine kopyalamak istiyorum. Eski Host üzerindeki dosyalar/var/www/html adresinde oturur ve yalnızca bu sunucuya FTP erişimim vardır ve tüm dosyaları TAR edemiyorum. Eski Host ile FTP üzerinden düzenli bağlantı, beni/home/admin klasörüne getirir.
Yeni sunucumdan aşağıdaki komutu çalıştırmayı denedim:
wget -r ftp://username:[email protected]
Ancak tüm aldığım bir index.html dosyası.
FTP üzerinden yinelemeli olarak wget kullanmak için doğru sözdizimi nedir?
Deneyin -m
için --mirror
wget -m ftp://username:[email protected]
Haklısın, sadece sonunda bir izlemeye * ihtiyacın var:
wget -r ftp://username:[email protected]/dir/*
Paylaşılan sunucular için şu şekilde kullanabilirsiniz:
wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password
Paylaşılan sunucuların çoğunun ftp-kullanıcıadı, kullaniciadi @ hostname gibi bir şey olduğundan, ilk wget komutu çalışmaz ve ikinci komut düzgün çalışır.
Wget'in yanı sıra komut dosyası modunda lftp öğesini de kullanabilirsiniz. Aşağıdaki komut, belirli bir uzak FTP dizininin içeriğini belirtilen yerel dizine yansıtır ve cron işine yerleştirilebilir:
lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'
Özyinelemeyi otomatik olarak dizinlere işler ve verileri indirmek için uzak kaynak başlangıç dizinini belirtmeye izin verir.
FTP'den verileri tekrar tekrar indirmek için aşağıdaki wget komutunu kontrol edin.
wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"
-r
: Özyinelemeli indirme içindir.
-np
: Ebeveyn artan yok.
-nH
: URL ile aynı dizine sahip dizinin oluşturulmasını devre dışı bırakmak içindir, yani abc.xyz.com
--cut-dirs
: Üst dizin sayısını yok saymak içindir. Bu seçeneğin değeri komutunuz için farklı olacaktır.
Yukarıdaki komutu uygulayarak kontrol edebilirsiniz.
'Curlftpfs - yerel dizin olarak bir ftp Ana Bilgisayarı bağla' seçeneğini kullanabilir ve bağlandıktan sonra 'cp -r' gibi normal dosya araçlarını kullanabilirsiniz.
Özyineleme derinliği nedeniyle -r yerine -m kullanın.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
Çalışmalı:
wget -r ftp://ftp:[email protected]/tst/
Kullanın:
wget -m ftp://192.168.0.1
ve tüm dosya ve klasörleri yansıtacaktır.
Dediğim gibi, FTP ile giriş yapmak beni/home/admin klasörüne götürüyor ve ihtiyacım olan dosyalar/var/www/html
Bunun sizin durumunuzda işe yarayacağını düşünüyorum:
wget -r ftp://192.168.0.1/../../var/www/html
Bu doğru sözdizimi. Beklenen sonuçları neden almadığınızdan emin değilim.
Her zamanki gibi bunu yapmanın birden fazla yolu var. Ncftp'yi, özellikle ncftpget'i deneyin
Bunu cron'a veya başka bir şeye dökmeye çalışıp çalışmadığınızı anlayabiliyorum, ancak neden normal istemciniz ve mget * ile sunucuya ftp göndermiyorsunuz? Bu, başarıya giden daha hızlı bir yol olabilir.
Windows ile kullanıcı adı brinkster/username olarak hostingle karşılaştım, bu yüzden sözdizimini kullanırsanız wget bir hata atar:
wget -m ftp://brinkster/username:[email protected]
Bunu aşmak için şunu kullanın:
wget -m ftp://brinkster%2Fusername:[email protected]
Windows @ brinkster hosting ile yüzleşmek zorunda kaldı.