คำถามติดแท็ก tail

การรับชมการอัพเดตที่ส่วนท้ายของไฟล์โดยมีหรือไม่มียูทิลิตี tail

6
เก็บ 50 บรรทัดสุดท้ายใน logfile อย่างไร
ฉันพยายามเก็บ 50 บรรทัดสุดท้ายในไฟล์ของฉันที่ฉันบันทึกอุณหภูมิทุกนาที ฉันใช้คำสั่งนี้: tail -n 50 /home/pi/Documents/test > /home/pi/Documents/test แต่ผลลัพธ์คือไฟล์ทดสอบที่ว่างเปล่า ฉันคิดว่ามันจะแสดงไฟล์ทดสอบ 50 บรรทัดสุดท้ายและใส่ลงในไฟล์ทดสอบ เมื่อฉันใช้คำสั่งนี้: tail -n 50 /home/pi/Documents/test > /home/pi/Documents/test2 มันทำงานได้ดี มี 50 บรรทัดในไฟล์ test2 ใครช่วยอธิบายฉันได้ว่ามีปัญหาอยู่ที่ไหน

4
ฉันจะดูไฟล์ทั้งหมดและรอให้มีการเพิ่มข้อมูลเพิ่มเติมลงในไฟล์นั้นได้อย่างไร
ฉันต้องการอ่านไฟล์ทั้งหมดและทำให้รอการป้อนข้อมูลเหมือนtail -f แต่แสดงไฟล์ที่สมบูรณ์ ความยาวของไฟล์นี้จะเปลี่ยนแปลงเสมอเนื่องจากเป็น.logไฟล์ ฉันจะทำอย่างไรถ้าฉันไม่ทราบความยาวของไฟล์

4
ดูเฉพาะรายการใหม่ในไฟล์บันทึกที่กำลังเติบโต
tail -f x.log ฉันใช้คำสั่งนี้เพื่อดูล็อกไฟล์ที่กำลังเติบโตในพรอมต์คำสั่ง ฉันกำลังสนใจเฉพาะในการมองเห็นเส้นบันทึกที่เขียนไปยังแฟ้มหลังจากทำงานและไม่สนใจในการบันทึกที่ถูกเขียนไปยังแฟ้มก่อนที่จะทำtail -f tail -fแต่tail -fคำสั่งในการเริ่มต้นใช้เวลา 10 บรรทัดสุดท้ายและแสดงมัน นี้ทำให้ฉันสับสนในบางครั้งถ้าบันทึกเหล่านี้จะถูกสร้างขึ้นใหม่ (หรือ) พวกเขาเป็นบันทึกเก่า? ดังนั้นฉันจะปรับแต่ง tail -f เพื่อส่งออกเฉพาะรายการใหม่ได้อย่างไร
20 logs  tail 

3
เปิดไฟล์ข้อความและปล่อยให้มันอัปเดตตัวเอง
ฉันจะเปิดไฟล์ข้อความและอนุญาตให้อัปเดตตัวเองได้อย่างไร คล้ายกับวิธีการtopทำงาน ฉันต้องการเปิดไฟล์บันทึกและดูมันอัปเดตตัวเองได้ทันที ฉันเพิ่งลอง: $ tail error.log แต่เพิ่งรู้ว่ามันแสดงให้คุณเห็นบรรทัดในล็อกไฟล์ ฉันใช้ RHEL 5.10
20 files  monitoring  tail 

1
แปลงบรรทัดใหม่เป็นตัวคั่น null เมื่อใช้ tail
ฉันจะเปลี่ยนผลลัพธ์จากtailการใช้บรรทัดที่สิ้นสุดด้วย null แทนการขึ้นบรรทัดใหม่ได้อย่างไร คำถามของฉันคล้ายกับคำถามนี้: จะทำอย่างไร "หัว" และ "หาง" บนอินพุตที่มีการคั่นด้วย null ในทุบตี? แต่สิ่งที่ฉันต้องการทำมีดังนี้: tail -f myFile.txt | xargs -i0 myCmd {} "arg1" "arg2" ฉันไม่ได้ใช้findและใช้ไม่ได้-print0 ทั้งหมดนี้เพื่อหลีกเลี่ยงข้อผิดพลาดที่เกิดขึ้นใน xargs: xargs: unmatched double quote; by default quotes are special to xargs unless you use the -0 option

