Tôi đã gặp câu hỏi này khi tôi đang cố gắng để có được đầu ra tốt hơn / đăng nhập từ du -sh $data_path
. Tôi đã sử dụng mẫu "lệnh while, do ngủ" được tìm thấy ở đây, nhưng đã sử dụng một số AWK phức tạp để đưa ra kết quả mà tôi muốn.
while du -sh $data_path; do sleep 1; done | awk '
$1 != size {
size=$1;
path=$2;
time=systime();
seconds=time-prevtime;
if(seconds < 1000000000){
seconds=seconds" seconds"
}else{
seconds=""
}
print size, path, strftime("%m/%d/%Y@%H:%M:%S", time), seconds;
prevtime=time
}'
Tôi thực sự đã làm điều này như một oneliner, đó là lý do tại sao có dấu chấm phẩy. Nhưng để làm cho nó dễ đọc, tôi đã phá vỡ nó. Đầu ra trông như sau:
502G /var/lib/cassandra/dump/ 05/22/2018@04:46:17
503G /var/lib/cassandra/dump/ 05/22/2018@04:46:59 42 seconds
504G /var/lib/cassandra/dump/ 05/22/2018@04:47:57 58 seconds
505G /var/lib/cassandra/dump/ 05/22/2018@04:48:55 58 seconds
506G /var/lib/cassandra/dump/ 05/22/2018@04:49:53 58 seconds
507G /var/lib/cassandra/dump/ 05/22/2018@04:50:50 57 seconds
508G /var/lib/cassandra/dump/ 05/22/2018@04:51:46 56 seconds
509G /var/lib/cassandra/dump/ 05/22/2018@04:52:44 58 seconds
510G /var/lib/cassandra/dump/ 05/22/2018@04:53:41 57 seconds