DELL Server วิธีการอัพเกรด BIOS, Firmware ผ่าน CentOS

คำสั่งสำหรับใช้อัพเดต Fiemware และ BIOS ผ่าน CentOS ของเซิฟเวอร์รุ่น DELL


yum -y install wget perl; wget -q -O - http://linux.dell.com/repo/hardware/dsu/bootstrap.cgi | bash && yum -y install dell-system-update && dsu --inventory && dsu

DirectAdmin แก้ไข Permission โฟเดอร์และไฟล์ของแต่ละ User เป็น 755/644

สำหรับเซิฟเวอร์ที่รันด้วย FastCGI, suPHP หรือ mod_php with mod_ruid2 ก็ตามแต่ การสร้างไฟล์หรือโฟเดอร์ขึ้นมาใช้งานในระบบจะไม่ใช่สิทธิ์ของ Apache อีกต่อไป แต่จะเป็นสิทธิ์ของ User นั้นๆ ทำให้การเข้าถึงไฟล์หรือโฟเดอร์ไม่จำเป็นต้องกำหนดสิทธิ์ให้เป็น 0777 อีกต่อไป สะดวกและใช้งานง่ายขึ้นเยอะ

แต่สำหรับเซิฟเวอร์ที่เพิ่งจะเปลี่ยนมาใช้ระบบแบบนี้ แน่นอนว่าสิทธิ์เก่าที่ User เคยตั้งไว้สำหรับการเข้าถึงในการอ่านเขียนเต็มรูปแบบ ต้องเป็น 0777 อย่างแน่นอน เราจึงควร(ต้อง)เปลี่ยนสิทธิ์ให้ต่ำลง เพื่อความปลอดภัย โดยโฟเดอร์จะใช้เป็น 0755 และไฟล์จะใช้เป็น 0644 นะครับ

คำสั่งเปลี่ยน Permission จาก 0777 และแก้ไขสิทธิ์จาก Apache เป็นสิทธิ์ของ User


