ওপেনডব্লিউআরটি-তে মানব পঠনযোগ্য ডিমেজ টাইম স্ট্যাম্প


21

সিস্টেম শুরু হওয়ার পর থেকে ডেমসগের আউটপুট দ্বিতীয় + মিলিসেকেন্ডের সংখ্যা দেখায়।

[   10.470000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   14.610000] device eth0 entered promiscuous mode
[   18.750000] cfg80211: Calling CRDA for country: DE
[   18.750000] cfg80211: Regulatory domain changed to country: DE

প্রশ্ন: পঠনযোগ্য ফর্ম্যাটে সেকেন্ডে + মিলিসেকেন্ডগুলিকে কীভাবে রাখবেন?

আমার dmesg:

root@OpenWrt:/tmp# dmesg -h
dmesg: invalid option -- h
BusyBox v1.19.4 (2013-03-14 11:28:31 UTC) multi-call binary.

Usage: dmesg [-c] [-n LEVEL] [-s SIZE]

Print or control the kernel ring buffer

    -c      Clear ring buffer after printing
    -n LEVEL    Set console logging level
    -s SIZE     Buffer size

ইউজার-লিনাক্স ইনস্টল করা সম্ভব হবে না, কারণ খুব বেশি জায়গা নেই:

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    1.1M    956.0K    132.0K  88% /
/dev/root                 2.0M      2.0M         0 100% /rom
tmpfs                    14.3M    688.0K     13.6M   5% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock3            1.1M    956.0K    132.0K  88% /overlay
overlayfs:/overlay        1.1M    956.0K    132.0K  88% /

root@OpenWrt:/tmp# which awk  perl sed bash sh shell tcsh
/usr/bin/awk
/bin/sed
/bin/sh


root@OpenWrt:~# date -h
date: invalid option -- h
BusyBox v1.19.4 (2013-03-14 11:28:31 UTC) multi-call binary.

Usage: date [OPTIONS] [+FMT] [TIME]

Display time (using +FMT), or set time

    [-s,--set] TIME Set time to TIME
    -u,--utc    Work in UTC (don't convert to local time)
    -R,--rfc-2822   Output RFC-2822 compliant date string
    -I[SPEC]    Output ISO-8601 compliant date string
            SPEC='date' (default) for date only,
            'hours', 'minutes', or 'seconds' for date and
            time to the indicated precision
    -r,--reference FILE Display last modification time of FILE
    -d,--date TIME  Display TIME, not 'now'
    -D FMT      Use FMT for -d TIME conversion
    -k      Set Kernel timezone from localtime and exit

'পাঠযোগ্য' বিন্যাস হিসাবে আপনি কী উল্লেখ করেন?
ইউভিভি

আমি আশঙ্কা করছি আপনি সম্ভবত ভাগ্যের বাইরে আছেন। আপনার সিস্টেমে (উদাহরণস্বরূপ লগ কিছু করার জন্য কার্নেল আউটপুট লগ তাহলে /var/log/syslogডেবিয়ান সিস্টেমে, যে লগ পরীক্ষা করুন; এটি একই তথ্য থাকে কিন্তু পাঠযোগ্য টাইমস্ট্যাম্প সঙ্গে হতে পারে।
মার্টিন ভন Wittich

1
মানব পাঠযোগ্য তারিখের সময় স্ট্যাম্প হিসাবে 'পঠনযোগ্য' যেমন আপনি '-টি' আর্গের জন্য ব্যাখ্যা করেছেন।

1
হুম, এটি খুব জটিল হবে কারণ আপনার মনে হয় না যে তারিখের কারসাজির ক্ষমতাগুলির সাথে কোনও কিছুর অ্যাক্সেস আছে। আপনার dateকমান্ড -dপতাকা সমর্থন করে না , তাই না? এবং কোন পাইথন হয় আমিও অনুমান করি? এটি কোনটির awkবাস্তবায়ন? এটা কি GNU awkকমপক্ষে?
টেরডন

1
দুর্দান্ত, যদি আপনার থাকে তবে date -dআমার আপডেট হওয়া উত্তরটি কাজ করা উচিত।
টেরডন

উত্তর:


29

আমি মনে করি আপনি যা খুঁজছেন তা -Tনথিবদ্ধ হিসাবে রয়েছে man dmesg:

-T, --cime

মানব পাঠযোগ্য টাইমস্ট্যাম্পগুলি মুদ্রণ করুন। টাইমস্ট্যাম্প ভুল হতে পারে!

লগগুলির জন্য ব্যবহৃত সময় উত্সটি সিস্টেম সাসপেন্ড / পুনরায় চালু করার পরে আপডেট হয় না।

সুতরাং, উদাহরণস্বরূপ:

[  518.511925] usb 2-1.1: new low-speed USB device number 7 using ehci-pci
[  518.615735] usb 2-1.1: New USB device found, idVendor=1c4f, idProduct=0002
[  518.615742] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  518.615747] usb 2-1.1: Product: USB Keykoard

হয়ে:

[Mon Jan 27 16:22:42 2014] hid-generic 0003:1C4F:0002.0007: input,hidraw0: USB HID v1.10 Keyboard [USB USB Keykoard] on usb-0000:00:1d.0-1.1/input0
[Mon Jan 27 16:22:42 2014] input: USB USB Keykoard as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.1/input/input24
[Mon Jan 27 16:22:42 2014] hid-generic 0003:1C4F:0002.0008: input,hidraw1: USB HID v1.10 Device [USB USB Keykoard] on usb-0000:00:1d.0-1.1/input1

আমি একটি শীতল কৌতুক পাওয়া এখানেsedঅভিব্যক্তি ব্যবহার করেছিলেন ভুল ছিল যখন এক চেয়ে বেশী ছিল যেহেতু এটি ব্যর্থ হবে ]dmesgলাইন। আমি আমার নিজস্ব dmesgআউটপুটে পাওয়া সমস্ত কেসগুলির সাথে এটি কাজ করার জন্য এটি পরিবর্তন করেছি । সুতরাং, এটি আপনার dateপ্রত্যাশার মতো আচরণগুলি ধরে ধরে কাজ করা উচিত :

