Recent twitter entries...

  •  

การ yum จากแผ่น cd dvd CentOS

0

Posted on : 15-04-2011 | By : admin | In : CentOS, Linux

ปกติเวลาที่เราต้องการลงโปรแกรมอะไรเพิ่มใน CentOS เราคงคุ้นเคยกับการใช้คำสั่ง yum เช่น

yum install httpd

yum install mysqld

นี่คือในกรณีที่เราสามารถต่อ internet ได้ แต่ในกรณีที่เราไม่สามารถเชื่อมต่อกับ internet ได้ แต่เรามีแผ่น  cd/dvd ของ OS เราก็สามารถใช้คำสั่ง yum ได้เช่นกัน โดยมีขั้นตอนดังนี้

ขั้นที่ 1 ใส่แผ่น cd dvd แล้ว mount ใ้ห้เรียบร้อย

# mount /dev/cdrom /media/cdrom

ขั้นที่ 2 แก้ไขไฟล์ CentOS-Media.repo เพื่อให้สามารถใช้คำสั่ง yum โดยตรงจากแผ่น cd หรือ dvd ได้

# vi /etc/yum.repos.d/CentOS-Media.repo

แก้ไขบรรทัดนี้ให้ ตามนี้

enabled=1

จากนั้น save ไฟล์

ขั้นที่ 3 ใช้คำสั่ง yum

# yum –disablerepo=\* –enablerepo=c5-media install pacakge-name

หรือก็เหมือนกับคำสั่ง yum ทั่วไป สามารถใช้ group install ได้

# yum –disablerepo=\* –enablerepo=c5-media groupinstall ‘Virtualization’

เท่านี้ก็เป็นอันเรียบร้อย

CPAN ตัวรวบรวม library ภาษา Perl

0

Posted on : 27-12-2010 | By : admin | In : CentOS, directadmin, Linux

CPAN เป็นที่รวบรวมมอดูลและไลบรารีต่างๆ ให้ภาษา Perl สามารถใช้ในการติดตั้ง packages ต่างของภาษา Perl ได้อย่างง่ายดาย

CPAN คล้ายกับ PEAR ของ PHP นั่นเอง

การติดตั้ง cpan

ใน CentOS สามารถใช้คำสั่ง

yum install perl-libwww-perl

เพื่อน install ตัว cpan ได้เลย

ตัวอย่างการเข้า shell ของ cpan

[root@serverscripts]# cpan
cpan>

เมื่อต้องการ install package ใดๆ ก็ใช้คำสั่ง

cpan>install Archive::Tar

เมื่อต้องการออกจาก cpan shell ให้ใช้คำสั่ง exit

นอกจากนี้ที่ prompt ของ system สามารถ สั่งงานได้เลยโดยไม่ต้องเข้า shell ของ CPAN เช่น

[root@serverscripts]#cpan install Archive::Tar Digest::SHA IP::Country Razor2 Net::Ident Mail::DKIM

ตัวนี้จะจำเป็นเวลาที่เราต้องการลงโปรแกรมที่ใช้ libraries ต่างๆของ Perl จำนวนมาก เช่น Spamassasin เป็นต้น

ปรับแต่ง kernel รีดพลังให้ Linux

0

Posted on : 22-12-2010 | By : admin | In : CentOS, Linux

โดยปกติแล้วโดย default Linux จะตั้งค่าของ kernel มาให้แล้ว แต่แน่นอนว่าจะเป็นค่ากลางๆ สำหรับ hardware แบบกลางๆ

ถ้าหากเราต้องการรีดพลังให้สูงสุด เราสามารถทำได้ดังนี้
1. แก้ไขไฟล์ /etc/sysctl.conf
ตัวอย่างไฟล์ sysctl แบบที่ปรับแต่งแล้ว
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456
# Disables packet forwarding
net.ipv4.ip_forward=0
# Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Disables IP source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# Disables the magic-sysrq key
kernel.sysrq = 0
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 15
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1200
# Turn off the tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0
# Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_syncookies = 1
# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1
# Increases the size of the socket queue (effectively, q0).
net.ipv4.tcp_max_syn_backlog = 1024

# Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and# sysctl.conf(5) for more details.
# Controls IP packet forwardingnet.ipv4.ip_forward = 0
# Controls source route verificationnet.ipv4.conf.default.rp_filter = 1
# Do not accept source routingnet.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernelkernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename# Useful for debugging multi-threaded applicationskernel.core_uses_pid = 1
# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in byteskernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queuekernel.msgmax = 65536
# Controls the maximum shared segment size, in byteskernel.shmmax = 4294967295
# Controls the maximum number of shared memory segments, in pageskernel.shmall = 268435456
# Disables packet forwardingnet.ipv4.ip_forward=0
# Disables IP source routingnet.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.lo.accept_source_route = 0net.ipv4.conf.eth0.accept_source_route = 0net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verificationnet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.lo.rp_filter = 1net.ipv4.conf.eth0.rp_filter = 1net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptancenet.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.lo.accept_redirects = 0net.ipv4.conf.eth0.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0

# Disables IP source routingnet.ipv4.conf.all.accept_source_route = 0net.ipv4.conf.lo.accept_source_route = 0net.ipv4.conf.eth0.accept_source_route = 0net.ipv4.conf.default.accept_source_route = 0
# Enable IP spoofing protection, turn on source route verificationnet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.lo.rp_filter = 1net.ipv4.conf.eth0.rp_filter = 1net.ipv4.conf.default.rp_filter = 1
# Disable ICMP Redirect Acceptancenet.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.lo.accept_redirects = 0net.ipv4.conf.eth0.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0
# Disables the magic-sysrq keykernel.sysrq = 0
# Decrease the time default value for tcp_fin_timeout connectionnet.ipv4.tcp_fin_timeout = 15
# Decrease the time default value for tcp_keepalive_time connectionnet.ipv4.tcp_keepalive_time = 1200
# Turn off the tcp_window_scalingnet.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sacknet.ipv4.tcp_sack = 0
# Turn off the tcp_timestampsnet.ipv4.tcp_timestamps = 0
net.ipv4.tcp_syncookies = 1
# Enable ignoring broadcasts requestnet.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable bad error message Protectionnet.ipv4.icmp_ignore_bogus_error_responses = 1
# Log Spoofed Packets, Source Routed Packets, Redirect Packetsnet.ipv4.conf.all.log_martians = 1
# Increases the size of the socket queue (effectively, q0).net.ipv4.tcp_max_syn_backlog = 10242.

2. หลังจากนั้นใช้คำสั่ง sysctl -p เพื่อใช้ค่าใหม่โดยไม่ต้อง boot เครื่อง หรือ reboot เครื่องใหม่เลยก็ได้

เทคนิดการลบ file ใน Linux กรณีไฟล์เยอะๆ

0

Posted on : 13-12-2010 | By : admin | In : CentOS, Linux

ในบางครั้ง files ใน directory ของเราอาจจะมีจำนวนมาก จนกระทั่งเมื่อเราต้องการลบโดยคำสั่ง rm -f (ชื่อไฟล์) จะไม่สามารถลบได้ ( error จะขึ้นว่า /bin/rm: Argument list too long )

ให้ใช้คำสั่ง find แทน แล้วตามด้วย argument xargs rm -f ก็จะสามารถลบได้

ตัวอย่างคำสั่ง find . -name spam* | xargs rm -f

อีกเทคนิคนึงที่ผมชอบใช้คือ ในกรณีที่ต้องการลบไฟล์ทั้งหมดใน directory นั้น ก็ลบ directory ทิ้ง แล้วค่อยสร้างขึ้นมาใหม่ก็ได้

การทำ sub-interface บน Linux

0

Posted on : 04-12-2010 | By : admin | In : CentOS, Linux
ในบางครั้งเรามีความต้องการที่จะให้ 1 interface มีหลาย ip เพื่อประโยชน์บางอย่าง เช่น ใช้ Linux เป็น Router , ให้บริการ network หลายๆวง ฯลฯ
กรณีต้องการทำ sub interface ( 1 interface มีหลาย ip ) มีขั้นตอนดังนี้
1. copy file /etc/sysconfig/network-scripts/ifcfg-eth0 ( กรณีเป็น Ethernet 0 ) ไปเป็น /etc/sysconfig/network-scripts/ifcfg-eth0:1
2. ใช้โปรแกรม vi editor แก้ไขไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0:1
3. แก้บรรทัดที่เขียนว่า DEVICE=eth0 เป็น DEVICE=eth0:1
4. แก้ไข ip address และ parameters อื่นๆให้เรียบร้อย
5. Restart network service ด้วยคำสั่ง service network restart
6. ใช้คำสั่ง ifconfig เพื่อเช็คดู interface ที่สร้างขึ้นใหม่

