Wget: มีวิธีการส่งชื่อผู้ใช้และรหัสผ่านจากไฟล์หรือไม่?


22

มีวิธีการส่งชื่อผู้ใช้และรหัสผ่านจากไฟล์แทนบรรทัดคำสั่งผ่าน --user และ - รหัสผ่าน?

พื้นหลัง: ฉันต้องการเรียกใช้ wget ผ่าน cron และไม่ต้องการให้ชื่อผู้ใช้ / รหัสผ่านปรากฏในมุมมองกระบวนการ

คำตอบ:


13

ใช้.wgetrcไฟล์ ( คู่มือ GNU ) ที่คุณสามารถตั้งชื่อผู้ใช้และรหัสผ่านสำหรับทั้ง ftp และ http

หากต้องการใช้หนังสือรับรองเดียวกันสำหรับทั้งสองระบุ

user=casper
password=CasperPassword

หรือเป็นรายบุคคล

ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass

2
คู่มือ wget ของ GNU ยังแนะนำให้ใช้-iตัวเลือกและป้อนชื่อผู้ใช้และรหัสผ่านจากอินพุตมาตรฐาน
Richard

ไม่.wgetrcให้ความยืดหยุ่นในการทำงานร่วมกับเซิร์ฟเวอร์มากกว่าหนึ่ง? หากไม่.netrcเป็นทางออกที่ดีกว่าให้ดูคำตอบอื่น ๆจาก tobias.pal
ryenus

เห็นได้ชัดว่าฉันไม่ได้ใช้.netrcไฟล์ แต่มันบันทึกไว้
Mike Renfro

19

ฉันประหลาดใจที่ไม่มีใครพูดถึง.netrcไฟล์ สร้างไฟล์ก่อนหากไม่มีอยู่และตั้งค่าการอนุญาตที่ปลอดภัย:

touch ~/.netrc
chmod 600 ~/.netrc

จากนั้นคุณสามารถเพิ่มชื่อโฮสต์ชื่อผู้ใช้และรหัสผ่านทั้งหมดในบรรทัดเดียว:

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

จากนั้นเมื่อคุณทำwget https://example.comและเซิร์ฟเวอร์ตอบสนองด้วย401 Authorization Requiredwget จะลองอีกครั้งด้วยชื่อผู้ใช้และรหัสผ่านจาก~/.netrcไฟล์

เมื่อใช้สิ่งนี้จาก cron ให้แน่ใจว่าคุณมีHOMEไดเรกทอรีที่ถูกต้อง บ่อยครั้งที่ชุด cron HOME=/(ในกรณีนี้คุณจะต้องสร้างไฟล์เป็น/.netrcแต่จะดีกว่าถ้าตั้งค่าที่เหมาะสมHOMEในตอนต้นของสคริปต์เช่นexport HOME=/root)

คุณสามารถระบุหลายโฮสต์ได้~/.netrcหนึ่งรายการต่อบรรทัด man netrcรายละเอียดเพิ่มเติมใน


2
สำหรับไวยากรณ์ของ.netrcดูของคู่มือหรือเกี่ยวข้องdoc ขด
ryenus

ตอนแรกฉันไม่สนใจที่จะเห็นman netrcใน OP สงสัยว่าทำไมงานนี้แล้ว @ryenus ความคิดเห็นของคุณช่วยฉันขอบคุณ ~ ยินดีต้อนรับด้วยตนเองเสมอ: P จากนั้นฉันรู้ว่ามันเป็นไฟล์ rc ที่ใช้โดยftpนั่นคือมันอาจ ไม่ทำงานสำหรับ http ฉันจะลองใน http ภายหลัง
วันหยุดสุดสัปดาห์

0

ในหลาย ๆ ด้านการม้วนงออาจเป็นทางเลือกที่ดีกว่า Wget ค่อนข้างเก่าเมื่อเวลาผ่านไป

สามารถใช้สวิตช์ -n ของ curl สำหรับงานนี้: http://curl.haxx.se/docs/manpage.html#-n

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.