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

`time 'เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งสำหรับเรียกใช้โปรแกรมอื่นและสรุปการใช้ทรัพยากร

1
ทำไม `strace 'ไม่แสดงว่ากระบวนการนี้กำลังรออะไรอยู่
อันยิ่งใหญ่straceได้ทำให้ฉันผิดหวัง เป็นไปได้อย่างไร? time fooแสดงให้เห็นว่าfooใช้เวลาหลายวินาทีในการเรียกใช้ ("ของจริง") แต่ใช้เวลา cpu เล็กน้อยทั้งใน userspace ("ผู้ใช้") และในเคอร์เนล ("sys") สำหรับผู้อยากรู้อยากเห็นfooมีการกำหนดไว้ด้านล่าง ดังนั้นจึงใช้เวลาส่วนใหญ่รออย่างอื่นไม่ดำเนินการตามคำสั่งของ CPU โดยปกติแล้วฉันจะเห็นว่ามันกำลังรออยู่strace- นั่นคือสิ่งที่การโทรของระบบถูกปิดกั้นเป็นเวลานาน น่าเสียดายที่วิธีนี้ใช้ไม่ได้ผล strace -ttt -T -C -w fooแสดงการเรียกระบบการประทับเวลาและสรุปเวลา (จริง) ที่ใช้ในการโทรของระบบ แต่กระบวนการนี้แสดงให้เห็นว่าการใช้เวลาเล็กน้อยโดยรวม (จริง) ในการโทรของระบบ foojournalctl -b -u dev-hugepages.mountเป็นจริง ยกเว้นว่าฉันต้องเปลี่ยนอาร์กิวเมนต์สุดท้ายเป็นหน่วย systemd ที่แตกต่างกันในแต่ละครั้งเพื่อทำซ้ำสิ่งนี้ กล่าวอีกนัยหนึ่งความล่าช้าที่ฉันกำลังตรวจสอบเกิดขึ้นในครั้งแรกที่ฉันพยายามรับบันทึกสำหรับหน่วย systemd ใดหน่วยหนึ่ง แก้ไข : หลังจากตอบคำถามหลักผมยังตระหนักถึงเหตุผลที่ผมมีปัญหานี้ซ้ำล่าช้า เวลาที่ใช้ในกระบวนการนี้เป็นปัญหาเฉพาะดูเหมือนว่ามันจะไม่เกิดขึ้นในทุกระบบ https://github.com/systemd/systemd/issues/7963

4
ฉันจะวัดระยะเวลาที่สคริปต์ของฉันใช้ในการรันและรวมไว้ในอีเมลที่สร้างขึ้นได้อย่างไร
ฉันมีสคริปต์ทุบตีง่ายๆที่ทำงานชุดของการตรวจสอบ (กping, nslookupฯลฯ ) แล้วส่งรายงานอีเมลที่มีการส่งออกของข้อมูลว่า ฉันต้องการให้อีเมลรวมข้อมูลว่าต้องใช้เวลานานเท่าใดในการเรียกใช้สคริปต์ทั้งหมด มีวิธีง่าย ๆ ในการรวบรวมข้อมูลหรือไม่

5
แปลง sysuptime ของ linux เป็นรูปแบบวันที่อย่างดี
ฉันต้องการที่จะแสดง/proc/uptimeในรูปแบบที่ดีเป็น: DD:HH:MM:SS /proc/uptime ให้เวลากับระบบเป็นวินาทีมีโซลูชันมาตรฐานที่แปลงวินาทีเป็นรูปแบบนี้หรือไม่?
11 shell  time  uptime 

4
บังคับให้นามแฝงที่ 'เพิ่ม' ให้กับทุกคำสั่ง
เป็นไปได้ไหมที่จะบังคับให้เพิ่มชื่อแทนเวลา (เนื่องจากไม่มีวิธีที่ดีกว่าในการเขียนวลี) ให้กับทุกคำสั่งbash? ตัวอย่างเช่นผมต้องการที่จะมีผู้ใช้เฉพาะที่เมื่อใดก็ตามที่คำสั่งจะดำเนินการก็จะห่อเสมอทั้งที่มีก่อนและหลังหรือdatetime เป็นไปได้และถ้าเป็นเช่นนั้นได้อย่างไร
11 bash  monitoring  alias  date  time 

