วันศุกร์ที่ 8 เมษายน พ.ศ. 2554

FreeBSD, Linux: คำสั่ง date กับการประยุกต์ใช้งาน ภาคต่อ

จากที่เคยเขียนไว้ที่ http://khamsawat.blogspot.com/2010/08/linux-date.html
วันนี้จะมาต่อภาคสอง โดยจะเพิ่มการแปลงรูปแบบของวันที่ และการใช้งานคำสั่ง date บน FreeBSD ซึ่งมี Syntax ต่างจากบน Linux นิดหน่อย ทั้งนี้จะไม่เขียนถึงการ set วันที่ผ่านคำสั่ง date โดยแนะนำให้ทำการ set ค่าวันและเวลาผ่าน ntpdate จะดีกว่า

หมายเหตุ อาจมีบางส่วนที่ซ้ำกับบทความเดิมนิดหน่อย

ระบบที่ใช้
OS: FreeBSD 8.2 Release amd64
OS: Ubuntu 9.10 i386

- แสดงวันเวลาปัจจุบัน
FreeBSD# date
Fri Apr 8 16:12:51 ICT 2011

komkit@Linux:~$ date
Fri Apr 8 16:13:08 ICT 2011

- แสดงวันเวลาปัจจุบันในรูปแบบของ Epoch Time
FreeBSD# date +%s
1302254637

komkit@Linux:~$ date +%s
1302254649

- แสดงวันที่ปัจจุบันในรูปแบบ YYY-MM-DD
FreeBSD# date +%F
2011-04-08

komkit@Linux:~$ date +%F
2011-04-08

- แสดงวันที่ของเมื่อวานพร้อมเวลาที่ตรงกับเวลานี้
FreeBSD# date -v-1d
Thu Apr 7 16:26:16 ICT 2011

komkit@Linux:~$ date --date="yesterday"
Thu Apr 7 16:26:55 ICT 2011

- แสดงเฉพาะวันที่ของเมื่อวานในรูปแบบ YYYY-MM-DD
FreeBSD# date -v-1d +%F
2011-04-07

komkit@Linux:~$ date --date="yesterday" +%F
2011-04-07

- แสดงเฉพาะวันที่ของ 10 วันที่แล้วในรูปแบบของ YYYY-MM-DD
FreeBSD# date -v-10d +%F
2011-03-29

komkit@Linux:~$ date --date="10 day ago" +%F
2011-03-29

- แสดงเฉพาะวันที่ของพรุ่งนี้ ในรูปแบบของ YYYY-MM-DD
FreeBSD# date -v+1d +%F
2011-04-09

komkit@moccona:~$ date --date="tomorrow" +%F
2011-04-09

- แสดงเฉพาะวันที่ของอีก 12 วันข้างหน้า ในรูปแบบของ YYYY-MM-DD
FreeBSD# date -v+12d +%F
2011-04-20

komkit@Linux:~$ date --date="12 day" +%F
2011-04-20


- การแปลงรูปแบบวันที่จาก Epoch Time เป็นแบบที่อ่านง่าย (กำหนดเวลา epoch คือ 1302254637)
komkit@Linux:~$ date -d @1302254637
Fri Apr 8 16:23:57 ICT 2011

FreeBSD# perl -e "print scalar(localtime(1302254637))"
Fri Apr 8 16:23:57 2011


- การแปลงรูปแบบวันที่จากรูปแบบ YYYY-MM-DD HH:MM:SS ไปเป็น Epoch
komkit@Linux:~$ date +%s -d"2011-04-08 12:34:56"
1302240896

FreeBSD# date -j -f '%Y-%m-%d %H:%M:%S' '2011-04-08 12:34:56' +%s
1302240896





วันศุกร์ที่ 1 เมษายน พ.ศ. 2554

FreeBSD, Linux, Mac OS : ตรวจสอบรายการ Hardware

ถ้าเป็นเป็นบน MS Windows ก็ Device Manager ส่วนการตรวจสอบรายการ Hardware บน Linux, FreeBSD และ Mac OS เบื้องต้นนั้นทำได้ดังนี้

FreeBSD: (ระบบที่ใช้ FreeBSD 7.1)
- แสดงรุ่น CPU
$ sysctl hw.model
hw.model: Intel(R) Xeon(R) CPU E5410 @ 2.33GHz

- แสดงจำนวน CPU Core
$ sysctl hw.ncpu
hw.ncpu: 8

- แสดงขนาดความจุของ RAM
$ sysctl hw.physmem
hw.physmem: 8571633664 (มีหน่วยเป็น Bytes)

สังเกตุว่าจะขึ้นต้นด้วย hw. เหมือนกัน ดังนั้นสามารถใช้คำสั่งเดียวได้เลยคือ

$ sysctl hw. | more

- ดูรายการ Hardware อื่นๆ เช่น VGA Card, Ethernet Card, Raid Controller เป็นต้น

$ pciconf -lv | more

ตัวอย่าง Output บางส่วน

mfi0@pci0:1:0:0: class=0x010400 card=0x1f0c1028 chip=0x00601000 rev=0x04 hdr=0x00
vendor = 'LSI Logic (Was: Symbios Logic, NCR)'
device = 'SAS1078 PCI-X Fusion-MPT SAS'
class = mass storage
subclass = RAID
pcib13@pci0:2:0:0: class=0x060400 card=0x00000000 chip=0x01031166 rev=0xc3 hdr=0x01
vendor = 'ServerWorks (Was: Reliance Computer Corp)'
device = 'BCM5715 Broadcom dual gigabit, pci bridge'
class = bridge
subclass = PCI-PCI
bce1@pci0:3:0:0: class=0x020000 card=0x01b31028 chip=0x164c14e4 rev=0x12 hdr=0x00
vendor = 'Broadcom Corporation'
device = '5708C Broadcom NetXtreme II Gigabit Ethernet Adapter'
class = network
subclass = ethernet
vgapci0@pci0:14:13:0: class=0x030000 card=0x01b31028 chip=0x515e1002 rev=0x02 hdr=0x00
vendor = 'ATI Technologies Inc'
device = 'Radeon ES1000 Radeon ES1000'
class = display
subclass = VGA


Linux: (ระบบที่ใช้ Ubuntu 8.04)

- แสดงรุ่น CPU

komkit@Linux:~$ cat /proc/cpuinfo

ตัวอย่าง Output

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
stepping : 6
cpu MHz : 2327.499
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr dca sse4_1 lahf_lm
bogomips : 4654.99
clflush size : 64
cache_alignment : 64
address sizes : 38 bits physical, 48 bits virtual
power management:


- แสดงขนาดความจุของ RAM


komkit@Linux:~$ free -m
total used free shared buffers cached
Mem: 7994 5253 2741 0 5 5151
-/+ buffers/cache: 96 7898
Swap: 7632 0 7632

หรือ

komkit@Linux:~$ cat /proc/meminfo

MemTotal: 8186400 kB

MemFree: 2806968 kB
...


- ดูรายการ Hardware อื่นๆ เช่น VGA Card, Ethernet Card, Raid Controller เป็นต้น

komkit@Linux:~$ lspci
01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)
07:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
0a:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)
0e:0d.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)

- ดูรายการ Hardware ที่เชื่อมต่อกับ USB
komkit@Linux:~$ lsusb
Bus 005 Device 002: ID 04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Mac OS:
$
system_profiler | more