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 "while lệnh, do ngủ" được tìm thấy ở đây, nhưng đã sử dụng một số AWK phức tạp để đưa ra đầu ra 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