Category: truebleshooting

แก้ PATH ผิดชีวิตก็เปลี่ยน

ขอบคุณพี่หน่อยมากครับที่ช่วยให้ผมได้แก้ปัญหา Server ในรอบ 2 ปีเลยก็ว่าได้
Linux ก็มี PATH
Windows ก็มี PATH

ส่วนใหญ่ตัวแปร PATH จะใช้เก็บไดเร็กทอรี execute file ของพวกโปรแกรมต่างๆ ไว้เพื่อให้เรียกใช้ง่ายได้ง่ายไม่ต้อง /xxx/yyy/zzz ให้ยุ่งยากเสียเวลา แต่ถ้าคุณเพิ่ม PATH ผิดละก็ทำให้งานงอกได้เหมือนกันนะครับ

ตัวอย่างเช่นกรณีวันนี้
ใครสักคนต้องการที่จะติดตั้ง tomcat ไว้ใช้งานบน server แต่ปรากฏว่าเขาได้แก้ไขไฟล์ config บางตัวผิดพลาดทำให้เรียกคำสั่ง ls, cat หรือคำสั่งควบคุม service ต่างๆ ไม่ได้เลย ที่จริงก็ยังเรียกได้แต่ต้องพิมพ์ PATH เต็มๆ เข้าไป
เมื่อได้รับสายจากพี่ชายที่อยู่แดนไกล แล้วพี่เขาบอกว่า น้องกิว server พี่เรียกทำสั่งๆ ต่างไม่ได้เลย ประเด็นแรกที่ผมโฟกัสไปก็คือเจ้า PATH นี่แหละ ต้องมีอะไรผิดปกติแน่ๆ ปัญหามีอยู่อย่างเดียวคือตอนที่พี่แกโทรมาผมนั่งกิน Sukishi อยู่กับภรรยา เบื้องต้นให้พี่เค้าสองสั่งคำสั่งต่างๆ ด้วย path เต็มๆ ก็ยังสามารถสั่งได้ปัญหามาจาก PATH ผิดชัวๆ

หลังจากเช็คบิลตัวเบาๆ ออกจากร้านก็กลับมาเปิด 3g กากๆ remote ไปดู
สิ่งแรกที่ผมทำคือ
/bin/echo $PATH

[root@PDCSERVER ~]# echo $PATH
/opt/tomcat/bin::/root/bin

ดูเสร็จรู้เลย /bin /sbin ไม่รู้หายไปไหนหมดเช็ค .bash_profile .bash_rc ก็ปกติดี
ลอง last กับ history ดูก็พบว่ามีคน remote มาลง tomcat แล้วก็ได้ฝังไฟล์ script.sh ไว้ที่ /etc/profile.d
ลองตามไปเปิดดู

[root@PDCSERVER ~]# /bin/cat /etc/profile.d/script.sh
#!/bin/bash
CATALINA_HOME=/opt/tomcat
PATH=$CATALINA_HOME/bin:$PATHcd
export PATH CATALINA_HOME
export CLASSPATH=.

ผมเดาเอาว่าคนแก้คงต้องการแก้เป็น
[root@PDCSERVER ~]# cat /etc/profile.d/script.sh
#!/bin/bash
CATALINA_HOME=/opt/tomcat
PATH=$CATALINA_HOME/bin::$PATH
export PATH CATALINA_HOME
export CLASSPATH=.

สิ่งที่ทำให้ผิดพลาดคือ : หายไปตัวนึงแล้วก็เผลอกด cd ตามหลัง $PATH
หลังจากลองแก้ดู แล้ว login เข้าไปยัง Server ใหม่ก็ใช้งาน PATH ได้ตามปกติครับ

[root@PDCSERVER ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

PATH กลับมาแล้ว
จบข่าว

ประเด็นที่ผมอยากโฟกัสอีกเรื่องนึงครับสำหรับทำ Troubleshooting คือการหาสาเหตุที่แท้จริงของปัญหาไม่ใช่แก้ปัญหาที่ปลายน้ำ อย่างเช่นกรณีนี้เรื่อง PATH ผิดที่จริงแก้ไขง่ายมากแค่

export PATH=/bin::/sbin::/usr/bin::/usr/sbin::$PATH

จะต้องการให้ชี้ไปไหนก็ใส่ๆ ไปครับแต่มันยังไม่จบแค่นั้น เราควรหาสาเหตุที่แท้จริงว่าทำไมมันจึงเกิดปัญหานั้น อย่างที่ผมเจอดีตรงที่มี keyword tomcat โผล่อยู่ใน PATH ผมเลยพอเดาไว้ว่าน่าจะมาจากมันนี่แหละ แต่มันแอบอยู่ตรงไหนหละ ผมจึง history ไปดูก็พบกับ config /etc/profile.d/script.sh และนี่แหละครับสาเหตุต้นตอของปัญหานี้ แก้ให้ถูกซะจะได้ไม่ต้องมานั่ง export ทุกครั้งที่ login ที่จริงผมคิดไปถึงเรื่อง server โดน hack ด้วยซ้ำแต่ที่ดู last log กับ history ก็ยังไม่ถือว่าเลวร้าย

ขอบคุณที่สนใจอ่าน

Share/Save

Leave a Comment June 3, 2015

วิธีแก้ปัญหา HDMI ของการ์ดจอ ATI ไม่มีเสียงบน Ubuntu (สำหรับ External Monitor)

สวัสดีชาวโลกครับ หลังจากที่ไม่ได้อัพเดทบล็อกประมาณชาติกว่า เพราะตอนนี้กระผมได้เลิกสายงานอาชีพไอที มาประกอบธุรกิจส่วนตัวที่บ้านที่ใต้เสียแล้วครับ วันเวลาผ่านไปอะไรๆ ก็เปลี่ยนตาม แต่มีสิ่งนึงที่ไม่ได้เปลี่ยนไปจากใจผมนั้นก็คือ รักที่จะศึกษาอะไรใหม่ๆ วันนี้ก็เช่นกัน หลังจากที่ Ubuntu เพิ่งปล่อย Release 13.10 มาเมื่อไม่นานนี้ ก็ต้องลองซะหน่อย ไม่งั้นวิชาครั้งสมัยพระเจ้าเหาคงได้เข้าหม้อกันหมด ต้องหาอะไรใหม่ๆ เล่นบ้าง

หลังจากพร่ามบ่นมาเสียนานก็มาเข้าเรื่องของเรากันดีกว่าครับ เรื่องของเรื่องมีอยู่ว่ากระผมติดตั้ง Ubuntu 13.10 ใหม่ และผมก็เพิ่งโหลด Series ฝรั่งมาเรื่องนึง(Prison Break) รู้สึกว่าดูใน Notebook ไม่มันเลยต้องการจะต่อเข้ากับทีวีที่บ้านผ่านพอร์ต HDMI ปัญหามีอยุ่ว่า ต่อได้ภาพขึ้นแต่เสียงไม่ยักมาแฮะ เลยเป็นสาเหตุให้กระผมต้องหาวิธีแก้ ซึ่งรู้สึกว่าปัญหานี้จะเป็นปัญหามาจาก bug ของ kernal เวอร์ชั่น 3.x ทำให้ใน Sound Settings มองไม่เป็น Sound Card ATI/HDMI ลอง Search ไปเจอคำถามและคำตอบจาก forum ฝรั่งได้คำตอบมาว่าต้อง update parameter ของ grub ก็จะใช้งานได้ ผมไม่รอรีรีบทำตามขั้นตอนมีอยู่ว่า

1. ให้เพิ่งบรรทัดนี้เข้าไปใน /etc/default/grub

GRUB_CMDLINE_LINUX=”radeon.audio=1″

2. จากนั้นให้ใช้คำสั่ง

sudo update-grub

3. reboot ครับ หลังจาก Reboot เครื่องเราก็จะมองเห็น Sound Card ATI/HDMI ในเมนู Sound Settings แล้วครับ

เท่านี้ผมก็ดูหนัง ดูซีรีย์ได้สบายแฮแล้วครับ

ขอบคุณข้อมูลดีๆ จาก : http://askubuntu.com/questions/285920/no-sound-through-hdmi-out-13-04

Leave a Comment October 19, 2013

วิธีแก้ปัญหา Login admin บน Joomla 1.5 ไม่ได้

วันนี้ User มาแจ้งว่ามีเว็บไซต์ของสำนักงานในสังกัดซึ่งพัฒนาโดยใช้ Joomla ไม่สามารถล็อกเข้าหน้า admin ได้ จากการทดสอบเข้าหน้า admin ผลปรากฏว่าล็อกอินไม่ได้จริงๆ และไม่มี error อะไรอีกด้วย(ล็อกอินแล้วก็กลับมาให้ล็อกอินใหม่) ตอนแรกผมคิดว่าอาจเป็นปัญหาจากเรื่อง session แต่ถ้าเกิดจาก session จริงเว็บอื่นๆ ก็ไม่ควรจะล็อกอินได้เช่นกัน ดังนั้นผมจึงโฟกัสไปที่ประเด็นอื่น จึงได้ไปเจอกับเว็บไซต์นึงซึ่งมีหลาย Solution มาก แต่หนึ่งในนั้นสามารถแก้ปัญหาให้ผมได้

Suggestion n.3)

  1. Log into phpMyAdmin and navigate to the jos_plugins table.
  2. Look for the “User — Joomla!“.
  3. Ensure that it is published as mine was not (set published to 1 just in case).
  4. [Look for] in row “Authentication — Joomla”
  5. Ensure that it is published as mine was not (set published to 1 just in case)

เขาให้ตรวจสอบใน Database ว่า Table plugins “User — Joomla” และ ”Authentication — Joomla” ตรงฟิวล์ published ต้องมีค่าเป็น 1

ซึ่งของผมมีค่าเป็น 0 ตรง  ”User — Joomla” เข้าไปดูจาก log ของ mysql จึงพบว่ามีการเปลี่ยนแปลงมา 3 วันแล้ว ซึ่ง User อาจเผลอไปกำหนดค่าของ Plugin ทำให้ไม่สามารถล็อกอินหน้า admin ได้

จบครับ

 

แหล่งข้อมูล : http://www.pwrusr.com/web/cannot-login-to-joomla-backend-as-admin (วิธีอื่นๆ)

Leave a Comment February 18, 2013

Shell Script สำหรับเช็ค Status ของ Symantec Security Information Manager

บันทึกกันลืม เรื่องมันมีอยู่ว่า ssim ที่ใช้อยู่ mount nas storage มาใช้แล้วมันเกิด error อยู่บ่อยๆ ผมเลยจำเป็นต้องเขียน shell script เพื่อตรวจสอบว่ามี service ไหนตายบ้างหรือเปล่า ถ้าตายก็ให้มัน restart service ของ ssim ทั้งหมด

ตัวอย่างคำสั่ง status เมื่อมี error นันคือมี column STATUS มี service ที่สถานะเป็น OFF หรือ column EXIT มีบรรทัดที่ไม่เป็น 0 ส่วนใหญ่จะเป็น code 143

