ฉันต้องการแสดงเวลาที่ผ่านไปนับตั้งแต่การบูตระบบครั้งล่าสุดโดยใช้uptime
แต่ฉันไม่ต้องการให้แสดงข้อมูลทั้งหมดนั้น ฉันแค่อยากรู้ว่ากี่ชั่วโมงที่ผ่านไปนับตั้งแต่การบูตระบบครั้งล่าสุด (เช่น: 18:17:59)
ฉันต้องการแสดงเวลาที่ผ่านไปนับตั้งแต่การบูตระบบครั้งล่าสุดโดยใช้uptime
แต่ฉันไม่ต้องการให้แสดงข้อมูลทั้งหมดนั้น ฉันแค่อยากรู้ว่ากี่ชั่วโมงที่ผ่านไปนับตั้งแต่การบูตระบบครั้งล่าสุด (เช่น: 18:17:59)
คำตอบ:
ในการทำให้เวลาผ่านไปตั้งแต่การบูตระบบครั้งสุดท้ายในhh:mm:ss
รูปแบบคุณสามารถใช้:
awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
/proc/uptime
ไฟล์หลอกมีตัวเลขสองตัว:
ดังนั้นการใช้awk
คุณสามารถใช้หมายเลขภาคเรียนและแปลงในhh:mm:ss
รูปแบบ
ในการรับสถานะการออนไลน์ในไม่กี่วินาที:
awk '{print $1}' /proc/uptime
ในการรับเวลาทำงานในไม่กี่นาที:
echo $(awk '{print $1}' /proc/uptime) / 60 | bc
ในการรับเวลาทำงานในหน่วยชั่วโมง:
echo $(awk '{print $1}' /proc/uptime) / 3600 | bc
ในการรับความแม่นยำของตัวเลข x คุณสามารถเพิ่ม scale = x เช่นสำหรับ x = 2
echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc
ลองอันนี้:
uptime | awk '{ print $3 }'
uptime
ในความเป็นจริงจะพิมพ์คำที่สามของสายการผลิตโดย
uptime
ดูเหมือนจะไม่มีตัวเลือก แต่ฉันไม่สามารถหาอะไรในเน็ตได้
การดัดแปลงเล็กน้อยเพื่อแสดงวัน:
awk '{print int($1/86400)"days "int($1%86400/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
สิ่งนี้จะจัดรูปแบบผลลัพธ์ของคุณเป็น 2 ศูนย์ภายใน:
awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime