Bagaimana cara menentukan nama pengguna dan kata sandi dalam perintah ftp?

9

Saya ingin mengotomatiskan panggilan ke ftp dalam skrip shell. Jika saya mengetik

$ftp somehost.domain.com

Saya diminta untuk memasukkan nama pengguna dan kata sandi. Saya ingin memberikan nama pengguna dan kata sandi itu sebagai bagian dari panggilan ke ftp. The halaman manual untuk ftp bilang aku bisa mengeluarkan perintah pengguna di ftp cepat - tetapi saya ingin login ke ftp semua dalam satu pergi. Apakah itu mungkin? Saya tidak melihat apapun di flag untuk ftp. Saya melihat bahwa opsi -s memberi saya opsi untuk menentukan beberapa perintah ftp begitu saya memiliki prompt ftp - tapi saya perlu memberikan nama pengguna untuk sampai ke prompt ...

bernie2436
sumber
expect(ekstensi tcl / tk semacam) adalah program yang ideal untuk hal-hal semacam ini - yaitu. tunggu beberapa prompt; berikan tanggapan ... tunggu jawaban; beri respons baru ... expecttunggu "ogin:" dan kirimi Anda nama pengguna, lalu tunggu "assword:" dan kirim kata sandi Anda.
Baard Kopperud

Jawaban:

10

Gunakan .netrcfile di direktori home Anda.

Kontennya adalah:

# machine <hostname> login <username> password <password>
machine ftp.example.com login myuser password $ecret

Jika ini adalah sesuatu yang Anda lakukan secara terprogram, tulis .netrcsebelum menghubungkan, hapus ketika Anda selesai.

bahamat
sumber
apakah file ini khusus untuk ftpatau dibaca oleh program lain juga?
terdon
The netrc(5)halaman manual mengatakan bahwa itu "untuk ftp(1)" tapi aku tidak yakin bahwa ftpsatu-satunya hal yang akan menggunakannya.
bahamat
Jika Anda ingin menemukan file ".netrc" Anda, cukup gunakan perintah ini:locate '.netrc'
goamn
1

Anda juga dapat menulis skrip ac shell menggunakan doc di sini yang akan seperti ini:

#!/bin/sh
HOST='someftpserver.com'
USER='username'
PASSWD='password'
FILES='*.txt'
#
ftp -nv $HOST>$FTPLOG <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd somedirectory
binary
mget $FILES
quit
END_SCRIPT
pengguna81134
sumber
0

Anda juga dapat mempertimbangkan wputatau wgetsebagai alternatif, tergantung pada kebutuhan Anda.

Saya belum pernah menggunakan wgetbaru-baru ini tetapi saya telah menggunakan wputkarena saya tidak ingin membuat atau memodifikasi file seperti yang disarankan dalam beberapa jawaban sebelumnya.

Sebab wput, sintaksnya adalah:

wput <filename> ftp://<username>:<password>@<address>
Crumeniferus
sumber