7. ทดลอง ping ไป ที่ ip ของเครื่องในวงเดียวกันกับ sub interface

การแก้ไข ip address บน Linux ( CentOS , Redhat )

0

Posted on : 04-12-2010 | By : admin | In : CentOS, Linux

การแก้ไข ip บนเครื่อง Linux

ทำได้ดังนี้

1. ใช้โปรแกรม Editor เช่น vi editor แก้ไขไฟล์ /etc/sysconfig/network-scripts/ifcfg-eth0 ( กรณีเป็น Ethernet 0 )

change ip address linux vi

2. แก้ไข GATEWAY ได้ที่ไฟล์ /etc/sysconfig/network ( กรณีใส่ GATEWAY ไว้ที่ interface แล้วไม่ต้องใส่อีก )

3. ใช้คำสั่ง service network restart เพื่อ restart ให้ใช้ ip ใหม่

4. ใช้คำสั่ง ifconfig เพื่อดู ว่า ip address ของเราตอนนี้เป็น ip อะไรแล้ว

5. ทดสอบ ping ไปยังเครื่องอื่นในวงเดียวกัน และ default gateway เพื่อทดสอบดูว่าสามารถไปได้ไหม

6. จำไว้ว่า default gateway ต้องเป็น network วงเดียวกันเท่านั้น

7. กรณีแก้ชั่วคราวสามารถใช้คำสั่งนี้ได้

ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up

แต่จำไว้ว่าแบบนี้ ip address จะกลับไปเป็นตาม ip ที่อยู่ใน configure file กรณี boot เครื่องใหม่

rpm คำสั่ง install โปรแกรมใน Linux ตระกูล Redhat

0

Posted on : 26-07-2010 | By : admin | In : CentOS, Linux

ปกติถ้าใครใช้ Linux ในตระกูล Redhat คงจะคุ้นเคยกับคำสั่ง rpm

rpm เป็นคำสั่งในการ install โปรแกรมใน Redhat โดยโปรแกรมจะถูกจัดให้อยู่ในรูปของ packet สามารถดูในแผ่น install ของ Linux ได้จะพบ rpm ของ Software อยู่

รูปแบบของคำสั่ง

ดูว่ามีโปรแกรมอะไรลงอยู่บ้าง

rpm -qa

อาจจะใช้คำสั่ง grep ช่วยเพื่อแสดงแต่ที่ต้องการดู เช่น rpm -qa|grep php

การลงโปรแกรมใหม่ให้ใช้คำสั่งต่อไปนี้

rpm -ivh packagename.rpm

การลบโปรแกรมที่มีอยู่ออกใช้คำสั่งต่อไปนี้

rpm -e packagename

หากต้องการ upgrade โปรแกรมใช้คำสั่งต่อไปนี้

rpm -Uvh packagename.rpm

ถ้า package ที่เราจะลงหรือลบนั้นมีโปรแกรมอื่นใช้งานอยู่ เราจะลงไม่ได้จะขึ้นว่า failed dependencies ให้เราเติม option –nodepts ลงไปในคำสั่ง เช่น

rpm -Uvh –nodepts packagename.rpm

จะเป็นการลงโดยไม่สนใจ package อื่น แต่ต้องระวังให้มากเพราะโปรแกรมที่ link กันอยู่อาจจะทำงานไม่ได้

แก้ไข ip address ใน Linux

0

Posted on : 12-07-2010 | By : admin | In : CentOS, Linux

ใช้ได้ในตระกูล Redhat , CentOS นะครับ โดยเข้าไปที่

/etc/sysconfig/network-scripts/

แก้ไขไฟชื่อ ifcfg-eth0 สำหรับ port ethernet 0

โดยคำสั่ง #vi ifcfg-eth0

แก้ไขบรรทัดที่เขียนว่า IPADDR

DEVICE=eth0
BOOTPROTO=static
HWADDR=00:19:B9:E5:68:82
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.12.203
NETMASK=255.255.255.0

