ทั้งสองนิพจน์ดูเหมือนเช้าวันพุธ และมีเพียงหนึ่งเดียวเท่านั้นที่หมายถึงครั้งเดียว 0 10 * * 3 ทำงานเวลา 10:00 ของวันพุธ ส่วน * 10 * * 3 ทำงานทุกนาทีของชั่วโมงที่สิบ คือหกสิบโอกาสในการเริ่มอุโมงค์เดียวกัน หากคำสั่งเป็นตัวเรียกที่ไม่ตรวจว่ามีเซสชันอยู่แล้ว เวอร์ชันที่สองไม่ใช่ข้อผิดพลาดในการตั้งเวลา แต่เป็นลูปที่สร้างเจ้าของที่แข่งขันกัน อ่านฟิลด์นาทีก่อนอ่านสิ่งใดอื่น

ฟิลด์ทั้งห้าคือนาที ชั่วโมง วันที่ เดือน และวันในสัปดาห์ ตามลำดับนั้น และเครื่องหมายดาวในฟิลด์แรกหมายถึงทุกนาที

ฟิลด์นาทีเป็นตัวกำหนดว่าจะทำงานกี่ครั้ง

ตัวเลขนำหน้าคือนาที ดังนั้น 0 10 * * 3 คือ นาทีแรกของชั่วโมงที่สิบของวันพุธ การแทนที่ด้วยเครื่องหมายดาวคงชั่วโมงและวันไว้ แต่ตัดคุณสมบัติครั้งเดียวออก ซึ่งทำให้เกิดการจับคู่หกสิบครั้ง cron ไม่ลบรายการซ้ำ ทุกการจับคู่จะเริ่มคำสั่งอีกครั้ง นี่ไม่ใช่จุดเล็ก ๆ เกี่ยวกับ cron แต่เป็นอรรถศาสตร์ของฟิลด์ และควรอ่านเอกสารอ้างอิงของตัวจัดตารางที่ติดตั้งไว้ เพราะลำดับฟิลด์และคอลัมน์ชื่อผู้ใช้ที่เป็นทางเลือกนั้นต่างกันระหว่าง crontab ของผู้ใช้และของระบบ

ทดสอบด้วยคำสั่งที่ไม่เป็นอันตรายซึ่งบันทึกเวลาของตัวเองเป็นเวลาหนึ่งวัน หนึ่งบรรทัดในบันทึกคือตาราง หกสิบบรรทัดในหนึ่งชั่วโมงคือบทเรียน

การเริ่มครั้งที่สองทำอะไรกับการเริ่มครั้งแรก

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

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

นับฟิลด์ก่อนคำสั่ง

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

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

รอความพร้อม ไม่ใช่รอเวลา

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

หากต้องใช้ MFA แบบโต้ตอบในชั่วโมงนั้น งานสามารถขอความสนใจจากคนได้ แต่ไม่สามารถให้คำตอบได้ ทำเคสนั้นให้ชัดเจนแทนการฝังรหัสผ่านที่ใช้ซ้ำได้หรือพยายามซ้ำไม่สิ้นสุด

สำหรับการเปิดใช้งานครั้งเดียวจริง ๆ ให้ใช้กลไกครั้งเดียวที่รองรับ กฎที่เกิดซ้ำซึ่งต้องจำและลบออกคือการเริ่มซ้ำในอนาคต

บทความที่เกี่ยวข้อง