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

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

3
การตั้งค่าเขตเวลาใน Linux [ปิด]
ฉันตั้งเขตเวลาเพื่อ GMT + 6 บนเครื่อง Linux ของฉันโดยการคัดลอกไฟล์ zoneinfo ไป/etc/localtimeแต่คำสั่งยังคงแสดงเวลาเป็นdate UTCtime-6มีใครสามารถอธิบายพฤติกรรมนี้ให้ฉันได้บ้าง ฉันสมมติว่าdateคำสั่งควรแสดงUTCtime+6เวลา นี่คือขั้นตอนที่ฉันกำลังติดตาม: date Wed Jan 22 17:29:01 IST 2014 date -u Wed Jan 22 11:59:01 UTC 2014 cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime date Wed Jan 22 05:59:21 GMT+6 2014 date -u Wed Jan 22 11:59:01 UTC 2014
157 linux  date  time  timezone 

9
วิธีการวัดเวลาของการดำเนินการของโปรแกรมและเก็บไว้ในตัวแปร
เพื่อค้นหาว่าการดำเนินการบางอย่างภายในสคริปต์ Bash (v4 +) ใช้เวลานานเท่าใดฉันต้องการแยกเอาต์พุตจากtimeคำสั่ง "แยก" และ (ท้ายที่สุด) จับภาพภายในตัวแปร Bash ( let VARNAME=...) ตอนนี้ฉันกำลังใช้time -f '%e' ...(หรือมากกว่าcommand time -f '%e' ...เพราะในตัวของ Bash) แต่เนื่องจากฉันเปลี่ยนเส้นทางเอาต์พุตของคำสั่งที่ดำเนินการไปtimeแล้ว โดยทั่วไปปัญหาที่นี่คือที่จะแยกการส่งออกของtimeจากผลลัพธ์ของคำสั่งประหารชีวิต (s) สิ่งที่ฉันต้องการคือฟังก์ชั่นการนับจำนวนเวลาเป็นวินาที (จำนวนเต็ม) ระหว่างการเริ่มต้นคำสั่งและความสมบูรณ์ มันไม่จำเป็นต้องเป็นtimeคำสั่งหรือในตัวที่เกี่ยวข้อง แก้ไข:เนื่องจากคำตอบที่มีประโยชน์สองคำตอบด้านล่างนี้ฉันต้องการเพิ่มคำอธิบายสองคำ ฉันไม่ต้องการทิ้งเอาต์พุตของคำสั่งที่เรียกใช้แล้ว แต่มันจะไม่สำคัญว่ามันจะจบลงด้วย stdout หรือ stderr ฉันต้องการวิธีการโดยตรงมากกว่าหนึ่งทางอ้อม (เช่นการจับเอาท์พุทโดยตรงแทนที่จะเก็บไว้ในไฟล์ระดับกลาง) การแก้ปัญหาโดยใช้dateมาไกลถึงสิ่งที่ฉันต้องการ

2
หน่วยเวลาใดที่ใช้คำว่า "top"
หากฉันออกคำสั่ง "top" และรับผลลัพธ์เช่น: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 00001 bob 25 0 77380 1212 1200 R 95.8 0.0 89122:13 fee 00002 bob 25 0 77380 1196 1184 R 95.4 0.0 88954:14 fi 00003 sam 18 0 427m 16m 6308 R 30.0 0.1 54:46.43 …
59 man  time  top 

6
เหตุใด scp จึงช้าและทำให้เร็วขึ้นได้อย่างไร
ฉันพยายามที่จะคัดลอกชุดของไฟล์ด้วยscpแต่มันช้ามาก นี่คือตัวอย่างที่มี 10 ไฟล์: $ time scp cap_* user@host:~/dir cap_20151023T113018_704979707.png 100% 413KB 413.2KB/s 00:00 cap_20151023T113019_999990226.png 100% 413KB 412.6KB/s 00:00 cap_20151023T113020_649251955.png 100% 417KB 416.8KB/s 00:00 cap_20151023T113021_284028464.png 100% 417KB 416.8KB/s 00:00 cap_20151023T113021_927950468.png 100% 413KB 413.0KB/s 00:00 cap_20151023T113022_567641507.png 100% 413KB 413.1KB/s 00:00 cap_20151023T113023_203534753.png 100% 414KB 413.5KB/s 00:00 cap_20151023T113023_855350640.png 100% 412KB 411.7KB/s 00:00 cap_20151023T113024_496387641.png …
59 scp  time  batch-jobs 


