Busybox में dmesg के टाइमस्टैम्प को परिवर्तित करना
सर्वर
Published: 2023-02-24

Busybox का dmesg कमांड, टाइमस्टैम्प को परिवर्तित करके दिखाने के लिए -T विकल्प नहीं रखता है, इसलिए मैंने वन-लाइनर का उपयोग करके परिवर्तित करने की कोशिश की।

वन-लाइनर

uptime=$(cut -d. -f1 /proc/uptime); dmesg | while read line; do time=$(echo $line | sed -e 's/^\[ *\([0-9]*\).*$/\1/g');  echo "[$(date -d @$(($(date +%s) - $uptime + $time)))] $(echo $line | cut -d ] -f 2 -)" ; done

संक्षिप्त विवरण

  1. /proc/uptime में सिस्टम के चालू होने के बाद का समय सेकंड में रिकॉर्ड किया जाता है।
  2. dmesg में प्रदर्शित होने वाले टाइमस्टैम्प, सिस्टम के चालू होने के बाद का समय होते हैं।
  3. वर्तमान समय से सिस्टम के चालू होने के बाद के समय को घटाने पर, सिस्टम के चालू होने का समय प्राप्त होता है।
वर्तमान समय - (कुल चालू समय - dmesg का टाइमस्टैम्प) = लॉग का समय