Tôi đang sử dụng một ps
lệnh như một phần của bài tập để xác định các quá trình chạy dài hơn một ngưỡng nhất định.
Tôi đang sử dụng mẫu sau để có thời gian trôi qua cho lệnh process process:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Tôi nhận thấy với các quy trình chạy ngắn, giá trị etime (thời gian trôi qua) có định dạng minutes:seconds
và từ đó tôi có thể dễ dàng xác định thời gian một quy trình đã chạy.
Đối với các quy trình chạy rất dài (ngày dài), tôi không hiểu định dạng.
Tôi có một quy trình máy chủ MySQL htop
hiển thị như đang chạy trong 126 giờ.
Thi công ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'
cho tôi một giá trị 9-03:35:32
.
Dự đoán tốt nhất của tôi là điều này có nghĩa là 9 cái gì đó, 3 giờ, 35 phút, 32 giây. Tôi không thể tìm ra những gì các đơn vị cho 9.
Quá trình trong câu hỏi đã được chạy 126 giờ, khoảng 5,25 ngày. Điều này cho thấy rằng 9 trong sản lượng trên không đại diện cho ngày. Họ không thể là nửa ngày hoặc (9 * 12) giờ + 3 giờ + 35 phút + 32 giây là ít hơn 5 ngày.
Làm cách nào để diễn giải giá trị thời gian đã trôi qua mà tôi đang thấy đối với các quy trình chạy dài? Những đơn vị đi kèm với 9 trong đầu ra trên?
etimes
thay vì etime
và so sánh kết quả.
ps
hiển thị cái này hay cái khác tùy thuộc vào các tùy chọn bạn vượt qua.