วิธีรับการประทับเวลาปัจจุบันเมื่อใช้ 'ps' ในสคริปต์ Bash


0

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

แต่ฉันยังต้องการมันเพื่อให้เวลากับฉันไม่ว่าจะpsเกิดขึ้นหรือเมื่อเริ่มกระบวนการ ไม่เป็นไรฉันแค่ต้องการเวลา กระบวนการทั้งหมดใช้เวลาเพียงเสี้ยววินาที

คำสั่งของฉันคือ:

ps -U USERNAME -o rss=MEM,comm=CMD,pid=PID

ฉันพยายามไปเช่น

ps -U USERNAME -o rss=MEM,comm=CMD,pid=PID, start=START

แต่นั่นก็ทำให้ฉันมีเวลาเหมือนhh:mm:ssกัน ฉันต้องการบางสิ่งที่แม่นยำกว่านี้ การประทับเวลาเหมาะอย่างยิ่ง

ฉันควรทำอย่างไร?

คำตอบ:


1

เนื่องจากคุณต้องการเวลาที่แม่นยำกว่าวินาทีคุณสามารถสร้างการประทับเวลาของคุณเองด้วย:

date +%Y%m%d%H%M%s.%N

โปรดทราบว่าวันที่นั้นจะใช้เวลา ~ .001s ในการรัน (ขึ้นอยู่กับระบบ) ดังนั้นนาโนวินาทีอาจไม่ใช่ตัวเลขที่มีนัยสำคัญ

หรือคุณสามารถดู / proc / $ This_PID / stat โดยใช้ stat เพื่อดูเวลาเริ่มต้น / init ที่เราสามารถใช้ได้:

stat -c %x /proc/1/stat

%x   Time of last access
%X   Time of last access as seconds since Epoch
%y   Time of last modification
%Y   Time of last modification as seconds since Epoch
%z   Time of last change
%Z   Time of last change as seconds since Epoch

2012-03-10 12: 18: 45.328784363 +0800

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


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