cd /usr/local/directadmin/scripts && ./set_permissions.sh user_homes
find /home/*/domains/*/public_html -type d -print0 | xargs -0 chmod 755
find /home/*/domains/*/public_html -type f -print0 | xargs -0 chmod 644
find /home/*/domains/*/public_html -type f -name '*.cgi*' -exec chmod 755 {} \;
find /home/*/domains/*/public_html -type f -name '*.pl*' -exec chmod 755 {} \;
find /home/*/domains/*/public_html -type f -name '*.pm*' -exec chmod 755 {} \;
cd /usr/local/directadmin/data/users && for i in `ls`; do { chown -R $i:$i /home/$i/domains/*/public_html;}; done;

 

วิธีการปิด Firewall ใน CentOS 7

สำหรับ CentOS 7 และ 6 จะมีคำสั่งและการใช้งานค่อนข้างที่จะแตกต่างกันในบางส่วน รวมถึงในส่วนของ Firewall หรือ iptables ด้วยเช่นกัน จากที่ผมลองใช้คำสั่ง service iptables save ไม่สามารถใช้งานได้ซะงั้น

วิธีการปิด Firewall ใน CentOS 7


systemctl stop firewalld
systemctl disable firewalld

ตรวจสอบว่า Firewall ถูกปิดไปหรือยัง


systemctl status firewalld

DirectAdmin CB 2.0 Apache 2.4 ไม่สามารถ Start ได้ [ปัญหา+วิธีแก้ไข]

Apache 2.4 Start ไม่ขึ้น! ปัญหานี้ทำให้ผมปวดหัวอย่างมาก…, เนื่องจาก Apache 2.2 มันไม่มีบัคนี้ และหลังจากอัพมาเป็น Apache 2.4 ก็พบเจออยู่บ่อยๆ ซึ่งมันจะทำการ Restart Apache แล้วก็หายเข้ากรีบเมฆไปเลย ทำให้ไม่สามารถเข้าเว็บไซต์ได้

หมายเหตุ: เหมือนว่าจะเป็นเฉพาะ Apache 2.4 + FastCGI ในระบบ DirectAdmin เท่านั้นนะครับ

แรกๆผมก็ใช้วิธีการรัน Cron เช็คผ่าน URL ด้วยการใช้คำสั่ง PHP Curl เอา, หลังๆมาก็คงมีคนเจอเยอะมั้ง ทาง DirectAdmin เลยบอกวิธีแก้ไขปัญหานี้มา

ถ้า Start Apache ไม่ขึ้น ให้ทำการ Clear sem ก่อน (ไม่รู้เรียกถูกไหม แต่คำสั่งถูกนะครับ)

for i in `ipcs -s | awk '{print $2}'`; do ipcrm -s $i; done

จากนั้นก็ใช้คำสั้ง Apache restart ตามปกติ

service httpd restart

มันก็จะกลับมาทำงานได้ตามปกติของมันครับ, และวิธีการป้องกันไม่ให้มันเกิดขึ้น ให้ใช้คำสั่งนี้ครับ

echo "kernel.msgmni = 1024" >> /etc/sysctl.conf; echo "kernel.sem = 250 256000 32 1024" >> /etc/sysctl.conf; sysctl -p

ถึงกระนั้นก็ตาม…, มันก็ยังดับได้อยู่นะ ตอนแรกก็นึกว่ามันจะไม่ดับอีกแล้ว อะไรทำนองนั้น.. แต่ไม่เลยครับ มันยังดับได้อยู่ วิธีการก็คือ ให้ทำการตั้ง Cron เช็ค (ทุกชั่วโมง) ตามโค๊ดด้านล่างนี้ ไว้ที่ /etc/cron.hourly/ipcs_check นะครับ


#!/bin/sh

EMAIL=your@email.com
MAX_SEMAPHORES=15

IPCS=/usr/bin/ipcs
IPCRM=/usr/bin/ipcrm
MAIL=/bin/mail

COUNT=`${IPCS} | grep apache | wc -l`

if [ "$COUNT" -le $MAX_SEMAPHORES ]; then
       #all is well, there are no semaphore build-ups.
       exit 0;
fi

#we have more than MAX_SEMAPHORES, so clear them out and restart Apache.

LIST=/root/sem.txt

${IPCS} | grep apache | awk '{print $2}' > ${LIST}
for i in `cat ${LIST}`; do
{
       ${IPCRM} -s $i;
};
done;

/etc/init.d/httpd restart

TXT="${COUNT} semaphores cleared for apache for `hostname`"
echo "${TXT}" | ${MAIL} -s "${TXT}" ${EMAIL}

exit 1;

คำสั่งนี้จะมาพร้อมกับระบบ Monitor ทางอีเมลล์นะครับ, ให้แก้ไขจาก your@email.com เป็น Email ของคุณ

จากนั้นต่อไป ให้ทำการกำหนดสิทธิ์ให้สามารถใช้งานได้ด้วยคำสั่งนี้ครับ

chmod 755 /etc/cron.hourly/ipcs_check

เท่านี้ก็เป็นอันเสร็จสิ้นครับ

แหล่งอ้างอิง:

วิธีทดสอบความเร็วอินเตอร์เน็ต (Speed Test) ใน Linux

สำหรับระบบปฏิบัติการ Linux ที่ต้องใช้ Command Line ผ่าน SSH หรือโปรแกรมเช่น putty จะไม่มีหน้าจอ GUI ให้เข้าเว็บเบราเซอร์แล้วไปกด Speed Test นะครับ, จะต้องทำผ่านคำสั่ง Command Line อย่างเดียวเลย

วิธีการทดสอบความเร็วอินเตอร์เน็ต สามารถดาวน์โหลดตัวโปรแกรมทดสอบได้จาก speedtest.net หรือใช้คำสั่งด้านล่างนี้ได้เลย


wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py; chmod +x speedtest-cli

จากนั้น หากต้องการทดสอบความเร็ว ก็ให้ใช้แบบนี้ครับ


./speedtest-cli

DirectAdmin วิธีการหา php_flag, php_value ในไฟล์ .htaccess

สำหรับเซิฟเวอร์ที่ใช้งานระบบ PHP Handle ด้วย FastCGI หากเราไปใส่ php_flag หรือ php_value ในไฟล์ .htaccess จะทำให้เกิด Error 500 ขึ้นมาทันที เนื่องจากด้วยตัวระบบมันไม่รองรับการใช้งานคำสั่งนี้นั่นเอง

สำหรับ DirectAdmin เราสามารถใช้คำสั่งต่อไปนี้ในการใส่ Comment ไว้ข้างหน้าคำสั่งนี้ในไฟล์ .htaccess ได้ทั้งระบบ ทุก User เลย


find /home/*/public_html/. -type f -exec sed -i "s/php_value/###php_value/" {} \;
find /home/*/public_html/. -type f -exec sed -i "s/php_flag/###php_flag/" {} \;

เป็นคำสั่ง Linux พื้นฐานนะครับ, ใช้ได้ทุกระบบปฏิบัติการที่เป็น Linux

CentOS คำสั่งหา Inodes ในแต่ละโฟเดอร์

Inodes คืออะไร?

Inodes คือจำนวนไฟล์ 1 ไฟล์ = 1 Inodes ซึ่งในระบบเซิฟเวอร์ จำนวนไฟล์นั้นถือว่าเป็นส่วนสำคัญไม่แพ้ขนาดของไฟล์เลยทีเดียว เพราะว่าถ้าจำนวนไฟล์เยอะๆ จะทำให้ระบบสำรองข้อมูล หรือการเข้าถึงไฟล์ต่างๆช้าไปด้วย แต่ถ้าได้ SSD มาช่วยด้วย ก็จะทำให้เร็วขึ้นได้เลยนะ

คำสั่งหา Inodes ใน path นั้นๆ

echo "Detailed Inode usage for: $(pwd)" ; for d in `find -maxdepth 1 -type d |cut -d\/ -f2 |grep -xv . |sort`; do c=$(find $d |wc -l) ; printf "$c\t\t- $d\n" ; done ; printf "Total: \t\t$(find $(pwd) | wc -l)\n"

CentOS วิธีการดูว่าโฟเดอร์ไหนใช้ Disk Space เท่าไร?

สำหรับวิธีการดูพื้นที่การใช้งานผ่าน Command Line ใน CentOS หรือ Linux ตัวอื่นๆก็ใช้ได้นะครับ

ต้องการดูพื้นที่รวมกันทั้งหมด ใน Path นั้นๆ

du -sh

ต้องการดูแต่ละไฟล์หรือโฟเดอร์ใน Path นั้นๆ

du -sh *

ต้องการดูแต่ละไฟล์หรือโฟเดอร์ใน Path นั้นๆ เรียงจากมากไปหาน้อย

du -sh * | sort -n