จะแสดงสถานะ WGET เมื่อรันด้วยแฟล็ก -b ในพื้นหลังได้อย่างไร?



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

แม้ว่าจะเป็นไปได้ที่จะเรียกใช้ wget ในพื้นหลังโดยใช้เครื่องหมายและหลังจากออกคำสั่ง แต่โดยทั่วไปแล้วการออกคำสั่งด้วยแฟล็ก -b จะมีประโยชน์มากกว่า ตัวอย่างเช่นสมมติว่าคุณต้องการดาวน์โหลดอิมเมจการติดตั้งซีดี Debian คุณสามารถทำได้ด้วย wget -b http://cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-8.7.1-i386-lxde-CD-1.iso ซึ่งจะทันที แจ้งให้คุณทราบว่ากระบวนการดำเนินการต่อในพื้นหลัง นอกจากนี้ยังให้หมายเลขประจำตัวโปรเซสเซอร์ซึ่งระบุว่ากระบวนการพื้นหลังใดที่รันใน



แม้ว่ากระบวนการ wget ที่ทำงานอยู่เบื้องหลังจะไม่ให้ข้อมูลอื่น ๆ ในแง่นี้ แต่ก็ไม่ได้หมายความว่าคุณจะไม่สามารถแสดงสถานะได้หากต้องการ คุณสามารถเปิดไฟล์บันทึก wget ได้อย่างง่ายดายในโปรแกรมแก้ไขข้อความ โปรแกรมเมอร์ออกแบบกระบวนการนี้ให้ทำงานกับเซิร์ฟเวอร์เหล็กขนาดใหญ่ซึ่งหมายความว่าคุณจะไม่มีตัวเลือกใด ๆ ในการทำให้สิ่งต่างๆสวยงาม จากนั้นอีกครั้งคุณจะไม่ต้องผ่านขั้นตอนพื้นฐานที่ซับซ้อนมากไปกว่าขั้นตอนเดียวเพื่อรับข้อมูลที่คุณต้องการ ทั้งหมดที่เกี่ยวข้องคือการเปิดไฟล์เดียว



กำลังแสดงสถานะการดาวน์โหลดพื้นหลัง wget

สมมติว่าคุณใช้ wget -b แล้วตามด้วยที่อยู่ของทรัพยากรที่คุณกำลังดาวน์โหลด ในขณะที่เราใช้ Debian LXDE ในการติดตั้ง ISO แต่ในทางทฤษฎีคุณสามารถใช้ทรัพยากรได้เกือบทุกชนิดทางออนไลน์ กระบวนการของโปรแกรม wget ไม่สามารถนำไปสู่เบื้องหน้าได้อย่างที่คุณทำได้ด้วยกระบวนการที่คุณใช้เครื่องหมายและเพื่อส่งไปยังพื้นหลัง ในความเป็นจริงถ้าคุณเรียกใช้คำสั่ง jobs ทันทีหลังจากเริ่ม wget ด้วยวิธีนี้คุณจะพบว่าไม่มีกระบวนการพื้นหลังที่ลงทะเบียนกับ bash shell แม้ว่าคุณจะสามารถใช้ kill ตามด้วยรหัสกระบวนการได้หากคุณต้องการหยุดทันที กระบวนการ wget การดำเนินการนี้จะไม่สามารถดาวน์โหลดไฟล์ได้อย่างถูกต้อง



คุณสามารถคลิกที่ไฟล์ที่ดาวน์โหลดมาและดูขนาดไฟล์ที่โตขึ้นในโปรแกรมจัดการไฟล์แบบกราฟิก อย่างไรก็ตาม wget จะสร้างไฟล์บันทึกโดยค่าเริ่มต้นซึ่งจะเขียนออกมาอย่างต่อเนื่อง มันตั้งชื่อ wget-log เหล่านี้จากนั้นจะเริ่มใช้ตัวเลขหากคุณกำลังดาวน์โหลดมากกว่าหนึ่งไฟล์ในลักษณะนี้ไปยังไดเร็กทอรีเดียวกันหรือหากคุณทิ้งไฟล์บันทึกเก่าไว้ ซึ่งจะป้องกันไม่ให้ wget เขียนทับไฟล์บันทึกของตัวเอง คุณสามารถดับเบิลคลิกที่ไฟล์เหล่านี้ในโปรแกรมจัดการไฟล์แบบกราฟิกเพื่อเปิดขึ้นมาหรือคุณอาจใช้คำสั่งน้อยกว่าหรือมากกว่าจากพรอมต์ CLI เพื่อโหลดขึ้นมา สถานะการดาวน์โหลดปัจจุบันจะอยู่ที่บรรทัดสุดท้ายของไฟล์เสมอ