1
เรียกใช้คำสั่งสำหรับเวลาที่ระบุและยกเลิกหากเวลาเกิน
ฉันต้องการทราบว่าฉันสามารถเรียกใช้คำสั่งตามเวลาที่ระบุหนึ่งนาทีได้อย่างไรและหากการดำเนินการไม่เสร็จสมบูรณ์ฉันควรหยุดมันได้
47 linux  time  timeout 

2
ทำไมเวลาจริงถึงต่ำกว่าเวลาของผู้ใช้
timeฉันมีสคริปต์การแปลงไฟล์วิดีโอและฉันใช้มันที่เซิร์ฟเวอร์จากข้อมูลการทดสอบและการวัดเวลาของตนโดย ในผลที่ฉันเห็น: real 2m48.326s user 6m57.498s sys 0m3.120s เหตุใดเวลาจริงจึงต่ำกว่าเวลาของผู้ใช้มาก สิ่งนี้มีการเชื่อมต่อกับมัลติเธรดหรือไม่? หรืออะไรอีก แก้ไข:และฉันคิดว่าสคริปต์ทำงานประมาณ 2m48s
31 time 

1
เหตุใดไฟล์ echo> ใช้เวลาจริงมากกว่า echo | sed> file?
ตัวอย่างด้านล่างทำให้ฉันประหลาดใจ ดูเหมือนว่าจะตอบโต้ได้ง่าย ... นอกเหนือจากความจริงที่ว่ามีเวลาผู้ใช้มากขึ้นสำหรับecho | sedคอมโบ เหตุใดจึงechoใช้เวลามากเมื่อทำงานเพียงอย่างเดียวหรือคำถามควรsedเปลี่ยนสถานะการเล่นอย่างไร ดูเหมือนว่าechoจะต้องทำเสียงสะท้อนที่เหมือนกันในทั้งสองกรณี ... time echo -n a\ {1..1000000}\ c$'\n' >file # real 0m9.481s # user 0m5.304s # sys 0m4.172s time echo -n a\ {1..1000000}\ c$'\n' |sed s/^\ // >file # real 0m5.955s # user 0m5.488s # sys 0m1.580s
28 bash  shell  pipe  time  echo 

1
ทำไม "ls *" ใช้เวลานานกว่า "ls" มาก?
ฉันมีไฟล์สองสามไฟล์ในไดเรกทอรี: $ ls | wc -l 9376 ใครช่วยอธิบายได้ว่าทำไมถึงมีความแตกต่างครั้งใหญ่ในการใช้งานls *และls? $ time ls > /dev/null real 0m0.118s user 0m0.106s sys 0m0.011s และ $ time ls * > /dev/null real 1m32.602s user 0m0.233s sys 0m0.438s ตกลงนี่เป็นตัวอย่างที่รุนแรงและอาจได้รับการปรับปรุงเนื่องจากไดเรกทอรีอยู่ในระบบไฟล์แบบขนานทั่วไป (GPFS) แต่ฉันยังสามารถเห็นการชะลอตัวที่สำคัญในระบบไฟล์ท้องถิ่น แก้ไข: $ time ls -l > /dev/null real 0m58.772s user 0m0.113s sys 0m0.452s $ …

