วิธีเพิ่มบันทึกลงใน crontab ด้วยการประทับเวลา


9

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

0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1  

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


อย่าลืมที่จะหลบหนีตัวละคร "%" ใน crontab ของคุณ! +%d-%m-%y/%H:%M:%Sจะกลายเป็น:+\%d-\%m-\%y/\%H:\%M:\%S
Vylmarion

คำตอบ:



5

วิธีรับการประทับเวลาในไฟล์

หากต้องการเพิ่มการประทับเวลาในไฟล์คุณสามารถdateดูman dateรายละเอียดเพิ่มเติมได้ที่ ตัวอย่างเช่นถ้าคุณใช้ใน terminal คุณจะมีผลลัพธ์เช่น

$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42

เอาต์พุตอยู่ในรูปแบบ dd-mm-yy/hour:min:sec

หากคุณต้องการใส่การประทับเวลาลงในไฟล์ให้ใช้

date +%d-%m-%y/%H:%M:%S > filename

การเปลี่ยนเส้นทาง

หากคุณใช้date +%d-%m-%y/%H:%M:%S > filenameวันที่นั้นจะถูกเก็บไว้ในไฟล์ แต่มันจะถูกเขียนทับทุกครั้งที่คุณใช้คำสั่ง หากต้องการต่อท้ายด้วยไฟล์ที่มีอยู่ให้ใช้

date +%d-%m-%y/%H:%M:%S >> filename

มันจะเพิ่มเอาต์พุตการประมวลผลล่าสุดที่ท้ายไฟล์ที่มีอยู่ของคุณ

สิ่งที่คุณทำในกรณีของคุณ

คุณสามารถเพิ่มบรรทัดต่อไปนี้ในตอนท้ายของคุณ/home/backup.sh,

date +%d-%m-%y/%H:%M:%S

และใช้สิ่งต่อไปนี้ใน crontab

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

ฉันคิดว่าการแก้ไขข้างต้นควรทำสิ่งที่คุณต้องการ


นี่ควรเป็นคำตอบที่ได้รับการยอมรับ
Dominik

1

(บน Debian Jessie) ใช้tsคำสั่งซึ่งเป็นส่วนหนึ่งของmoreutilsแพ็คเกจ เช่น:

0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1  

สิ่งนี้จะเพิ่มเวลาประทับให้กับทุกบรรทัดของเอาต์พุตและบันทึกลงในบันทึกของคุณ


1
ไม่ได้ผลสำหรับฉันฉันใช้ Ubuntu 16.04 ฉันติดตั้งแล้วmoreutils
Hamman Samuel

0

เมื่อคุณรันเชลล์สคริปต์ทำไมไม่เพิ่มบรรทัดเช่น

some ./script    
echo `date -u `
some ./other/script

ในสคริปต์ของคุณเช่น /home/backup.sh

แล้วก็

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

จะต่อท้ายบรรทัดก่อน / หลัง fbackup.log เช่นพฤหัสบดี 14 มิ.ย. 11:10:22 UTC 2018


ไม่echo `date -u`เหมือนกันdata -uใช่ไหม
สตีเฟ่น Rauch

เสียงสะท้อนเพิ่มตัวแบ่งบรรทัด AIUI
pbhj

-2

คุณสามารถต่อท้ายไฟล์โดยใช้สองสิ่งต่อไปนี้ '>'

$ echo "test" >> test.txt
$ echo "test" >> test.txt

$ cat test.txt
test
test

2
สิ่งที่เกี่ยวกับการประทับเวลา
user3004356
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.