Solaris, Cygwin veya Windows komutuna eşittir “ftp -s: batch_cmd_file”


0

Altında çalışan Cygwinve bir toplu iş dosyasından komutları okumak ve yürütmek Windows cmdiçin ftp'nin -skomut satırı anahtarını kullanan bir FTP komut dosyası kullanıyorum :

ftp -i -s:/path/ftp.params 

Toplu iş dosyası ftp.parambaşka bir iş tarafından üretilir ve aşağıdaki gibi standart FTP komutlarını içerir:

OPEN my_address
my_login
my_password
GET file_a
GET file_b
BYE

Şimdi bu ftp betiğini Solaris altında kullanmak zorundayım, ancak ftp man sayfasına göre, Solaris sürümü bir toplu iş dosyasını çalıştırmak ftpiçin komut satırı anahtarını kabul etmiyor -s.

O dokümanda ve ayrıca internette aradım ama gidecek yolu bulamadım. Hiç önerin var mı?

Yanıtlar:


2

Bu seçenek yalnızca windows ftp istemcisi için geçerli görünüyor. Benzer bir sonuç için, komut dosyası yazabileceğiniz bir ftp istemcisi kurabilirsiniz. NcFTP buna oldukça uygun. Wget de işe yarardı.

Ncftp ile, her zaman girmek istemiyorsanız "alma" listenizi içeren bir dosyaya ve bir de giriş bilgilerinizi içeren bir dosyaya sahip olacaksınız. (İlgili güvenlik risklerinin farkında olun)

Bash komutunu kullanarak aşağıdakileri bir komut dosyasına girersiniz ya da sadece çalıştırırsınız:

while read line
do
    ncftpget -f <FILEWITHCREDENTIALS> $line -bb
done < <FILEWITHLIST>
ncftpbatch -d

Kimlik bilgileriniz dosya biçiminde olacaktır.

host <my_address>
user <my_login>
pass <my_password>

-bb, her dosyayı çalışmayı bekleyen bir toplu iş olarak gönderir. Ncftpbatch'i çağırmak işi yönetir. Bunu yapmak bir bağlantıyla sınırlandırmalıdır.

Diğer seçenekler -b (hemen arka planda işi başlatmak) ve ncftpbatch çağrısını bırakmak ve komutta -f yerine user / host / password seçeneklerini kullanmak olur.

Henüz kurulu değilse ncftp'yi burada ve burada bulabilirsiniz .

Wget için benzer bir döngüsel komut dosyası kullanabilir ve ncftpget çağrısını

wget ftp://user:password@ftp.mydomain.com/path/$line

Yine, yüklü değilse, buradan ya da her iki programla da Solaris sürümünüz için uygun paket yöneticisine göz atabilirsiniz .

Programlar hakkında daha fazla bilgiyi man sayfalarıyla veya hızlı bir web aramasıyla bulabilirsiniz.


@OldWolf teşekkürler! Buna bir göz atacağım. Sonunda çalışan bir çözüm bulmama rağmen, sizinki daha esnek olabilir ve bu konuyla ilgili olmayan diğer işler için benim için ilginç olabilir.
Shlublu

1
@Shlublu Sorun değil, yardımcı olursa sevinir!
OldWolf

1

Tamam, işe yarayan bir çözüm buldum.

Temelde, uzak ftp sitesini toplu iş dosyasından açmak yerine, onu ftpkomuttan açmam ve sonra ftpda toplu iş dosyasıyla beslemek için kabuğu kullanmam gerekiyor . Her zaman aynı ftp adresini kullandığım için onunla yaşayabilirim.

Tek dezavantajı bunun toplu iş dosyasını biraz değiştirmesini gerektirmesidir, bu yüzden onu üreten iş.

  • Kabuk kısmı ftpşu şekilde komutu yerine getirmekten ibarettir :

    ftp -i -n my_address < /path/ftp.params
    
  • Ve toplu iş dosyası bu şekilde değiştirilmelidir:

    USER my_login my_password 
    GET file_a
    GET file_b
    BYE
    
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.