3
ฉันจะจับเวลาท่อได้อย่างไร
ฉันต้องการtimeคำสั่งที่ประกอบด้วยคำสั่งสองคำสั่งแยกกันโดยมีหนึ่ง piping output ไปยังอีกคำสั่งหนึ่ง ตัวอย่างเช่นพิจารณาสองสคริปต์ด้านล่าง: $ cat foo.sh #!/bin/sh sleep 4 $ cat bar.sh #!/bin/sh sleep 2 ตอนนี้ฉันtimeจะรายงานเวลาที่ใช้ไปได้อย่างไรfoo.sh | bar.sh(และใช่ฉันรู้แล้วว่าไพพ์ไม่มีความหมายที่นี่ แต่นี่เป็นเพียงตัวอย่าง) มันทำงานได้อย่างที่คาดไว้ถ้าฉันใช้มันต่อเนื่องใน subshell โดยไม่ต้อง piping: $ time ( foo.sh; bar.sh ) real 0m6.020s user 0m0.010s sys 0m0.003s แต่ฉันไม่สามารถทำให้มันทำงานได้เมื่อ piping: $ time ( foo.sh | bar.sh ) real 0m4.009s user 0m0.007s …
27 bash  shell  pipe  time 

2
วันที่ใน Linux ทุบตี [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันพยายามที่จะแสดงเวลาวันที่ในรูปแบบของ 07/08/2013 16:52:13 โดยใช้คำสั่งในสคริปต์ทุบตี: dt=`date '+%d/%m/%Y_%H:%M:%S'` ตัวแปรใดที่ใช้เพื่อเติมไฟล์ CSV ถ่านที่ยอมรับเท่านั้นคือ "_" (ขีดล่าง) หรือ "-" ระหว่างวันที่และเวลาเอาต์พุตคือ 8/7 / 2013_16: 52: 13 ฉันจะได้รับช่องว่างระหว่างวันที่และเวลาได้อย่างไร ฉันพยายามทุกอย่าง (หวังว่า) ทุกอย่าง
26 date  time 

9
จะตรวจสอบว่า NTPD อัพเดตเวลาของเครื่องโดยใช้ shell ได้สำเร็จหรือไม่?
ฉันพยายามใช้ NTPD เพื่ออัปเดตเวลาของเครื่อง Linux เป็นเซิร์ฟเวอร์ NTP ที่ระบุ นี่คือสถานการณ์: ทุกครั้งที่เครื่อง Linux เริ่มทำงานฉันต้องการอัปเดตเวลาจากเซิร์ฟเวอร์ NTP และหากไม่ประสบความสำเร็จฉันต้องการลองอีกครั้งทุก 5 นาทีจนสำเร็จ (สูงสุดคือ 2 ชั่วโมง) ฉันค้นหารอบ ๆ และพบว่าฉันควร (?) ใช้ NTPD และใช้คำสั่งบางอย่างเช่น: #ntpdate ntp.server.com (ก่อนเริ่ม NTPD) #ntpd some_options_to_start คำถามคือ: ฉันจะรู้ได้อย่างไรว่าคำสั่งเหล่านี้ได้รับการอัพเดตเวลาสำเร็จหรือไม่? ฉันสามารถตั้งช่วงเวลาให้อัพเดทเวลาจาก ntpd ได้หรือไม่? (หรือฉันต้องใช้สิ่งที่ต้องการsleepและวนกับdo.. while/ forในเปลือก?) โปรดทราบว่าฉันต้องการรันคำสั่งข้างต้นในเชลล์สคริปต์และจะวางเชลล์ในเว็บเซิร์ฟเวอร์ จากนั้นลูกค้า (ที่มีเว็บเบราว์เซอร์เบราว์เซอร์) จะเรียกใช้สคริปต์บนเว็บไซต์ ดังนั้นฉันต้องตรวจสอบว่าการอัปเดตนั้นสำเร็จหรือไม่เพื่อส่งผลลัพธ์ไปยังลูกค้า (ผ่านเว็บ)
21 time  ntpd 

3
เวลา Unix / เวลาเป็นทางการอยู่ที่ไหน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Unix & Linux Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา สิ่งที่ปฏิเสธความรับผิดชอบ: ฉันเพิ่งผ่านรายการของไซต์ StackExchange ประมาณ 20 นาทีพยายามที่จะโพสต์สิ่งนี้ หากคุณรู้จักเว็บไซต์ใดที่เหมาะสมกว่าโปรดย้ายคำถามนี้ไปที่นั่น ฉันโพสต์ที่นี่เพราะเวลายูนิกซ์ทำให้ฉันคิด อย่างที่เรารู้มีเวลายูนิกซ์และมี UTC เวลาของยูนิกซ์เพียงแค่ทำการติ๊กนับวินาที - หนึ่งวินาทีต่อวินาที - ในขณะที่ UTC พยายามเก็บเวลาในรูปแบบที่มนุษย์สามารถอ่านได้ที่เราใช้สอดคล้องกับเฟสของโลกในการหมุน เมื่อต้องการทำเช่นนี้ UTC จะแทรกวินาทีกระโดดเป็นครั้งคราว เนื่องจากเวลามีความสัมพันธ์กับแรงโน้มถ่วงของวัตถุที่มีเวลาสัมผัสกับการเร่งความเร็วชนิดอื่นและความเร็วสัมพัทธ์สิ่งนี้นำไปสู่คำถาม 2 ข้อ ลองมาดูสิ่งที่ง่ายกว่าก่อน: การวัดเวลาของยูนิกซ์อยู่ที่ไหน? ถ้าอลิซและบ๊อบเริ่มเห็นด้วยกับเวลาปัจจุบันคือ 1467932496.42732894722748 เมื่อพวกเขาอยู่ในที่เดียวกัน (หนึ่งในสองถูกกำหนดเป็น 9'192'631'770 รอบของการแผ่รังสีที่สอดคล้องกับการเปลี่ยนแปลงระหว่างสองระดับพลังงานของซีเซียม-133 อะตอมที่พักผ่อนและที่ 0 K) พบกับความขัดแย้งคู่เนื่องจากอลิซอาศัยอยู่ที่ระดับน้ำทะเลและบ๊อบอยู่สูงขึ้นไปบนภูเขาหรืออลิซอาศัยอยู่ที่ขั้วโลกเหนือและบ็อบอาศัยอยู่ที่เส้นศูนย์สูตรพวกเขาจะไม่เห็นด้วยอีกต่อไป ดังนั้นเวลายูนิกซ์จะถูกกำหนดอย่างไร คุณอาจไม่เห็นปัญหากับ UTC …
20 timestamps  time 

1
ทำไมเวลา "ของจริง" ถึงสูงกว่าเวลาที่“ ผู้ใช้” และ“ sys” รวมกันมาก?
ฉันดำเนินการและtimeมีคำสั่งมากมาย (เช่นnslookup) ผ่านSSHและฉันรวบรวมเวลาทั้งหมดที่จำเป็นสำหรับการให้บริการโดยนัยเพื่อให้สมบูรณ์ (เช่นDNS ) ดังนั้นฉันจึงรวบรวมuserและsysเวลาตามrealเวลานับเวลาที่กระบวนการของฉันปิดกั้นซึ่งฉันไม่ต้องการ ... ฉันเดา แต่การทดสอบบางอย่างของฉันมีผลลัพธ์เช่น: real 3m22.033s user 0m0.009s sys 0m0.014s ฉันทำการทดสอบเหล่านี้ในกล่อง linux ที่มีทรัพยากร จำกัด แต่ถึงกระนั้นrealเวลาก็ยังสูง นี่จะบ่งบอกว่ากล่องนั้นยุ่งมากที่ใช้กระบวนการต่าง ๆ หรือไม่? มันยังคงถูกต้องหรือไม่ที่จะเพิ่มขึ้นuserและsysเวลาที่จะรู้ว่าบริการใช้เวลาเท่าไหร่?

1
เพิ่มความแม่นยำ% e ด้วยคำสั่ง / usr / bin / time
เมื่อฉันรันคำสั่ง time ใน shell time ./myappฉันจะได้ผลลัพธ์ดังนี้: real 0m0.668s user 0m0.112s sys 0m0.028s อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่ง\time -f %e ./myappฉันสูญเสียความแม่นยำและฉันได้รับ: 2.01s ถ้าฉันใช้%Eคำสั่งฉันก็จะสูญเสียความแม่นยำไปในทางเดียวกัน ฉันจะเปลี่ยนเพื่อให้มีความแม่นยำมากขึ้นอีกครั้งได้อย่างไร ฉันอ้างอิงงานวิจัยของฉันในคำสั่ง Linux / Unix นี้: เวลาและตามคำถามนี้
19 shell  scripting  time 

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