โปรดทราบว่า wget จะเขียนลงในไฟล์เหล่านี้อย่างต่อเนื่องซึ่งหมายความว่าคุณจะต้องเปิดไฟล์เหล่านี้ซ้ำ ๆ ในโปรแกรมจัดการไฟล์แบบกราฟิกหรือออก cat ตัวเดิมซ้ำ ๆ คำสั่งน้อยลงหรือมากกว่าในพรอมต์ CLI เพื่อดูการเปลี่ยนแปลงที่เกี่ยวข้อง คุณสามารถใช้ -o ตามด้วยชื่อไฟล์เมื่อคุณเริ่มคำสั่ง wget เพื่อระบุไฟล์บันทึกที่กำหนดเอง แต่มีผู้ใช้เพียงไม่กี่คนที่ทำเช่นนี้ คุณอาจใช้แฟล็ก -a ตามด้วยชื่อของไฟล์บันทึกเพื่อต่อท้ายข้อความในไฟล์ที่คุณมีอยู่แล้ว อย่าพยายามเรียกใช้กระบวนการพื้นหลังสองกระบวนการต่อท้ายบันทึกเดียวกันเนื่องจากอาจทำให้คุณมีไฟล์ที่เต็มไปด้วยคำพูดพล่อยๆ ซอฟต์แวร์ wget จะพยายามเขียนบรรทัดต่อท้ายจากทั้งสองกระบวนการซึ่งนำไปสู่ข้อมูลที่สลับกันซึ่งยากต่อการอ่าน

แฟล็กใด ๆ เหล่านี้ทำงานร่วมกับแฟล็กอื่นที่คุณอาจใช้เมื่อทำงานกับ wget แต่โปรดทราบว่า wget จะมีค่าเริ่มต้นเป็นแฟล็ก -v เสมอ แฟล็กนี้เปิดใช้งานเอาต์พุตแบบ verbose ซึ่งเป็นสิ่งที่ผู้ใช้ส่วนใหญ่ใช้ การรวมแฟล็ก -b และแฟล็ก -q สำหรับเอาต์พุตที่เงียบสามารถทำให้คุณตกอยู่ในความมืดได้ในเรื่องที่ wget กำลังทำอยู่ในช่วงเวลาใดเวลาหนึ่ง ในทางเทคนิคคุณสามารถรวมแฟล็ก -b และ -d ได้ แต่ทั้งหมดนี้จะเปิดใช้งานเอาต์พุตระดับดีบักซึ่งจะบอกคุณเพิ่มเติมเกี่ยวกับสิ่งที่ซอฟต์แวร์กำลังทำอยู่เบื้องหลัง โดยปกติเอาต์พุตเพิ่มเติมนี้มีประโยชน์สำหรับผู้ที่แก้ไขซอร์สโค้ดของ wget เท่านั้นและผู้ใช้ส่วนใหญ่สามารถหลีกเลี่ยงได้ทั้งหมด แม้แต่โปรแกรมเมอร์ที่ทำงานกับสคริปต์ดาวน์โหลดก็ไม่จำเป็นต้องใช้ข้อมูลนี้และในกรณีส่วนใหญ่ก็จะทำให้เกิดความยุ่งเหยิงโดยไม่จำเป็น

จำไว้ว่าถ้าคุณใช้ wget ในไดเร็กทอรีอื่นที่ไม่ใช่ ~ / Downloads มันจะใส่ไฟล์บันทึกของคุณไว้ที่นั่นด้วย

อ่าน 3 นาที