Komut satırı ftp istemcisini kullanarak bir klasörü ftp yapmaya çalışıyorum, ancak şimdiye kadar sadece bireysel dosyaları almak için 'get' kullanabildim.
Komut satırı ftp istemcisini kullanarak bir klasörü ftp yapmaya çalışıyorum, ancak şimdiye kadar sadece bireysel dosyaları almak için 'get' kullanabildim.
Yanıtlar:
Genellikle ftp düzgün olsun (en azından kendi deneyimim) kolları wget güvenebilirsiniz. Örneğin:
wget -r ftp://user:pass@server.com/
-m
Aynalama için uygun olanı da kullanabilirsiniz . Şu anda ile eşdeğerdir -r -N -l inf
.
Kimlik bilgileri ayrıntılarında bazı özel karakterler varsa, işe yaraması için --user
ve --password
bağımsız değişkenlerini belirtebilirsiniz . Belirli karakterlerle özel girişe sahip örnek:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
DÜZENLEME
@asmaier tarafından işaret edildiği gibi, -r
özyineleme için olsa bile , varsayılan maksimum 5 seviyesine sahip olduğuna dikkat edin :
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
Alt dizinleri kaçırmak istemiyorsanız, yansıtma seçeneğini kullanmanız daha iyi olur -m
:
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
wget -m
( --mirror
). wget -r
varsayılan olarak 5 özyineleme derinliği ile sınırlıdır.
--user
ve --password
çok Red Hat üzerinde. Benim ümitim: GNU Wget 1.11.4 Red Hat modified
Acaba sürüm versiyonu mu yoksa dağıtım mı ...
-l 0
, bu nedenle --mirror
.listing dosyaları gibi bazı istenmeyen yan etkileri olabilecek kullanmaya gerek yoktur
wget --ask-password -rl 99 ftp://user@server.com
. Bu şekilde parola ile görünmez ps
ve geçmişte kalmaz. Tabii ki, ftp doğası gereği sunucuya şifrelenmemiş olarak gönderilir.
$
) --user='user' --password='pa$$word'
Sadece Thibaut Barrère'in verdiği cevabı tamamlamak için.
kullandım
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
Sunucu adından sonraki çift eğik çizgiye dikkat edin. Fazladan eğik çizgi koymazsanız, yol kullanıcının giriş dizinine göredir.
-nH
sunucu adından sonra bir dizin oluşturulmasını önler-nc
hedefte zaten varsa yeni bir dosya oluşturmaktan kaçınır (sadece atlanır) --cut-dirs=5
/ absolute / path / to / dizininin içeriğini almanıza ve wget'i başlattığınız dizine koymanıza izin verir. 5 sayısı, yolun 5 bileşenini filtrelemek için kullanılır. Çift eğik çizgi ekstra bir bileşen anlamına gelir.--ftp-user=USER
ve --ask-password
.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
wget
TAR modunda kesinlikle daha güvenilir ve daha hızlı. Teşekkürler!
Eğer lftp
makinenizde, kullanım yüklü mirror dir
. Ve işiniz bitti. Bir dizini özyinelemeli olarak indirmek istiyorsanız aşağıdaki Ciro'nun yorumuna bakın.
mirror -R dir
özyinelemeli dizin yükleme / güncelleme yapar
mirror ./
geçerli yoldaki tüm dosya ve klasör özyinelemeli olarak indirmek için kullanabilirsiniz .
mirror
Geçerli dizin ve alt klasörleri için de yalnızca yazabilirsiniz .
scp
Bunun yerine kullanabiliyorsanız ftp
, -r
seçenek bunu sizin için yapar. FTP'den daha modern bir dosya aktarım mekanizması kullanıp kullanamayacağınızı kontrol ediyorum.
scp
yine de yalnızca FTP kimlik bilgileriniz varsa çalışmazsa ssh kullanmaya çalışır. Yaptığım teknolojinin modern olmadığını söyleyerek 2008'den gelen bir yoruma cevap vermek garip geliyor :( İyi eski 2008, yorumunuzu yayınladığınız gün 18
Bunun yerine WGet kullanın. HTTP ve FTP protokollerini destekler.
wget -r ftp://mydomain.com/mystuff
İyi şanslar!
başvuru: http://linux.about.com/od/commands/l/blcmdl1_wget.htm
Linux'ta kurulum için mevcut olan 'ncftp' vardır. Bu, FTP protokolünde çalışır ve dosyaları ve klasörleri özyinelemeli olarak indirmek için kullanılabilir. Linux üzerinde çalışır. Kullanıldı ve özyinelemeli klasör / dosya aktarımı için iyi çalışıyor.
Bu bağlantıyı kontrol edin ... http://www.ncftp.com/
Mümkünse, size tar
ve bzip
(veya gzip
teknenizde yüzen ne olursa olsun) uzak makinedeki dizini şiddetle öneririm - herhangi bir önemli boyuttaki bir dizin için, bant genişliği tasarrufu muhtemelen zip / unzip için zaman ayırmaya değer olacaktır.
Kullanmamalısınız ftp
. Sevmektelnet
kendisine güvenli protokoller kullanılarak değildir ve şifreler açık metin olarak iletilir. Bu, üçüncü tarafların kullanıcı adınızı ve şifrenizi yakalamasını çok kolaylaştırır.
Uzak dizinleri uzaktan kopyalamak için bu seçenekler daha iyidir:
rsync
üzerinden giriş yapabiliyorsanız en uygun araçtır ssh
, çünkü sadece farklılıkları kopyalar ve bağlantı kopması durumunda kolayca ortada yeniden başlatılabilir.
ssh -r
dizin yapılarını özyineli olarak kopyalamak için en iyi ikinci seçenektir.
Görmek:
istemi PROMPT komutuyla değiştirin.
Kullanımı:
ftp>cd /to/directory
ftp>prompt
ftp>mget *
mget
, hiç özyinelemez. Eylül 22 '08 at 9:01 Thibaut Barrère anlamak daha kolay ama-l 0
yorumlarda belirtildiği gibi seçeneği eklemeniz gerekir