7
`หาง -f` จนกว่าจะเห็นข้อความ
ฉันมีเซิร์ฟเวอร์ CI ที่มีอินเตอร์เฟสบรรทัดคำสั่งที่อนุญาตให้ฉันเริ่มต้นงานจากระยะไกล ( jenkinsเซิร์ฟเวอร์ CI และjenkins-cli.jarเครื่องมือ) หลังจากที่ฉันปิดงานฉันtail -fบันทึก (ขออภัยสำหรับคำสั่งยุ่ง): ssh -t my-jenkins-host.com "tail -f \"/var/lib/jenkins/jobs/$job_name/builds/\`ls -ltr /var/lib/jenkins/jobs/$job_name/builds/ | grep '^l' | tail -n 1|awk '{print \$9}'\`/log\"" หลังจากงานเสร็จสมบูรณ์โดยปกติหลังจากอย่างน้อย 5 นาทีฉันได้รับบรรทัดต่อไปนี้ในผลลัพธ์: Finished: SUCCESS มีวิธีที่ดีในการหยุดบันทึกตามจุดนี้หรือไม่? เช่นจะมีtail_until 'some line' my-file.logคำสั่งหรือไม่? โบนัส:เครดิตพิเศษถ้าคุณสามารถให้คำตอบที่ส่งกลับ 0 เมื่อจับคู่ความสำเร็จได้ 1 เมื่อจับคู่ FAILURE ได้และโซลูชันของคุณทำงานบน mac! (ซึ่งฉันเชื่อว่าเป็น bsd ตาม)
20 logs  tail 


1
วิธีการทำ 'หัว' และ 'หาง' ในอินพุตที่มีการ จำกัด ด้วย null ในทุบตี?
findคำสั่งสามารถส่งออกชื่อของไฟล์เป็นสตริงที่คั่นด้วย null (ถ้า-print0มีให้) และxargsสามารถใช้พวกเขาด้วยการ-0เปิดตัวเลือก แต่ในระหว่างมันเป็นเรื่องยากที่จะจัดการกับคอลเลกชันของไฟล์ - sortคำสั่งมี-zสวิทช์ที่ทำให้มันเป็นไปได้ที่จะจัดเรียงไฟล์เหล่านั้น แต่headและtailไม่ได้พวกเขา ฉันจะทำheadและtailป้อนข้อมูลด้วยตัวคั่นที่ไม่มีค่าในวิธีที่สะดวกได้อย่างไร (ฉันสามารถสร้างสคริปต์ทับทิมสั้นและช้าได้เสมอ แต่ฉันหวังว่าอาจมีวิธีที่ดีกว่า)

6
คุณจะเก็บเฉพาะไฟล์ n บรรทัดสุดท้ายของไฟล์บันทึกได้อย่างไร
สคริปต์ที่ฉันเขียนทำบางสิ่งและท้ายที่สุดจะผนวกบางบรรทัดเข้ากับล็อกไฟล์ของตัวเอง ฉันต้องการเก็บเฉพาะไฟล์ n บรรทัดสุดท้าย (พูด, 1,000 บรรทัด) ของล็อกไฟล์ ซึ่งสามารถทำได้ในตอนท้ายของสคริปต์ด้วยวิธีนี้: tail -n 1000 myscript.log > myscript.log.tmp mv -f myscript.log.tmp myscript.log แต่จะมีวิธีที่สะอาดและสง่างามกว่านี้ไหม? อาจสำเร็จด้วยคำสั่งเดียว?

2
การแก้ไขไฟล์ข้อความด้วย Vim ไม่ได้อัพเดต tail -f
ฉันใช้ในการชมการปรับปรุงเกี่ยวกับไฟล์ที่เรียกว่าtail -f a.txta.txt หากฉันอัปเดตไฟล์โดยใช้บางอย่างเช่นls -a >> a.txtในคอนโซลเสมือนที่สองการเปลี่ยนแปลงจะแสดงตามเวลาจริงในไฟล์แรก หากฉันอัพเดตไฟล์โดยใช้ Vim ในคอนโซลเสมือนที่สองการเปลี่ยนแปลงจะไม่แสดงในอันแรก ฉันไม่ได้คาดหวังว่ามันจะกระตุ้นให้มีการอัพเดทในหน้าต่างนั้น - แต่ทำไมการอัพเดทนี้ถึงไม่ได้ว่าเทอร์มินัลกำลังเรียกใช้tail -fคำสั่ง?
17 files  vim  tail 