4
เวลาของระบบ Linux ข้ามไปชั่วขณะ
ฉันเห็นพฤติกรรมแปลก ๆ ของการเปลี่ยนเวลาของระบบในเซิร์ฟเวอร์ (ฮาร์ดแวร์) บางตัว: ใน/var/logs/syslog, วันเวลาที่นำหน้าแต่ละข้อความบันทึกบางครั้งเปลี่ยนเป็นแบบสุ่มและกลับมาเป็นปกติในข้อความถัดไปเช่น: Feb 22 2018 09:09:30 ... Feb 22 2018 09:09:32 ... Jan 13 2610 15:37:42 ... Feb 22 2018 09:09:33 ... Feb 22 2018 09:09:34 ... เช่นในตัวอย่างการเปลี่ยนวันที่อย่างกะทันหันสามารถทำได้ไกลหลายร้อยปี ฉันสามารถยืนยันได้ว่าข้อความบันทึกที่มีการประทับเวลาแปลก ๆ ไม่ได้มาจากกระบวนการเฉพาะ - มันสามารถเกิดขึ้นแบบสุ่มสำหรับทุกคน และระยะเวลาระหว่างการเปลี่ยนแปลงเวลาที่ผิดปกติ 2 ครั้งจะแตกต่างกันไประหว่างสองสามนาทีถึงสองสามชั่วโมง (แต่ฉันสงสัยว่าการเปลี่ยนแปลงเวลาผิดปกติอาจเกิดขึ้นบ่อยครั้ง แต่พวกเขาส่วนใหญ่ไม่ได้เปิดเผยใน syslog นอกจากนี้เนื่องจากมันเกิดขึ้นบนเซิร์ฟเวอร์มากกว่าหนึ่งเครื่องฉันคิดว่ามันไม่ใช่ปัญหาฮาร์ดแวร์ ข้อมูลเพิ่มเติมเกี่ยวกับ severs: เป็นการติดตั้ง openstack ที่มีคอนโทรลเลอร์หนึ่งตัวและโหนดการคำนวณสองสามตัว …
11 logs  timestamps  time 

3
นอนจนกว่าจะถึงเวลาต่อไปตามเวลาที่กำหนด
ฉันต้องการชุดคำสั่งหรือคำสั่งเดียวที่หลับจนกว่าจะเกิดเหตุการณ์ต่อไปของเวลาเฉพาะเช่น "4:00" ฉันจะทำอย่างไร atคำสั่งหรือ cronjob ไม่ได้เป็นตัวเลือกเพราะผมไม่ต้องออกจากสคริปต์ที่ผมในปัจจุบัน กรณีเฉพาะที่ฉันกำลังพูดถึงคือสคริปต์ทำงานในหน้าจอ มันสำคัญมากที่ฉันจะไม่หยุดการทำงานของสคริปต์ด้วยตัวเองเพราะมีตัวแปรสำคัญหลายอย่างที่จำเป็นในบางจุดของสคริปต์ สคริปต์ไม่ควรถูกเรียกใช้งานในเรื่องปกติเสมอไป มันเพียงแค่ต้องดำเนินการในเวลาที่กำหนด มันจะเป็นประโยชน์อย่างมากหากสคริปต์จะต้องสร้างไฟล์ใด ๆ หรืองานอื่น ๆ เช่น cronjobs หรือหน้าจออื่น ๆ นี่เป็นเพียงคำถามของการออกแบบ ฉันเพิ่งมีความคิดที่น่ากลัว: difference=$(($(date -d "4:00" +%s) - $(date +%s))) if [ $difference -lt 0 ] then sleep $((86400 + difference)) else sleep $difference fi คุณมีความคิดที่ดีกว่านี้ไหม? ข้อมูลเพิ่มเติมจะถูกเพิ่มหากมีการร้องขอ!
11 bash  date  time  sleep 

1
“ เวลาของระบบ” คืออะไรเมื่อใช้“ เวลา” ในบรรทัดคำสั่ง
ฉันใช้timeเวลากับPerlสคริปต์บนเทอร์มินัลมาตรฐานใน Ubuntu 14.04 ฉันได้อ่านนั่นreal timeคือเวลานาฬิกาจับเวลา; เวลาที่ฉันเป็นผู้ใช้กำลังดูที่โปรแกรมกำลังทำงานจากฉันเริ่มโปรแกรมจนกว่าจะสิ้นสุดลง แต่ฉันไม่ได้สิ่งที่userหรือsysเวลา หน้าคนที่timeคลุมเครือพูดน้อยที่สุด ในขณะที่มันค่อนข้างชัดเจนว่าrealเวลาแบ่งระหว่างuserและsysไม่ชัดเจนสิ่งที่พวกเขาเป็นตัวแทน ในสคริปต์ของฉันฉันกำลังทำการเปรียบเทียบ [1] C ++ และ Perl เพื่อดูความแตกต่างและฉันต้องการทราบว่าฉันได้รับข้อมูลอะไรจริง ๆ ตัวอย่างผลลัพธ์คือ: real 0m24.198s user 0m23.120s sys 0m1.030s มีคนช่วยอธิบายรายละเอียดเกี่ยวกับรูปแบบเวลาเริ่มต้นให้ผู้ใช้ทราบได้อย่างไร ฉันเป็นสามเณรใน Linux ดังนั้นโปรดอย่าคิดมากเกินไป [1] ที่น่าสนใจในขณะที่ C ++ เป็นวิธีที่เร็วกว่า Perl ในเกณฑ์มาตรฐานของฉันในเรื่องrealเวลา แต่sysเวลาไม่ได้แตกต่างกันมากนักโดย C ++ ใช้sysเวลามากกว่า Perl จริง ๆ นี่คือเหตุผลที่ฉันต้องการรู้ว่าพวกเขาหมายถึงอะไร
10 time 

2
วิธีที่ดีในการเปรียบเทียบเวลา
ฉันต้องตรวจสอบเวลาปัจจุบันและยกเลิกสคริปต์หากไม่ใช่เวลาที่เหมาะสมของวันที่ฉันควรจะรัน นอกจากนี้หากใครก็ตามที่ทำงานมันควรยกเลิก ตัวอย่างเช่น: ฉันต้องการสคริปต์ของฉันให้ทำงานเฉพาะเมื่อเริ่มต้นระหว่าง 22.00 น. ถึง 2.00 น. (หน้าต่าง 4 ชั่วโมง) ขณะนี้ฉันกำลังทำต่อไปนี้ สละเวลากับdate +%k%Mและเปรียบเทียบกับหมายเลขที่เข้ารหัสยาก #!/bin/sh currTime=`date +%k%M` check_time_to_run() { tempTime=$1 if [ $tempTime -gt 200 -a $tempTime -lt 2200 ]; then echo "Time is between 2 AM and 10 PM. Aborting." exit 1 else echo "Time is after 10 …

1
การทำความเข้าใจรูปแบบเวลาที่ผ่านไปของ ps สำหรับกระบวนการที่ใช้เวลานาน
ฉันใช้psคำสั่งเป็นส่วนหนึ่งของแบบฝึกหัดเพื่อระบุกระบวนการที่ทำงานนานกว่าขีด จำกัด ที่กำหนด ฉันใช้แม่แบบต่อไปนี้เพื่อให้ได้เวลาที่ผ่านไปสำหรับคำสั่งกระบวนการทราบ: ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}' ฉันสังเกตเห็นว่ากระบวนการทำงานสั้นค่า etime (เวลาที่ผ่านไป) ใช้รูปแบบminutes:secondsและจากนี้ฉันสามารถกำหนดระยะเวลาที่กระบวนการทำงานได้อย่างง่ายดาย สำหรับกระบวนการที่ใช้เวลานานมาก (วันยาว) ฉันไม่เข้าใจรูปแบบ ฉันมีกระบวนการเซิร์ฟเวอร์ MySQL ที่htopแสดงว่าทำงานเป็นเวลา 126 ชั่วโมง การดำเนินการให้ฉันมีค่าps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'9-03:35:32 ฉันเดาได้ดีที่สุดว่านี่หมายถึงบางสิ่ง 9 …
10 process  time  ps 