base=$(cut -d '.' -f1 /proc/uptime); 
seconds=$(date +%s); 
dmesg | sed 's/\]//;s/\[//;s/\([^.]\)\.\([^ ]*\)\(.*\)/\1\n\3/' | 
while read first; do 
  read second; 
  first=`date +"%d/%m/%Y %H:%M:%S" --date="@$(($seconds - $base + $first))"`;
  printf "[%s] %s\n" "$first" "$second"; 
done 

আউটপুট দেখে মনে হচ্ছে:

[27/01/2014 16:14:45] usb 2-1.1: new low-speed USB device number 7 using ehci-pci
[27/01/2014 16:14:45] usb 2-1.1: New USB device found, idVendor=1c4f, idProduct=0002
[27/01/2014 16:14:45] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[27/01/2014 16:14:45] usb 2-1.1: Product: USB Keykoard

আমরা যুক্ত করতে পারি, -Tপতাকাগুলি কেবল তার util-linux-ng-2.20.xচেয়ে বেশি এবং এর জন্য সমর্থন করে , সুতরাং এটি উবুন্টুকে 12.04 এবং তার বেশি সমর্থন করবে সেন্টোস / আরএইচএল 6.3 এবং নিম্নে নয়
রাহুল পাতিল

3
আমি dmesgকয়েক বছর ধরে ব্যবহার করে আসছি এবং আমি এখন এই পতাকাটি সম্পর্কে কেবল শিখেছি। আমাকে কেন কেউ বলেনি? : ডি
মার্টিন ভন উইট্টিচ

1
@ মার্টিনভনউইচিট এখানেও, আমি আজ প্রথমবারের মতো ম্যান পৃষ্ঠাটি পড়েছি :)
টেরডন

দুঃখিত, এটি আগে থেকে বলেনি যে আমি ওপেন রাইটিং ব্যবহার করি।

কেবল রেকর্ডের জন্য: ঠিক যেমনটি রয়েছে dmesg -T, উত্তরের লিপিটি হাইবারনেটে ভুল সময়ও দেখায়।
হাই-এঞ্জেল

4

আপনার সংস্করণটি dmesgস্পষ্টতই পুরোদস্তুর util-linuxনয় তবে এর পরিবর্তে সরবরাহ করা হয়েছে busybox

busyboxবহুসংখ্যক ইউটিলিটির বুনিয়াদি সরবরাহ করে তবে এটি তাদের সমস্ত নিফটি বৈশিষ্ট্য সরবরাহ করে না।

আপনি যদি -Tটেরডনের প্রস্তাবিত পতাকাটি (যথাযথভাবে) ব্যবহার করতে চান তবে আপনার dmesgপ্রদত্ত বাইনারিটি ব্যবহার করতে হবেutil-linux

me@server:/tmp$ busybox sh
BusyBox v1.21.1 (Debian 1:1.21.0-1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/tmp $ dmesg -T
dmesg: invalid option -- 'T'
BusyBox v1.21.1 (Debian 1:1.21.0-1) multi-call binary.

Usage: dmesg [-c] [-n LEVEL] [-s SIZE]

Print or control the kernel ring buffer

    -c      Clear ring buffer after printing
    -n LEVEL    Set console logging level
    -s SIZE     Buffer size

/tmp $ /bin/dmesg -T | tail -5
[Mon Jän 27 13:37:24 2014] hid-generic 0003:046D:C03E.0006: input,hidraw2: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:1d.0-1.8/input0
[Mon Jän 27 15:59:32 2014] NVRM: API mismatch: the client has the version 304.117, but
[Mon Jän 27 15:59:32 2014] NVRM: this kernel module has the version 304.116.  Please
[Mon Jän 27 15:59:32 2014] NVRM: make sure that this kernel module and all NVIDIA driver
[Mon Jän 27 15:59:32 2014] NVRM: components have the same version.
/tmp $
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.