Contents

วิธีรันโปรแกรมเป็นระยะโดยใช้คำสั่ง Watch บน Linux

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

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

คำสั่ง Watch คืออะไร?

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

ดูไวยากรณ์คำสั่ง

ไวยากรณ์ของคำสั่ง watch คือ:

 watch options <command> 

การใช้คำสั่ง"watch"มีตัวเลือกมากมายสำหรับการกำหนดค่าผ่านพารามิเตอร์บรรทัดคำสั่ง เมื่อดำเนินการโดยไม่มีข้อกำหนดใดๆ คำสั่ง"watch"จะดำเนินการตามที่กำหนดทุกๆ สองวินาทีเพื่อแสดงตัวอย่าง ส่วนจอแสดงผลต่อมาจะแสดงผลลัพธ์ที่ปล่อยออกมาจากคำสั่ง"ls":

 watch ls -l ~/ 

การแสดงการนำเสนอจะแสดงการแก้ไขรายการไดเร็กทอรีในกรณีที่มีการสร้าง การลบ หรือการเปลี่ยนแปลงขนาดของไฟล์ โดยการอัปเดตการแสดงภาพในช่วงเวลาทุกๆ สองวินาที

/th/images/watch-output-of-ls-command.jpg

รันคำสั่งทุกๆ X วินาทีโดยใช้นาฬิกา

คุณมีความยืดหยุ่นในการปรับเปลี่ยนวงจรการรีเฟรชของคำสั่ง watch ซึ่งเท่ากับการระบุระยะเวลาสำหรับคำสั่ง watch ให้คงอยู่เฉยๆ ก่อนที่จะดำเนินการคำสั่งอีกครั้ง ในการปรับช่วงเวลาการรีเฟรช ให้ใช้ตัวเลือก -n พร้อมด้วยช่วงเวลาเป็นวินาทีเป็นพารามิเตอร์

 watch -n

หากต้องการดำเนินการคำสั่งซ้ำๆ ทุกๆ ห้าวินาที คุณสามารถใช้วิธีการต่อไปนี้:

 watch -n 5 <command> 

/th/images/change-update-interval-of-watch-command.jpg

เน้นการเปลี่ยนแปลงระหว่างการอัปเดต

คำสั่ง watch ในการเขียนสคริปต์เชลล์จะปรับเปลี่ยนการแสดงผลในทุกการดำเนินการ การใช้ตัวเลือก -d อาจเน้นความแตกต่างระหว่างเอาต์พุตปัจจุบันและเอาต์พุตก่อนหน้าด้วย

 watch -d 

ซ่อนส่วนหัวในเอาต์พุตของคำสั่ง watch

ลักษณะการทำงานเริ่มต้นของคำสั่ง “watch” คือการแสดงส่วนหัวในแต่ละเอาต์พุตที่มีข้อมูลเกี่ยวกับช่วงเวลาการอัพเดต ชื่อคำสั่ง และวันที่และเวลาปัจจุบันของระบบ หากต้องการละเว้นส่วนหัวนี้จากเอาต์พุต คุณอาจใช้ตัวเลือก"-t"

 watch -t <command> 

เล่นเสียงบี๊บเมื่อมีข้อผิดพลาด

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

วิธีหนึ่งที่เป็นไปได้ในการตรวจสอบสถานะของ sshd.service โดยใช้ systemd และรับการแจ้งเตือนในกรณีที่บริการหยุดชะงักเกี่ยวข้องกับการใช้คำสั่งต่อไปนี้:

 watch -b sudo systemctl status sshd.service 

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

ออกจากคำสั่งนาฬิกาเมื่อเปลี่ยนเอาต์พุต

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

เมื่อแก้ไขเอาต์พุตแล้ว การดำเนินการของคำสั่ง watch จะหยุดลง การดำเนินการนี้อาจใช้ร่วมกับการใช้คำสั่ง echo ได้อย่างมีประสิทธิภาพเพื่อการนำเสนอเนื้อหาภาพบนพื้นผิวจอแสดงผล

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

 watch -g "ls -l | grep filename" && echo "file arrived" 

ตัวอย่างอื่นที่เกี่ยวข้องกับการรับการแจ้งเตือนเมื่อมีบุคคลใดเข้าถึงเครือข่ายของคุณ:

 watch -g "who | grep username" && echo "username logged in" 

คำสั่งปัจจุบันจะดูแลเอาต์พุตที่สร้างโดยคำสั่ง"who"ซึ่งระบุบุคคลที่เชื่อมต่อกับระบบในปัจจุบัน เมื่อผู้ใช้เข้าสู่ระบบ การทำงานของคำสั่ง"watch"จะหยุดและแสดงการแจ้งเตือนภายในอินเทอร์เฟซเทอร์มินัล

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

ดูกิจกรรมในระบบ Linux ของคุณ

การใช้คำสั่ง"watch"อาจเป็นวิธีแก้ปัญหาที่ใช้งานได้จริง หากคุณมักจะทำงานที่เหมือนกันตามลำดับ เมื่อใช้คำสั่งนี้ คุณอาจไม่จำเป็นต้องป้อนคำสั่งอย่างต่อเนื่องเพื่อแยกแยะการแก้ไขใดๆ ที่เกิดขึ้น

สามารถใช้คำสั่ง “watch” ควบคู่ไปกับคำสั่ง Linux ต่างๆ เพื่อดูแลทรัพย์สินและงานของระบบ และตรวจสอบการเปลี่ยนแปลงในไฟล์หรือไดเร็กทอรี