5
ฉันจะทำโปรไฟล์เชลล์สคริปต์ได้อย่างไร
ฉันมีหลายโปรแกรมที่ฉันเรียกใช้งานในเชลล์สคริปต์: ./myprogram1 ./myprogram2 ... ฉันรู้ว่าฉันสามารถโปรไฟล์แต่ละโปรแกรมโดยแก้ไขซอร์สโค้ด แต่ฉันต้องการทราบว่ามีวิธีที่ฉันสามารถวัดเวลาทั้งหมดที่ดำเนินการโดยการทำโปรไฟล์สคริปต์เองหรือไม่ มีโปรแกรมจับเวลาที่ฉันสามารถใช้เพื่อวัตถุประสงค์นี้หรือไม่? ถ้าเป็นเช่นนั้นการวัดของมันแม่นยำแค่ไหน?

2
ฉันจะผ่านการ subshell ผ่าน 'time' แบบมีเงื่อนไขได้อย่างไร
timeฉันมีสคริปต์การติดตั้งสำหรับกล่องจรจัดที่ผมใช้ในการวัดขั้นตอนเดียวกับ ตอนนี้ฉันต้องการเปิดหรือปิดใช้งานการวัดเวลาแบบมีเงื่อนไข ตัวอย่างเช่นก่อนหน้านี้บรรทัดจะมีลักษณะดังนี้: time (apt-get update > /tmp/last.log 2>&1) ตอนนี้ฉันคิดว่าฉันสามารถทำสิ่งนี้ได้ง่ายๆ: MEASURE_TIME=true [[ $MEASURE_TIME = true ]] && TIME="time --format=%e" || TIME="" $TIME (apt-get update > /tmp/last.log 2>&1) แต่สิ่งนี้จะไม่ทำงาน: syntax error near unexpected token `apt-get' `$TIME (apt-get update > /tmp/last.log 2>&1)' มีปัญหาอะไรที่นี่
9 bash  shell  quoting  time 