[root@logserv ~]# status NAME PID PORT UPTIME MAXUPTIME #START STATUS EXIT sesmanager 23583 0 0d00:24 0d00:24 1 UP 0 sesevents 24705 0 0d00:23 0d00:23 1 UP 0 rxregistry 22933 55550 0d00:25 0d00:25 1 UP 0 simdbmu 29543 10030 0d00:21 0d00:21 1 UP 0 dimserver 24514 55560 0d00:24 0d00:24 1 UP 0 simserver 26829 10010 0d00:22 0d00:22 1 UP 0 icesvc 26956 55562 0d00:22 0d00:22 1 UP 0 assetsvc 24362 55557 0d00:24 0d00:24 1 UP 0 kbsvc 28853 55566 0d00:21 0d00:21 1 UP 0 querysvc 25970 55569 0d00:23 0d00:23 1 UP 0 rulesvc 25224 55559 0d00:23 0d00:23 1 UP 0 configurationsvc 23687 55571 0d00:24 0d00:24 1 UP 0 notificationsvc 25382 55558 0d00:23 0d00:23 1 UP 0 schedulersvc 28272 55561 0d00:21 0d00:21 1 UP 0 ticketsvc 26202 55567 0d00:23 0d00:23 1 UP 0 eventfindersvc 28114 55568 0d00:22 0d00:22 1 UP 0 statsvc 27757 55570 0d00:22 0d00:22 1 UP 0 wsrf 28932 0 0d00:21 0d00:21 1 UP 143 ------------------------------- IBM DB2 (PID 21815 21814 21813 21600 21599 21598) is running. ------------------------------- IBM LDAP (PID 22100) is running. ------------------------------- IBM HTTP Server (PID 22706 22705 22702 22689) is running. ------------------------------- The SSIM Agent (pid 23453) is running. -------------------------------

ตัวอย่าง script

#!/bin/bash STATUSCMD=/usr/sbin/status STATUSFILE=/tmp/ssim-status.tmp $STATUSCMD > $STATUSFILE STATUS0=$(grep 'UP\|OFF' $STATUSFILE | awk '{print $7}' | grep -v 'STATUS\|UP' | uniq) STATUS1=$(grep 'UP\|OFF' $STATUSFILE | awk '{print $8}' | grep -v '0\|EXIT' | uniq) if [ "$STATUS0" == "$STATUS1" ]; then echo "Service Health Normal" else echo "Service not normal will restart all service" /opt/Symantec/simserver/bin/stopservices.sh --all && /opt/Symantec/simserver/bin/startservices.sh --all fi

save script เป็น .sh แล้วเอาไปยัดใส่ crontab ผมตั้งไว้ให้เช็คทุก 30 เป็นอันเสร็จพิธี
หลักการทำงานคือ script จะทำการตรวจสอบว่ามี service ไหนมี status เป็น OFF หรือมี EXIT code ไม่เป็น 0 ถ้า script ตรวจพบ มันก็จะ restart service ใหม่ทั้งหมด

Leave a Comment December 19, 2012

วิธีแก้ปัญหา Ubuntu 12.10 Kernel 3.5.0-18 ไม่เจอ Wireless

ผมใช้ Notebook Dell Inspiron N4010 chip wireless เป็น Broadcom Corporation BCM4313 แล้วเจอปัญหาหลัง Upgrade Kernel เป็น version 3.5.0-18 แล้ว wireless หายก็ไปเจอวิธีแก้ใน
เขาเขียนไว้ว่า

sudo modprobe -r b43 ssb wl sudo apt-get remove bcmwl-kernel-source sudo apt-get install build-essential dkms linux-headers-generic sudo apt-get install bcmwl-kernel-source

ทำตามนี้ wireless ก็กลับมาใช้งานได้เลยครับ
ใครเจอปัญหาอยู่ก็ลองทำตามนี้ดูนะครับ

Leave a Comment November 7, 2012


Recent Entries

Random Posts

Social Network

Tag Cloud

Calendar

June 2017
S M T W T F S
« Jun    
 123
45678910
11121314151617
18192021222324
252627282930  

Twitter: imrgill

RSS LinuxToday

RSS HowToForge

RSS UbuntuClub

RSS Blognone

RSS PowerWindowsBlog

Tag

Categories

Archives

Blogroll