Score:0

การเขียนรูปแบบเวลาเฉพาะในไฟล์ข้อความทุกๆ นาทีโดยใช้ Cron

ธง br

ฉันค่อนข้างใหม่กับ Linux ฉันเพิ่งอยากเรียนรู้วิธีทำงานกับ Cron ดังนั้นฉันจึงเขียนบรรทัดต่อไปนี้ไปยังไฟล์ crontab และใช้งานได้:

* * * * * วันที่ >> //home/os/system-date.txt

บรรทัดนี้จะต่อท้ายวันที่และเวลาปัจจุบัน system-date.txt ทุกๆนาที.

เมื่อฉันรันคำสั่งต่อไปนี้ในเทอร์มินัล เวลาจะถูกพิมพ์ในรูปแบบเฉพาะ:

วันที่ +"%H-%M-%S"

ตัวอย่างเช่น 23-59-59 ถูกพิมพ์

แต่เมื่อฉันต้องการทำสิ่งนี้กับ Cron ไม่มีอะไรเขียนในไฟล์ txt เมื่อฉันเขียนบรรทัดต่อไปนี้ใน crontab

* * * * * วันที่ +"%H-%M-%S" >> //home/os/system-date.txt

ไม่มีอะไรเกิดขึ้น. ฉันสงสัยว่าทำไม.

FedKad avatar
cn flag
คุณอาจมีข้อผิดพลาดทางไวยากรณ์ในบรรทัดคำสั่ง ลองเพิ่ม `2>>/home/os/cron.err` ต่อท้ายรายการ crontab เพื่อดูว่าข้อผิดพลาดคืออะไร
Fish_n_Chips avatar
br flag
ขอบคุณ. ฉันทำ แต่ไม่มีไฟล์ cron.err ถูกสร้างขึ้น @Fedonคาดิเฟลี
Score:2
ธง cn

คุณควรหลีกเลี่ยงเปอร์เซ็นต์ (%) ลงชื่อเข้าใช้ของคุณ crontab รายการที่มีเครื่องหมายแบ็กสแลช (\) แบบนี้:

* * * * * วันที่ +"\%H-\%M-\%S" >>/home/os/system-date.txt 2>>/home/os/system-date.err

เครื่องหมายเปอร์เซ็นต์มีความหมายพิเศษใน crontab รายการ: พวกเขาถูกตีความว่าเป็นอักขระขึ้นบรรทัดใหม่ โปรดดูที่ หน้าคนสำหรับ crontab(5):

ฟิลด์ "ที่หก" (ส่วนที่เหลือของบรรทัด) ระบุคำสั่งที่จะรัน ส่วนคำสั่งทั้งหมดของบรรทัด ขึ้นบรรทัดใหม่หรือ % ตัวละครจะถูกดำเนินการโดย /ถัง/sh หรือตามเชลล์ที่ระบุในตัวแปร SHELL ของ crontab ไฟล์. เครื่องหมายเปอร์เซ็นต์ (%) ในคำสั่ง เว้นแต่จะถูก Escape ด้วยแบ็กสแลช (\) จะเปลี่ยนเป็นอักขระขึ้นบรรทัดใหม่ และข้อมูลทั้งหมดหลังจากอักขระตัวแรก % จะถูกส่งไปยังคำสั่งเป็นอินพุตมาตรฐาน ไม่มีวิธีแยกบรรทัดคำสั่งเดียวเป็นหลายบรรทัด เช่น เชลล์ต่อท้าย "\".

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

Score:0
ธง cn

คุณสามารถสร้างไฟล์สคริปต์อย่างง่าย (เช่น addDate.sh) เช่น:

#!/bin/bash
วันที่ +"%H-%M-%S" 2>&1 >> //home/os/system-date.txt

เดอะ 2>&1 เปลี่ยนเส้นทางข้อผิดพลาดไปยังไฟล์เอาต์พุตที่ระบุด้วย

และใน crontab ของคุณให้เรียกใช้ไฟล์สคริปต์นี้

* * * * * /myscripts/addDate.sh

ที่ไหน /myscripts เป็นเส้นทางที่คุณบันทึกไฟล์สคริปต์ของคุณ

โพสต์คำตอบ

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