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 ...
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 ...expect
tunggu "ogin:" dan kirimi Anda nama pengguna, lalu tunggu "assword:" dan kirim kata sandi Anda.Jawaban:
Gunakan
.netrc
file di direktori home Anda.Kontennya adalah:
Jika ini adalah sesuatu yang Anda lakukan secara terprogram, tulis
.netrc
sebelum menghubungkan, hapus ketika Anda selesai.sumber
ftp
atau dibaca oleh program lain juga?netrc(5)
halaman manual mengatakan bahwa itu "untukftp(1)
" tapi aku tidak yakin bahwaftp
satu-satunya hal yang akan menggunakannya.locate '.netrc'
Anda juga dapat menulis skrip ac shell menggunakan doc di sini yang akan seperti ini:
sumber
Anda juga dapat mempertimbangkan
wput
atauwget
sebagai alternatif, tergantung pada kebutuhan Anda.Saya belum pernah menggunakan
wget
baru-baru ini tetapi saya telah menggunakanwput
karena saya tidak ingin membuat atau memodifikasi file seperti yang disarankan dalam beberapa jawaban sebelumnya.Sebab
wput
, sintaksnya adalah:sumber