สำหรับการแก้ไขค่า default gateway แก้ไขได้ที่ไฟล์

/etc/sysconfig/network

แก้ไขบรรทัดที่เขียนว่า GATEWAY

NETWORKING=yes

HOSTNAME=localhost.localdomain

GATEWAY=192.168.12.1

จากนั้นอย่าลืม restart network service ด้วยคำสั่ง

service network restart

ก็เป็นอันเรียบร้อย

Linux troubleshooting คำสั่งในการแก้ปัญหา Linux

0

Posted on : 04-04-2010 | By : admin | In : CentOS, Linux

เวลา server ของเรามีปัญหา โดยปกติแล้วกว่า 90% จะมาจากปัญหาพื้นฐานต่างๆ เช่น disk เต็ม , ram ไม่พอ , CPU 100%

ผมได้รวบรวมวิธีการค้นหาปัญหาที่เิกิดขึ้นใน Linux sever ( Linux troubleshooting ) ลองทำตามดูรับรองว่ามีประโยชน์มากทีเดียว

1. ใช้คำสั่ง df -h

เพื่อดู disk space ว่าเต็ม 100% หรือเปล่า นี่เป็นสิ่งแรกที่ต้องตรวจสอบ

#df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
901G  901G  0G  100% / << นี่แสดงว่ามีปัญหา disk เต็ม
/dev/sdb1             903G   36G  821G   5% /backup
/dev/sda1              99M   12M   83M  13% /boot
tmpfs                         2.0G     0  2.0G   0% /dev/shm
/var/tmpMnt          1008M   35M  922M   4% /tmp
ถ้าพบว่า disk เต็ม สามารถไปที่ / แล้วลองใช้คำสั่ง du –max-depth=1 -h เพื่อดูว่า file ไหนที่ทำให้เต็ม โดยไล่ไปทีละ directpry

2. ใช้คำสั่ง top

เพื่อดู CPU , RAM , swap file และ process ที่ใช้ CPU และ memory สูงที่สุด

top command

3. ใช้คำสั่ง tail -100 /var/log/messages

เพื่อดู log ไฟล์ของระบบว่าเกิดอะไรขึ้นเพื่อดู log ไฟล์ของระบบว่าเกิดอะไรขึ้น 100 คือ 100 บรรทัดสุดท้าย สามารถเปลี่ยนได้ตามต้องการ

4. ดู log ของ process นั้นๆ เช่น log ของ http , mysql

#df -hFilesystem            Size  Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00/dev/sdb1             903G   36G  821G   5% /backup/dev/sda1              99M   12M   83M  13% /boottmpfs                         2.0G     0  2.0G   0% /dev/shm/var/tmpMnt          1008M   35M  922M   4% /tmp

Linux ลืม password root ทำไงดี

3

Posted on : 30-03-2010 | By : admin | In : CentOS, Linux

เชื่อว่าคงจะมีบางครั้งที่หลายๆคนจำเป็นจะต้อง login เข้า server ทั้งๆที่ไม่รู้ password ของ root ( คนเก่าลาออก,admin ไม่อยู่ เป็นต้น ) หรืออาจจะเป็นความสะเพร่าของเราเองที่จำ password ที่ set เอาไว้ไม่ได้ นี่คือสิ่งที่จะต้องทำในกรณีนี้

เตรียมตัว อุปกรณ์ให้พร้อม

เตรียม Keyboard , จอ monitor ต่อเข้ากับ server ที่เราต้องการ login เข้าไป

ขั้นตอน

หลังจากต่อ Keyboard และ monitor แล้วให้ reboot เครื่อง

1. ตอนนี้เข้าหน้า GRUB menu (หน้าที่นับถอยหลัง 5 4 3 2 1 ) ให้กดปุ่มอะไรก็ได้เพื่อให้เลือก GRUฺ menu ได้

2. ที่ menu “Red Hat Enterprise Linux ที่มี kernal version ที่เราต้องการ boot ให้กด a

3. ไปที่สุดบรรทัด กด space bar 1 ทีแล้วพิมพ์ single กด enter เพื่อเข้าสู่ single mode

4. หลังจาก boot เข้าไปเรียบร้อยใช้คำสั่ง #passwd root เพื่อแก้ไข password ใหม่

5. reboot ใหม่อีกครั้งตามปกติ

centos grub