Wget: Apakah ada cara untuk mengirimkan nama pengguna dan kata sandi dari suatu file?

22

Apakah ada cara untuk meneruskan nama pengguna dan kata sandi dari file alih-alih baris perintah melalui --user dan --password?

Latar Belakang: Saya ingin menjalankan wget melalui cron dan tidak ingin nama pengguna / kata sandi muncul di tampilan proses

Casper
sumber

Jawaban:

13

Gunakan .wgetrcfile ( manual GNU ) di mana Anda dapat mengatur nama pengguna dan kata sandi untuk salah satu atau keduanya ftp dan http.

Untuk menggunakan kredensial yang sama untuk keduanya, tentukan

user=casper
password=CasperPassword

atau secara individual

ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
Mike Renfro
sumber
2
Manual wget GNU juga menyarankan penggunaan -iopsi dan memasukkan nama pengguna dan kata sandi dari input standar.
Richard
Apakah .wgetrcmemberikan fleksibilitas untuk bekerja dengan lebih dari satu server? Jika tidak, .netrcadalah solusi yang lebih baik, lihat jawaban lain dari tobias.pal
ryenus
Saya jelas melewatkan wget menggunakan .netrcfile, tetapi itu didokumentasikan .
Mike Renfro
19

Saya terkejut tidak ada yang menyebutkan .netrcfile. Pertama buat file jika tidak ada dan atur izin aman:

touch ~/.netrc
chmod 600 ~/.netrc

Kemudian Anda dapat menambahkan nama host, nama pengguna dan kata sandi semua dalam satu baris:

echo 'machine example.com login casper password CasperPassword' >> ~/.netrc

Kemudian ketika Anda melakukannya wget https://example.comdan server merespons 401 Authorization Required, wget akan mencoba lagi dengan nama pengguna dan kata sandi dari ~/.netrcfile tersebut.

Saat menggunakan ini dari cron pastikan Anda memiliki HOMEdirektori yang benar . Seringkali set cron HOME=/(dalam hal ini Anda harus membuat file sebagai /.netrc, tetapi lebih baik untuk menetapkan yang tepat HOMEdi awal skrip Anda, seperti export HOME=/root).

Anda dapat menentukan beberapa host dalam ~/.netrcsatu host per baris. Info lebih lanjut di man netrc.

Paul Tobias
sumber
2
Untuk sintaksis .netrc, lihat manualnya , atau dokumen ikal terkait .
ryenus
Pada awalnya saya terlalu ceroboh untuk melihat man netrcdi OP, bertanya-tanya MENGAPA ini bekerja, kemudian @ryenus komentar Anda menyelamatkan saya, terima kasih ~ Manual selalu diterima: P Lalu saya tahu itu adalah file rc yang digunakan oleh ftp, yaitu, mungkin tidak berfungsi untuk http. Saya akan mencobanya di http nanti.
Akhir pekan