มีวิธีการส่งชื่อผู้ใช้และรหัสผ่านจากไฟล์แทนบรรทัดคำสั่งผ่าน --user และ - รหัสผ่าน?
พื้นหลัง: ฉันต้องการเรียกใช้ wget ผ่าน cron และไม่ต้องการให้ชื่อผู้ใช้ / รหัสผ่านปรากฏในมุมมองกระบวนการ
มีวิธีการส่งชื่อผู้ใช้และรหัสผ่านจากไฟล์แทนบรรทัดคำสั่งผ่าน --user และ - รหัสผ่าน?
พื้นหลัง: ฉันต้องการเรียกใช้ wget ผ่าน cron และไม่ต้องการให้ชื่อผู้ใช้ / รหัสผ่านปรากฏในมุมมองกระบวนการ
คำตอบ:
ใช้.wgetrcไฟล์ ( คู่มือ GNU ) ที่คุณสามารถตั้งชื่อผู้ใช้และรหัสผ่านสำหรับทั้ง ftp และ http
หากต้องการใช้หนังสือรับรองเดียวกันสำหรับทั้งสองระบุ
user=casper
password=CasperPassword
หรือเป็นรายบุคคล
ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
.wgetrcให้ความยืดหยุ่นในการทำงานร่วมกับเซิร์ฟเวอร์มากกว่าหนึ่ง? หากไม่.netrcเป็นทางออกที่ดีกว่าให้ดูคำตอบอื่น ๆจาก tobias.pal
.netrcไฟล์ แต่มันบันทึกไว้
ฉันประหลาดใจที่ไม่มีใครพูดถึง.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รายละเอียดเพิ่มเติมใน
man netrcใน OP สงสัยว่าทำไมงานนี้แล้ว @ryenus ความคิดเห็นของคุณช่วยฉันขอบคุณ ~ ยินดีต้อนรับด้วยตนเองเสมอ: P จากนั้นฉันรู้ว่ามันเป็นไฟล์ rc ที่ใช้โดยftpนั่นคือมันอาจ ไม่ทำงานสำหรับ http ฉันจะลองใน http ภายหลัง
ในหลาย ๆ ด้านการม้วนงออาจเป็นทางเลือกที่ดีกว่า Wget ค่อนข้างเก่าเมื่อเวลาผ่านไป
สามารถใช้สวิตช์ -n ของ curl สำหรับงานนี้: http://curl.haxx.se/docs/manpage.html#-n
-iตัวเลือกและป้อนชื่อผู้ใช้และรหัสผ่านจากอินพุตมาตรฐาน