ฉันได้เขียนสคริปต์ทุบตีอย่างง่ายชื่อ เขียน date.sh
ซึ่งเพียงแค่เขียนวันที่ลงในไฟล์:
#!/bin/bash
echo "$(date) Write Done" >> write-date.log
และฉันกำลังเรียกใช้สคริปต์ทุบตีทุก ๆ 60 วินาทีดังนี้:
ดู -n 60 ./write-date.sh
อย่างไรก็ตาม เมื่อฉันรันคำสั่ง เอาต์พุตที่สร้างขึ้นในไฟล์ เขียน date.log
ไฟล์มีผลลัพธ์เหมือนในตัวอย่างที่นี่:
พฤ. 1 ก.ค. 09:42:03 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:03 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:03 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:03 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:03 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:42:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:43:04 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:43:26 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:44:26 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:45:26 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:46:26 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:47:26 BST 2021 เขียน เสร็จสิ้น
พฤ. 1 ก.ค. 09:48:26 BST 2021 เขียน เสร็จสิ้น
อย่างที่เห็น มีหลายครั้งที่วันที่ถูกเขียนลงในไฟล์บันทึกมากกว่าหนึ่งครั้งต่อนาที (เวลา 09:42 และ 09:43 น. ในตัวอย่างข้อมูลนี้) และฉันก็ไม่เข้าใจว่าทำไมสิ่งนี้ถึง... คือ คำสั่งนาฬิกาผิด? สคริปต์ทุบตีตัวเองผิดหรือไม่? มีปัญหานาฬิการะบบอยู่ที่ไหนสักแห่ง?
ระบบปฏิบัติการคือ Ubuntu 20.04 โดยที่ ชื่อ -a
เป็น:
เครื่อง Linux 5.4.0-77-generic #86-Ubuntu SMP พฤ มิ.ย. 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
ฉันควรชี้แจงด้วยว่าสาเหตุของสคริปต์นี้คือฉันมีปัญหาที่ระบบไฟล์รูทของระบบปฏิบัติการเข้าสู่โหมดอ่านอย่างเดียวทุก ๆ สองสามชั่วโมงหรือบางครั้งทุก ๆ สองสามวัน ดังนั้นฉันจึงพยายามหาวันและเวลา เมื่อสิ่งนี้เกิดขึ้นเพื่อที่ฉันจะได้ตรวจสอบในภายหลัง /var/log/syslog
ในช่วงเวลานั้นเพื่อดูว่ามีอะไรแปลก ๆ เกิดขึ้นกับระบบในช่วงเวลาดังกล่าวหรือไม่
--- อัปเดต ---
หยุดการรันคำสั่งและล้างไฟล์บันทึกและรันคำสั่งอีกครั้งตั้งแต่เริ่มต้น และตอนนี้วันที่จะถูกบันทึกหนึ่งครั้งต่อนาทีตามที่คาดไว้
ตามที่ระบุไว้ในความคิดเห็น บันทึกที่ซ้ำกันที่พิมพ์ออกมาอาจมาจากการเรียกใช้สคริปต์หลบๆ ซ่อนๆ ก่อนหน้านี้ (อาจเป็นข้อผิดพลาดของผู้ใช้) แต่ฉันไม่สามารถคิดได้ว่าสิ่งนี้จะเกิดขึ้นได้อย่างไรหรือเมื่อใด จะยังคงทำงานเป็นเวลาหลายชั่วโมง/วัน ดังนั้นจะคอยจับตาดูมัน