1
วิธีรับความเร็วการไหลของท่อโดยเฉลี่ย
หากmyfileเพิ่มขึ้นเมื่อเวลาผ่านไปฉันจะได้รับจำนวนบรรทัดต่อวินาทีโดยใช้ tail -f | pv -lr > /dev/null มันให้ความเร็วทันทีไม่ใช่ค่าเฉลี่ย ฉันจะรับความเร็วเฉลี่ยได้อย่างไร (เช่นอินทิกรัลของฟังก์ชั่นความเร็วv(t)ตลอดเวลาการตรวจสอบ)
16 pipe  monitoring  tail  fifo  pv 

2
วิธีการใช้หาง -f พร้อม grep เพื่อแสดงเส้นโดยรอบ
ผมอยากจะเห็นผลลัพธ์ในส่วนlogfile greped โดยโดเมนเดียวเท่านั้น แต่ยังดังต่อไปนี้ทั้งสองสาย ตัวอย่าง: tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de สิ่งนี้แสดงทุกบรรทัดที่มี"mydomain.de"แต่ข้อมูลสำคัญอยู่ในบรรทัดด้านล่างบรรทัดซึ่งมีโดเมนรวมอยู่ด้วย
16 grep  tail 

3
การอ่านอย่างต่อเนื่องจากไปป์ที่มีชื่อ (cat หรือ tail -f)
ฉันได้กำหนดค่าrsyslogให้บันทึกเหตุการณ์การบันทึกบางอย่างไปที่/dev/xconsole: *.*;cron.!=info;mail.!=info |/dev/xconsole /dev/xconsoleเป็นชื่อไปป์ ( fifo) cat /dev/xconsoleถ้าผมต้องการที่จะเห็นสิ่งที่จะถูกบันทึกไว้ที่ฉันสามารถทำได้ ฉันกำลังแปลกใจที่จะเห็นว่าคำสั่งcat /dev/xconsoleไม่เสร็จสมบูรณ์หลังจากที่ได้อ่านไฟล์ tail -fแต่แทนที่จะทำหน้าที่เป็น กล่าวอีกนัยหนึ่งทั้งสองคำสั่งทำงานเหมือนกัน: cat /dev/xconsole tail -f /dev/xconsole ใครช่วยอธิบายหน่อยได้ไหมว่าเพราะอะไร มีความแตกต่างระหว่างสองคนนี้ไหม?
16 pipe  cat  tail  fifo 

1
ทำไมการเปลี่ยนเป็น 'หาง' จึงเปลี่ยนเนื้อหาของบรรทัด
เมื่อฉันดูผลลัพธ์ของ a SELECTด้วย MySQL Workbench มันถูกต้องด้วยหนึ่งเดียว\ max@host 10:13:58: ~$ mysql -h db-master.domain.local -uuser -ppw db -e ' > SELECT > DISTINCT i.filesourceregexp > FROM db.ImportLogFiles i' +------------------------------------------------+ | filesourceregexp | +------------------------------------------------+ | ^[0-9]{8}_1062355673_merge_google_pbn\.csv$ | | ^[0-9]{8}_8026062435_merge_google_pbn\.csv$ | | ^[0-9]{8}_1062355673_store_visits_report\.csv$ | +------------------------------------------------+ max@host 10:14:10: ~$ mysql -h db-master.domain.local -uuser -ppw db …
14 pipe  mysql  tail 

2
“ tail -f | iconv -fsjis” ไม่ส่งสัญญาณอะไรเลย
ฉันต้องการtail -fไฟล์ แต่เนื้อหาของมันกำลังอยู่ในการsjisเข้ารหัสดังนั้นฉันจึงต้องแปลงมันเป็นการเข้ารหัสเนทีฟ (utf-8) ของเทอร์มินัลของฉัน เมื่อฉันทำ tail -fx | iconv -fsjis จะไม่มีเอาต์พุต เช่น หาง x | iconv -fsjis ใช้งานได้ในตอนแรกฉันคิดว่ามันเป็นปัญหาบัฟเฟอร์ แต่การลองunbufferและstdbufตามที่อธิบายไว้ในการปิดการบัฟเฟอร์ในไพพ์ไม่ได้ช่วยอะไร ในความเป็นจริงแม้หลังจากเพิ่มข้อมูลมากกว่า 10k ลงใน x แล้วก็จะไม่มีเอาต์พุตดังนั้นฉันเดาว่ามันไม่ใช่ปัญหาบัฟเฟอร์ (บัฟเฟอร์คือ 4k ถ้าฉันไม่เข้าใจผิด) แต่ไอคอนvจะเริ่มแสดงผลเมื่อ มันได้รับ EOF ดังนั้นฉันจะติดตามไฟล์เข้ารหัส sjis ของฉันได้อย่างไร
14 tail  buffer 

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