मैं uptime
कमांड की आउटपुट को Bash स्क्रिप्ट में एक csv फाइल में सेव करना चाहूंगा । चूंकि uptime
अंतिम रिबूट के बाद से समय के आधार पर कमांड के अलग-अलग आउटपुट प्रारूप हैं, इसलिए मैं एक बहुत भारी समाधान पर आधारित हूं case
, लेकिन निश्चित रूप से ऐसा करने का एक और अधिक सुरुचिपूर्ण तरीका है।
अपटाइम आउटपुट:
8:58AM up 15:12, 1 user, load averages: 0.01, 0.02, 0.00
वांछित परिणाम:
15:12,1 user,0.00 0.02 0.00,
वर्तमान कोड:
case "`uptime | wc -w | awk '{print $1}'`" in
#Count the number of words in the uptime output
10)
#e.g.: 8:16PM up 2:30, 1 user, load averages: 0.09, 0.05, 0.02
echo -n `uptime | awk '{ print $3 }' | awk '{gsub ( ",","" ) ; print $0 }'`","`uptime | awk '{ print $4,$5 }' | awk '{gsub ( ",","" ) ; print $0 }'`","`uptime | awk '{ print $8,$9,$10 }' | awk '{gsub ( ",","" ) ; print $0 }'`","
;;
12)
#e.g.: 1:41pm up 105 days, 21:46, 2 users, load average: 0.28, 0.28, 0.27
echo -n `uptime | awk '{ print $3,$4,$5 }' | awk '{gsub ( ",","" ) ; print $0 }'`","`uptime | awk '{ print $6,$7 }' | awk '{gsub ( ",","" ) ; print $0 }'`","`uptime | awk '{ print $10,$11,$12 }' | awk '{gsub ( ",","" ) ; print $0 }'`","
;;
13)
#e.g.: 12:55pm up 105 days, 21 hrs, 2 users, load average: 0.26, 0.26, 0.26
echo -n `uptime | awk '{ print $3,$4,$5,$6 }' | awk '{gsub ( ",","" ) ; print $0 }'`","`uptime | awk '{ print $7,$8 }' | awk '{gsub ( ",","" ) ; print $0 }'`","`uptime | awk '{ print $11,$12,$13 }' | awk '{gsub ( ",","" ) ; print $0 }'`","
;;
esac
/sbin/sysctl kern.boottime
और/sbin/sysctl vm.loadavg
धन्यवाद!