Score:2

Watch Command Issue, Bash Script Issue or System Issue?

ธง in

ฉันได้เขียนสคริปต์ทุบตีอย่างง่ายชื่อ เขียน 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 ในช่วงเวลานั้นเพื่อดูว่ามีอะไรแปลก ๆ เกิดขึ้นกับระบบในช่วงเวลาดังกล่าวหรือไม่

--- อัปเดต ---

หยุดการรันคำสั่งและล้างไฟล์บันทึกและรันคำสั่งอีกครั้งตั้งแต่เริ่มต้น และตอนนี้วันที่จะถูกบันทึกหนึ่งครั้งต่อนาทีตามที่คาดไว้

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

muru avatar
us flag
คุณกำลัง **ผนวก** (`>>`) เข้ากับบันทึก คุณแน่ใจหรือว่ารายการเหล่านั้นก่อน `09:43:26` ไม่ได้มีมาก่อนที่คุณจะเริ่ม `watch` ไม่มี `09:23` ในตัวอย่าง
Going Bananas avatar
in flag
@muru ขออภัย 09:23 เป็นการพิมพ์ผิดซึ่งควรจะเป็น 09:42 แทน ฉันจะแก้ไขโพสต์เพื่อแก้ไขการพิมพ์ผิด... นอกจากนี้ ฉันได้ลบไฟล์และเรียกใช้ใหม่ตั้งแต่เริ่มต้น และตอนนี้มันเขียนเพียงครั้งเดียวต่อวินาทีตามที่คาดไว้ ดังนั้นอาจเป็นข้อมูลเก่าจาก dodgy ก่อนหน้านี้ สคริปต์ทำงาน แต่ฉันไม่สามารถคิดได้ว่าจะเกิดขึ้นเมื่อใด แต่มันชี้ไปที่ข้อผิดพลาดของผู้ใช้ ฉันจะวิ่งต่อไปอีกระยะหนึ่งเพื่อดูว่าปัญหาเกิดขึ้นอีกหรือไม่ จะเพิ่มรายละเอียดนี้ในโพสต์ด้วย
muru avatar
us flag
เดี๋ยวก่อน มันยังคงบันทึกหนึ่งครั้งต่อ **วินาที** ใช่ไหม ไม่ใช่นาทีละครั้ง?
Going Bananas avatar
in flag
ขอโทษ @muru พิมพ์ผิดอีก ฉันตั้งใจจะเขียนหนึ่งครั้งต่อนาที ฉันจะแก้ไขในโพสต์ ...
FedKad avatar
cn flag
คุณอาจกำลังเรียกใช้สคริปต์หลายสำเนา (อาจอยู่ในพื้นหลังหรือเทอร์มินัลอื่น) ฉันจะทำ `ps -ef | grep my_script_name` และ `kill` เวอร์ชันที่กำลังทำงานอยู่ก่อนที่จะเริ่มเวอร์ชันใหม่
Going Bananas avatar
in flag
@FedonKadifeli ฉันได้ตรวจสอบแล้วว่าเป็นไปได้ในเวลานั้น แต่มีเพียงสคริปต์เดียวที่ทำงานอยู่ นอกจากนี้ หากมี n สคริปต์ทำงานอยู่ แต่ละวันที่เขียนจะปรากฏ n ครั้งพอดี ซึ่งไม่ตรงตามที่เห็นในข้อมูลโค้ดบันทึกที่โพสต์
FedKad avatar
cn flag
การแก้ไข ขออภัย: ฉันจะฆ่ากระบวนการ `watch` ใดๆ ไม่ใช่แค่กระบวนการที่มีชื่อสคริปต์ของคุณ...
FedKad avatar
cn flag
ความเป็นไปได้อีกอย่างคือคุณป้อน '0' แทน '60' ในกรณีดังกล่าว `watch` จะใช้การหน่วงเวลา 0.1 วินาที ซึ่งจะอธิบายว่าทำไมคุณจึงเห็นสิบรายการต่อวินาทีในไฟล์เอาต์พุตของคุณโปรดดูคำสั่ง `history` ของ Bash เพื่อยืนยัน
Going Bananas avatar
in flag
ประเด็นคือบางครั้งมีการเขียนข้อมูลลงไฟล์มากกว่าหนึ่งครั้งต่อนาทีระหว่างการเรียกใช้สคริปต์เดียวกัน

โพสต์คำตอบ

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