2
ฉันทำนาฬิการะบบของฉันสับสนใน Arch Linux
ฉันติดตั้ง Arch เมื่อสองสามวันก่อน เพิ่งรู้วัน / เวลาถูกปิดโดยวันและหนึ่งชั่วโมง timedatectl set-timeผมเปลี่ยนได้โดยใช้ จากนั้นใช้hwclock --systohcตั้งค่านาฬิกาฮาร์ดแวร์ หลังจากนั้นฉันไม่สามารถป้อนบางไซต์เช่น Gmail เนื่องจากข้อผิดพลาดใบรับรอง https ฉันลองเปลี่ยนเวลาย้อนหลัง แต่ก็ไม่ได้ผล ฉันรีบูทแล้วก็มีปัญหาเพราะพาร์ติชั่นติดตั้งในเวลาที่แตกต่างกันดังนั้นฉันจึงใช้fsck /dev/sdaพาร์ติชันของฉันและฉันก็สามารถบู๊ตได้ ตอนนี้นาฬิกาไม่ใช่ปัญหา แต่ฉันต้องตรวจสอบอีเมลของฉัน ผมใช้ Facebook เพื่อเข้าสู่ระบบ stackexchange ประจบประแจง ช่วยด้วย? นี่คือสิ่งที่หน้าข้อผิดพลาดของ Gmail พูดว่า: ใบรับรองความปลอดภัยของเซิร์ฟเวอร์ยังไม่ถูกต้อง! คุณพยายามเข้าถึง gmail.com แต่เซิร์ฟเวอร์แสดงใบรับรองที่ยังไม่ถูกต้อง ไม่มีข้อมูลที่ใช้ระบุว่าใบรับรองนั้นเชื่อถือได้หรือไม่ Chromium ไม่สามารถรับประกันได้อย่างน่าเชื่อถือว่าคุณกำลังสื่อสารกับ gmail.com และไม่ใช่ผู้โจมตี ขณะนี้นาฬิกาของคอมพิวเตอร์ของคุณถูกตั้งค่าเป็นอังคาร 10 มกราคม, 2012 12:14:47 PM มันดูใช่มั้ย ถ้าไม่คุณควรแก้ไขนาฬิกาของระบบแล้วรีเฟรชหน้านี้ คุณไม่สามารถดำเนินการต่อได้เนื่องจากผู้ให้บริการเว็บไซต์ขอเพิ่มความปลอดภัยสำหรับโดเมนนี้

4
วิธีป้องกัน atd ไม่ให้ทำงานในอดีต?
At daemon เป็นเครื่องมือที่ยอดเยี่ยม! อย่างไรก็ตามหากมีการกำหนดเวลางานไว้เป็นเวลา 8:00 น. และเครื่องจะปิดในเวลานั้นเวลาที่จะทำงานนั้นเมื่อใดก็ตามที่เครื่องถูกบู๊ต สิ่งที่ฉันต้องการจะทำคือหยุดทำงานไม่ได้หากเวลาผ่านไป ฉันค้นหาหน้าคนและออนไลน์ แต่อาจไม่มีคำตอบหรือไม่พบหน้าใดหน้าหนึ่ง ฉันใช้ Arch แต่เท่าที่ฉันรู้นั้นคล้ายกันมากกับการแจกแจง ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!
9 time  scheduling  daemon  at 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.