อิกเราะอ์ฟอรั่ม - กระดานเสวนาอิกเราะอ์ออนไลน์

โต๊ะข่าวสารและเทคโนโลยี => เกร็ดไอที => ข้อความที่เริ่มโดย: ชายคนหนึ่ง ที่ พฤษภาคม 21, 2010, 13:39:13



หัวข้อ: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ พฤษภาคม 21, 2010, 13:39:13
เปลี่ยน Port SSH ใน Ubuntu

เพื่อความปลอดภัยในการเข้าใช้งาน ให้เปลี่ยน Port 22 เข้าใช้งาน Ubuntu ให้เข้าไปแก้ไขไฟล์

    /etc/ssh/sshd_config


ภายในไฟล์ก็ทำการเปลี่ยน Port จาก 22 เป็นเลขอื่นตามต้องการ

    # Package generated configuration file
    # See the sshd(8) manpage for details

    # What ports, IPs and protocols we listen for
    Port 1234
    # Use these options to restrict which interfaces/protocols sshd will bind to
    #ListenAddress ::
    #ListenAddress 0.0.0.0
    Protocol 2


เมื่อทำการแก้ไขแล้วให้ Restart SSH ทีหนึ่งด้วยคำสั่ง

    /etc/init.d/ssh restart


แล้วทดสอบเข้าใช้งานดูด้วย

    ssh user@ubuntu -p 1234


user คือชื่อ username ของผมนะ
@ubuntu เป็น @ชื่อ Host ของเรา
-p 1234 คือ Port 1234 ที่ทำการเปลี่ยนใหม่

ถ้าเชื่อต่อไม่ได้ให้ลองตรวจสอบไฟล์ Config ใหม่ดูครับ
**ระวังด้วยนะครับมันจะมีไฟล์ /etc/ssh/ssh_config ไฟล์นี้ไม่ใ่ช่นะครับ




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 14, 2010, 13:19:10
กระทู้นี้เกี่ยวกับบันทึกการติดตั้ง Linux นะครับ กับปัญหาที่เจอและวิธีการแก้  alhamdu:0


Error adding address 192.168.1.10 for eth0 บน centos
ปัญหาตอนรีสตาร์ท service network ฟ้อง error ดังกล่าว

   1. SSH in as root and install the KVM packages with the command yum install kvm qemu qemu-img parted
   2. In the /etc/sysconfig/network-scripts directory, copy ifcfg-eth0 to ifcfg-br0.
   3. Edit the new file and change the DEVICE line to DEVICE=br0.
   4. Edit the ifcfg-eth0 file, and at the bottom add the line BRIDGE=br0
   5. Apply the network settings with the command service network restart . This should be done at the console, as it will break network access to the host system if anything goes wrong.


ping: unknown host www.google.co.th บน centos
ping เว็บใช้ชื่อไม่ได้ แต่ ping โดยใช้ IP ได้

Add your ISPs DNS servers to /etc/resolv.conf in the format:
nameserver ip.of.primary.dns
nameserver ip.of.secondary.dns







หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 16, 2010, 13:21:11
ปัญหาเกี่ยวกับ phpmyadmin


Forbidden
You don't have permission to access /phpmyadmin/ on this server.



แก้ไฟล์ /etc/httpd/conf.d/phpMyAdmin.conf  


#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /phpMyAdmin /var/www/html/phpMyAdmin
Alias /phpmyadmin /var/www/html/phpMyAdmin
<Directory /var/www/html/phpMyAdmin>
        Options Indexes MultiViews FollowSymLinks
</Directory>

<Location /phpMyAdmin>
    Order deny,allow
    Deny from all
    Allow from  all
</Location>


รันคำสั่ง

โค๊ด:
ln -s /usr/share/phpMyMdmin /var/www/html/phpMyMdmin


เสร็จแล้ว /etc/init.d/httpd restart



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 16, 2010, 13:48:24
การเปลี่ยนชื่อเครื่อง (hostname) ใน Fedora 12


ตรวจสอบชื่อเครื่อง (hostname) ก่อนการเปลี่ยนแปลง
สามารถใช้คำสั่ง hostname เพื่อตรวจสอบชื่อ hostname ที่ใช้อยู่ปัจจุบันได้

ตัวอย่างการตรวจสอบชื่อเครื่อง (hostname)

[root@oldname ~]# hostname
oldname.your-domain.com

การแก้ไขคอนฟิกไฟล์
โดยดีฟอลต์แล้วใน Fedora จะมีอยู่สองไฟล์ที่เก็บชื่อเครื่อง คือไฟล์ /etc/hosts และไฟล์ /etc/sysconfig/network

ตัวอย่างไฟล์ /etc/hosts

[root@oldname ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       oldname.your-domain.com oldname localhost.localdomain localhost oldname
::1             localhost6.localdomain6 localhost6

ตัวอย่างไฟล์ /etc/sysconfig/network

[root@oldname ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oldname.your-domain.com
IPV6_DEFAULTGW=

วิธีการเปลี่ยนคือ เปลี่ยนคอนฟิกทั้งสองไฟล์ โดยเปลี่ยนจาก oldname เป็น newname ทั้งหมด แล้ว reboot เครื่องเพื่อให้คอนฟิกชื่อเครื่องใหม่มีผล

ตรวจสอบชื่อเครื่อง (hostname) หลังจากแก้ไข
ใช้คำสั่ง hostname เพื่อตรวจสอบชื่อ hostname ชื่อใหม่ได้

[root@newname ~]# hostname
newname.your-domain.com




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 18, 2010, 13:19:38
เปลี่ยน Port SSH ใน Fedora

ไฟล์ : /etc/ssh/sshd_config

แก้ไขส่วน

โค๊ด:
#Port 22


แก้ไขเป็น

โค๊ด:
Port 1234


หรือก็คือ Port ตามด้วย Port ที่เราต้องการ ในที่นี้คือ 1234

พอแก้ไขเสร็จแล้วให้ตรวจสอบก่อนว่าได้เปิด iptables firewall ไว้หรือเปล่า
ถ้าเปิดไว้ ให้ไปเพิ่ม Port ด้วยนะครับ ไม่งั้นเดี๋ยวรีโมทไม่ได้ไม่รู้นะ (คำสั่ง setup)
พอแก้ไฟล์+เพิ่ม Port ใน ไฟร์วอลล์ แล้วให้ใช้คำสั่ง

โค๊ด:
service sshd restart


เป็นอันเสร็จ สามารถ Login SSH ด้วย Port ที่เราตั้งได้เลย



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 18, 2010, 15:08:36
แก้ปัญหา phpMyAdmin บน Fefora ฟ้อง error

The configuration file now needs a secret passphrase (blowfish_secret).

ให้ใส่โค้ดต่อไปนี้ลงไปที่ไฟล์

/var/www/html/phpMyAdmin/config.inc.php



โค๊ด:
$cfg['blowfish_secret'] = '';

ใส่โค้ดรหัสตัวเลขอะไรลงไปก็ได้


บันทึกแล้วรีาตาร์ท httpd

/etc/init.d/httpd restart

แล้วทดลองเข้า phpMyAdmin อีกครั้ง




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 23, 2010, 11:18:19
การเปลี่ยนตำแหน่ง DocumentRoot ของ Apache Web Server

ตำแหน่ง  DocumentRoot  ที่เป็น Default ของ Apache ปกติ จะเป็น /var/www/html  ใน บางครั้งเราอาจจะมีความจำเป็น ต้องเปลี่ยนแปลงตำแหน่งดังกล่าวให้มีความเหมาะสม  ซึ่ง ในที่นี้จะขอแนะนำวิธีการเปลี่ยนตำแหน่ง DocumentRoot รูปแบบหนึ่ง ที่อาจจะใช้ประโยชน์สำหรับบางคนได้

สมมุติว่าต้องการจะเปลี่ยนตำแหน่งจาก /var/www/html ไปเป็น /home/www/html มีขั้นตอนการทำ ดังต่อไปนี้ครับ

ขั้นตอนการทำ
1. สร้างไดเรกทอรี่ /home/www/html ด้วย คำสั่ง :
#mkdir /home/www/html

2. Backup ได เรกทอรี่เดิมไว้ด้วยการเปลี่ยนให้เป็นชื่ออื่น เช่นอาจจะเปลี่ยนชื่อเป็น /var/www/html.original โดยใช้คำสั่ง mv ดังนี้ :
#mv /var/www/html/  /var/www/html.original

3. สร้าง Symbolic Link ของไดเรกทอรี่ใหม่คือ /home/www/html ให้ มีชื่อเป็น /var/www/html ซึ่งหมายถึงว่า เมื่อมีการเรียกใช้งานที่ /var/www/html ซึ่งไม่ได้ มีอยู่จริง  ก็ให้ Link ไปยัง /home/www/html  ซึ่งจะมีประโยชน์มากเพราะเราไม่ต้องไปแก้ไขไฟล์คอนฟิกของ Apache แต่ประการใด  โดยใช้คำสั่งดังนี้

#ln -s /home/www/html /var/www/html

การเพิ่มแอ คเคานต์ของยูสเซอร์ ให้สามารถปรับแต่งแก้ไขเว็บไซต์ได้โดยผ่าน FTP Client
เมื่อเราเปิดบริการ Web Server ก็จะมีความจำเป็นที่จะต้องมีการรับส่งไฟล์จากเครื่องที่ใช้ในการ ทำ web เข้าสู่ Server ซึ่ง การรับส่งไฟล์ผ่าน FTP เป็น สิ่งที่นิยมทำกัน  ฉะนั้นต่อไปนี้จะเป็นตัวอย่างการเพิ่ม user บน Web Sever ให้สามารถทำการรับส่งไฟล์กับตำแหน่ง DocumentRoot ได้ โดยสมมุติว่ายูสเซอร์มีชื่อเป็น webmaster ซึ่งมีขั้นตอนดังนี้ :

#useradd -c "Webmaster" -d /home/www/html -g users  -M webmaster
#passwd webmaster
Changing password for user webmaster.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
#chown webmaster /home/www/html

จากคำสั่งข้างบนก็จะทำให้ user ที่ชื่อ webmaster สามารถรับส่งไฟล์กับตำแหน่ง DocumentRoot ของ Server ได้ ซึ่งเมื่อ FTP เข้าสู่ Server ก็จะเข้าไปยัง ตำแหน่ง /home/www/html โดยอัตโนมัติ

ในกรณีที่บน Web Server เครื่องหนี่งมีคนทำเว็บหลายคน หรือหลายโดเมน ก็จะต้องมีการ Add User หลาย ๆ ยูสเซอร์  ซึ่งวิธีการที่กล่าวมานี้สามารถประยุกต์ใช้งานได้ครับ




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 24, 2010, 12:01:54
boot แบบ textmode บน Fedora

ให้เข้าระบบไปก่อนแล้ว แก้ไขไฟล์ /etc/inittab
โดยให้ ให้เครื่องหมาย # หน้า id:5 ครับ
เพราะ runlevel 3 จะใช้เพื่อเข้า text mode เท่าน้น

id:3:initdefault: # Console Text Mode
id:5:initdefault: # Console GUI Mode


วิธีการบูตเพื่อเข้า graphic mod

# startx



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 25, 2010, 01:05:28
ติดตั้ง webmin บน Fedora

สร้างไฟล์

/etc/yum.repos.d/webmin.repo

ใส่โค้ดต่อไปนี้

โค๊ด:
[Webmin]
name=Webmin Distribution Neutral
baseurl=http://download.webmin.com/download/yum
enabled=1


เสร็จแล้วรันคำสั่ง

โค๊ด:
rpm --import http://www.webmin.com/jcameron-key.asc

ตามด้วย

yum -y install webmin

เข้าใช้งาน

โค๊ด:
http://localhost:10000/





หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ กรกฎาคม 09, 2010, 11:55:38
(repair filesystem) 1 #


fedora wont boot "***an error occurred during the filesystem check?"

โค๊ด:

***an error occured during the filesystem check
***droping you to a shell; the system will rebot
*** when you leave the shell
***warniong -- SELinux is active
***disableing security enforcement for system recovery
***Run 'setinforce 1' to reeinable
Give root password for maintenance
(or type control-D to continue):


ให้ใส่รหัสผ่านของ root เข้าไป
หลังจากใส่รหัสผ่าน


โค๊ด:

bash: cannot set terminal process group (-1): inappropriate ioctl for device
bash: no job control in this shell
(repair filesystem) 1 #


ให้ใช้คำสั่ง

โค๊ด:
fsck /dev/x

x คือพื้นที่ฮาร์ดดิสก์ของเราจะดูรู้ได้อย่างไรว่าฮารืดดิสก์ของเราเป็น hda , hdb หรือ sda , sdb โดยใช้คำสั่ง df -h  ดู


แล้วใช้คำสั่ง

โค๊ด:
fsck /dev/sda2


ให้กด y ไปเรื่อยๆ จนเสร็จ แล้วลองรีบูตใหม่อีกครั้ง

หรืออาจจะใช้คำสั่ง

โค๊ด:

fsck -A -y







หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ กรกฎาคม 10, 2010, 11:38:37
คำสั่งในการดู CPU, RAM และความจุ Hard Disk

ในระบบลีนุกซ์หากต้องการดู CPU, RAM และความจุ Hard Disk สามารถดูด้วยคำสั่งต่อไปนี้

# cat /proc/cpuinfo ดูหน่วยประมวลผลกลาง (CPU)

# cat /proc/meminfo ดูหน่วยความจำ (RAM)

# free ดูหน่วยความจำที่ใช้งานไป

# free -m ดูหน่วยความจำเป็น เม็ก

# top ดูเปอร์เซ็นต์การใช้งาน CPU และ RAM

# df -h ดูความจุฮาร์ดดิสก์ที่ใช้งาน

#top  ครบ หมด


หรือลง htop ก็ จะดูง่ายดี ครับ

#yum -y install htop




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ กรกฎาคม 27, 2010, 12:04:43
แก้ปัญหา

400
Bad Request  Your browser sent a request that this server could not understand. fedora


/etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf

ค้นหา SecRuleEngine ถ้าเป็น On อยู่แก้ให้เป็น Off นะครับ

โค๊ด:
SecRuleEngine off




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ กรกฎาคม 28, 2010, 11:52:45
แก้ hostname command line

แก้ไขไฟล์

โค๊ด:
/proc/sys/kernel/hostname

เสร็จแล้วรีสตาร์ท httpd

/etc/init.d/httpd restart



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ กรกฎาคม 28, 2010, 14:51:44
ติดตั้ง FTP Server

• รันคำสั่งใน PuTTY ดังนี้

sudo apt-get install vsftpd
• แก้ไขไฟล์คอนฟิกของ Vsftpd ดังนี้

sudo nano /etc/vsftpd.conf


โค๊ด:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=NO
ascii_upload_enable=YES 
ascii_download_enable=YES



sudo /etc/init.d/vsftpd restart
• ก าหนดกลุ่ม www-data ส าหรับ ftp-client ไว้ที่เว็บโฟลเดอร์หลัก

sudo chgrp www-data /var/www/
sudo chmod 775 /var/www/
• เพิ่มชื่อของเราในกลุ่ม www-data ส าหรับ ftp-client ตัวอย่าง somchai

sudo adduser somchai www-data
• (ทางเลือก) สร้าง user ใหม่ชื่อ webmin ส าหรับ ftp-client

sudo useradd webmin -g www-data -d /var/www
sudo passwd webmin
ทดสอบรันโปรแกรม FTP Client เช่น CuteFTP, FileZilla บนวินโดวส์
• ระบุ Host Address ไปที่ Ubuntu ตัวอย่าง 192.168.1.10
• กำหนด FTP พอร์ต 21
• ระบุชื่อล็อกอินที่ก าหนดไว้ข้างต้น ตัวอย่าง somchai หรือ webmin
• กำหนด Remote Folder: /var/www




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ สิงหาคม 07, 2010, 13:05:47
การแก้ปัญหากรณีลืมรหัสผ่าน root บนระบบ Linux

วิธีแก้ขึ้นอยู่กับว่าเราใช้ระบบการ boot Linux แบบใดโดยปัจจุบันมีให้เลือกสองแบบคือ LILO , GRUB

กรณีระบบบู๊ตแบบ LILO
1. ทำการบู๊ตเครื่องใหม่

2.ขณะที่ขึ้นข้อความว่า boot : linux single < พิมพ์คำนี้เข้าไป

3.จะขึ้นคอมมานด์พร็อมท์เป็น #

4. ทำการเปลี่ยนรหัสผ่าน root ใหม่
# passwd root [enter]
ป้อนรหัสผ่านสองครั้ง

5. พิมพ์ reboot หรือ shutdown -r now [enter] เพื่อทำการบู๊ตเครืองใหม่

กรณีระบบบู๊ตแบบ GRUB
1. ทำการบู๊ตเครื่องใหม่
2. ขณะแสดงเมนูบู๊ตของ GRUB ให้เลือกเมนูบู๊ตเข้า Linux แล้วกดปุ่ม E [enter] เพื่อเข้าหน้าแก้ไขการบู๊ต
3. เลื่อนไปบนบรรทดที่ขึ้นต้นด้วย kernel
4. กดปุ่ม E [enter] เพื่อแก้ไขข้อมูล
5. เคาะ backspace เพื่อเว้นว่าง 1 ครั้ง
6. พิมพ์ single [enter]
7. กดปุ่ม B [enter]
8. จะขึ้นคอมมานด์พร็อมท์เป็น #
9 . ทำการเปลี่ยนรหัสผ่าน root ใหม่
# passwd root [enter]
ป้อนรหัสผ่านสองครั้ง
10 . พิมพ์ reboot หรือ shutdown -r now [enter] เพื่อทำการบู๊ตเครืองใหม่



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ พฤศจิกายน 25, 2010, 01:48:08
ตั้งค่าให้ cron ทำงานแทนเราใน linux

เป็นปัญหาบ่อยๆ สำหรับผู้ที่ใช้ Samba และมี user หลายคน และจำเป็นต้องทำการสำรองข้อมูลอยู่บ่อยๆ เพื่อไม่ให้ข้อมูลสูญหายเมื่อระบบล่ม สำหรับผม วิธีการง่ายๆ สำหรับการสำรองข้อมูลคือการการจายความเสี่ยง ของข้อมูลโดยการสำรองไปยัง Harddisk อีกลูกเพื่อลดความเสี่ยงลง โดยใช้คำสั่ง tar ซึ่งจะต้องทำเป็นประจำทุกเดือน
   และเพื่อความสะดวกในการสำรองข้อมูลของ user และสะดวกในการเรียกคืนข้อมูลของแต่ละ user จึงทำการจัดเก็บข้อมูลของแต่ละ user แยกกัน

# สร้าง folder ของแต่ละเดือน

โค๊ด:
mkdir /sec.raw/home_`date +%Y%m%d`

# สำรองข้อมูลของแต่ละ user เช่น

โค๊ด:

tar -cvzf /sec.raw/home_`date +%Y%m%d`/apinya.tgz /home/apinya
tar -cvzf /sec.raw/home_`date +%Y%m%d`/sathaya.tgz /home/sathaya

# เมื่อต้องการคลายข้อมูลก็ใช้คำสั่ง tar -xvf xxx.tgz
เมื่อต้องการให้ cron ทำงานแทนเราในทุกๆ เดือนก็ให้เก็บชุดคำสั่งที่สร้างไว้เป็น scrip file และบันทึกใน  /etc/cron.monthly และอย่างลืมกำหนดให้ สามารถ run scrip ได้ด้วยนะครับโดยใช้  chmod +x ตามด้วยชื่อ scrip
เป็นอันเสร็จเรียบร้อย ทีนี้ cron ก็จะทำการสำรองข้อมูลให้เราทุกๆ เดือน โดยไม่มีหลงลืมอย่างแน่นอน

ลองนำไปประยุกต์ใช้งานกันดูนะครับ


(http://rannet.cc-art-r.com/forums/Smileys/default/cry.gif)


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ ธันวาคม 26, 2010, 02:41:34
ติดตั้งโปรแกรม awstats เพื่อแสดงสถิติใช้งาน www บน fedora 10

ติดตั้งโปรแกรมawstatsดังนี้

yum install awstats

ต้องสร้างแฟ้มชื่อ/etc/httpd/conf.d/awstats.conf ด้วยมีข้อมูลว่า

Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ต่อไปสร้างพื้นที่สำหรับเก็บข้อมูลawstatsด้วยคำสั่ง
mkdir /var/lib/awstats

ให้ httpd อ่านค่าใหม่ด้วยคำสั่ง/etc/init.d/httpd reload
เมื่อติดตั้งแล้วจะได้แฟ้ม/etc/awstats/awstats.model.conf
ซึ่งเป็นแฟ้มต้นแบบในการกำหนดวิธีประมวลผลสถิติ
ให้คัดลอกและสร้างเป็นแฟ้มใหม่ตั้งชื่อตามต้องการเช่น
cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.myhttp.conf
ตัวอย่างแก้ไขแฟ้ม/etc/awstats/awstats.myhttp.conf
ให้เหมาะกับ apache ดังนี้คือ

LogFile="/var/log/httpd/access_log"
LogType=W
LogFormat=1
SiteDomain="mywww.host.domain"
HostAliases="localhost 127.0.0.1"
DirData="/var/lib/awstats"
DirCgi="/awstats"
DirIcons="/awstatsicons"
สั่งสร้างฐานข้อมูลสถิติด้วย

perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl - config=myhttp -update




ได้ตัวอย่างทำนองนี้แสดงว่าใช้ได้
Update for config "/etc/awstats/awstats.myhttp.conf"
With data in log file "/var/log/httpd/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 40169
 Found 1 dropped records,
 Found 2 corrupted records,
 Found 0 old records,
 Found 40166 new qualified records.
สร้างรายงานด้วยคำสั่ง

perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl - config=myhttp -output - staticlinks >/var/www/html/awstats.myhttp.html

 


 
แค่นี้ก็เสร็จแล้วทดสอบผลงานดูผลงานตัวอย่าง
http://mywww.host.domain/awstats.myhttp.html

หรือ

http://mywww.host.domain/awstats/awstats.pl?config=myhttp



หากติดตั้งด้วยyumหรือapt-getระบบจะมีสร้างแฟ้มชื่อ
/etc/cron.hourly/awstats แนะนำให้ลบทิ้งเพราะไม่สะดวกในการใช้งาน
ลบด้วยคำสั่งrm /etc/cron.hourly/awstats
สั่งให้ทำงานทุกๆชั่วโมงด้วยการสร้างแฟ้ม
/etc/cron.hourly/awstats- myhttp.sh บน fedora10  มีข้อความดังนี้คือ

#!/bin/sh
perl /usr/share/awstats/wwwroot/cgi- bin/awstats.pl -config=myhttp - update > /dev/null

perl /usr/share/awstats/wwwroot/cgi- bin/awstats.pl -config=myhttp - output -staticlinks > /var/www/html/awstats.myhttp.html

เสร็จแล้วอนุญาติให้แฟ้มนี้execได้ด้วยคำสั่ง
chmod  +x   /etc/cron.hourly/awstats- myhttp.sh


ถ้าต้องการแสดงผลvirtual host ด้วยต้องทำดังนี้
ต้องแก้ไขlog fileของ apache ให้แสดงชื่อของvirtual domain ออกมาด้วยโดยการแก้ไขแฟ้ม /etc/httpd/conf/httpd.conf ที่บรรทัดค่าเดิมว่า
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User- Agent}i\"" combined

ให้เพิ่มข้อความว่า%v แทรกเข้าไปตอนท้ายของบรรทัดกลายเป็นว่า
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User- Agent}i\" %v" combined

เสร็จแล้วให้apacheทำงานใหม่ด้วยคำสั่ง /etc/init.d/httpd reload



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ พฤษภาคม 31, 2011, 22:43:37
การ Backup และ Restore ฐานข้อมูลผ่าน command line

ในการสำรองข้อมูล (Backup) หรือการคืนค่าข้อมูล (Restore) หลายท่านน่าจะเคยทำผ่าน web application เช่น phpMyAdmin มาบ้างแล้ว แต่ด้วยข้อจำกัดของ HTTP นั้นจะมีปัญหาสำหรับฐานข้อมูลที่มีขนาดใหญ่ ดังนั้นการใช้คำสั่งผ่าน command line นั้นจึงมีประสิทธิภาพมากที่สุด
การสำรองข้อมูลใน MySQL นั้นทางผู้พัฒนาเองได้ให้เครื่องมือช่วยมาด้วยชื่อว่า mysqldump สามารถทำการสำรองข้อมูลตามต้องการได้ โดยการใช้งานสั่งได้โดยทำงานผ่าน command line โดยมีรูปแบบ
#mysqldump -u [username] -p[password] [database] > [filename]ตัวอย่างการใช้งานเช่น
#mysqldump -u root -pMyPass test > backup.sql
เป็นลักษณะการสั่งให้สำรองฐานข้อมูลลงในไฟล์ ในระบบปฎิบัติการ Unix/Linux นั้นเราสามารถใช้คำสั่งบีบอัดร่วมได้เช่น
#mysqldump -u root -pMyPass test | gzip > backup.sql.gz
หรือ
#mysqldump -u root -pMyPass test | bzip2 > backup.sql.bz2

และยังเรายังสามารถสำรองฐานข้อมูลทั้งหมดด้ว
#mysqldump -u root -pMyPass --all-databases | gzip > backup.sql.gz
และยังมีค่าอื่นเพื่อระบุรูปแบบได้ตามต้องการ เช่น
--add-drop-table เพื่อสั่งให้ drop ตารางที่มีอยู่ก่อน
--no-data เพื่อสั่งให้สำรองเฉพาะโครงสร้างของตาราง
--add-locks เพื่อสั่งให้มีการล็อคตารางและคลายล็อคตาราง

ส่วนการคืนค่าข้อมูลก็สามารถทำได้ด้วยการใช้คำสั่ง mysql มีรูปแบบการใช้งาน
#mysql -u [username] -p[password] [database] < backup.sql
ตัวอย่างการใช้งานเช่น
#mysql -u root -pMyPass test < backup.sql
ส่วนถ้าเป็นไฟล์บีบอัดเช่น
#gunzip < backup.sql.gz | mysql -u root -pMyPass test
หรือ
#bzip2 < backup.sql.bz2 | mysql -u root -pMyPass test


credit phpMyAdmin (http://www.phpmyadmin.net)


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มีนาคม 21, 2012, 19:58:26
สำรองข้อมูลของ MySQL ด้วย mysqldump


หาก Server ที่เราได้ปรับแต่งไว้อย่างดีแล้วมีปัญหา คงไม่ดีแน่หากเราไม่ได้สำรองข้อมูลของฐานข้อมูลเว็บไซต์เราไว้ หลายคนอาจจะใช้วิธีการคัดลองฐานข้อมูลจากไฟล์ข้อมูลมาเก็บไว้อีกที่นึง แต่วิธีดังกล่าวไม่สามารถทำได้หากเรามีการใช้งาน Transection ร่วมด้วยเช่น การใช้งาน Innodb ร่วมกับ MySQL เป็นต้น วันนี้ขอนำเสนออีกหนึ่งคำสั่งที่สามารถใช้สำรองข้อมูลได้เป็นอย่างดีนั่นก็คือ mysqldump นั้นเอง

โค๊ด:
$ mysqldump --user="username" --password="password" "database" > "path_to_store"/"database"_`date "+%Y%m%d"`.sql

ด้านบนเป็นรูปแบบคำสั่ง มาดูตัวอย่างกันเลยดีกว่า สมมุติว่าเรามี database ชื่อ ofebia_database มี username ที่สามารถใช้งานฐานข้อมูลนี้ได้คือคือ ofebia_user และมี password คือ ofebia_password และต้องการเก็บข้อมูลไว้ที่ /root/backup/ เราก็สามารถใช้รูปแบบคำสั่งได้ดังนี้

โค๊ด:
# mysqldump --user=ofebia_user --password=ofebia_password ofebia_database > /root/backup/ofebia_database_`date "+%Y%m%d"`.sql

จากตัวอย่างคำสั่งด้านบน mysqldump จะสำรองข้อมูลไว้ที่ /root/backup โดยมีชื่อไฟลว่า ofebia_database_YYYYmmdd.sql เช่น ofebia_database_20090806.sql เป็นต้น แต่การที่จะมานั่งรันคำสั่งดังกล่าวทุกวันอาจจะทำให้เรายุ่งยาก ดังนั้นเราสามารถใช้งานร่วมกับ crontab ได้ แต่ก่อนอื่นเราต้องสร้าง shell script ก่อนเพื่อให้สามารถใช้งานกับ crontab ได้อย่างไม่มีปัญหา

โค๊ด:
# mkdir /root/bin
# vim /root/bin/mysql_backup.sh

เพิ่มข้อความดังนี้ลงไป

โค๊ด:
#!/bin/sh

mysqldump --user=ofebia_user --password=ofebia_password ofebia_database > /root/backup/ofebia_database_`date "+%Y%m%d"`.sql

บันทึกข้อมูลให้เรียบร้อย แล้วกำหนดสิทธิ

โค๊ด:
# chmod u+x,go= /root/bin/mysql_backup.sh

เหตุที่ต้องกำหนดอย่างนี่เนื่องจาก shell script ต้องการสิทธิในการรัน แต่เราไม่ต้องการให้ใครนอกจาก root รัน อ่าน หรือเขียน shell script นี้ เนื่องจากข้อมูลใน shell script เป็นข้อมูลสำคัญเช่น username และ password ที่สามารถเข้าจัดการหรือดูข้อมูลในฐานข้อมูลได้ หากเราให้ใครก็ได้ดูหรือแก้ไขได้ ข้อมูลของเราจะไม่ปลอดภัยและท่านจะถูกประณามว่าเป็นผู้ดูและระบบที่ไม่รอบคอบได้ครับ จากนั้น

โค๊ด:
# crontab -e

จะปรากฏ text editor ที่ตั้งค่าปริยายโดยระบบขึ้นมา ให้เพิ่ม

โค๊ด:
0 5 * * * /root/bin/mysql_backup.sh

หลังจากนั้นบันทึกข้อมูลให้เรียบร้อย จาก crontab ที่เขียนไปหมายความว่าทุกเวลา 5.00 น. ของทุกวันระบบจะรัน shell script นี้ ส่วนเวลาใดที่ต้องการให้ server รัน shell script นี้ให้สังเกตดูว่า ณ เวลาใดที่เว็บเรามีผู้ใช้งานน้อยที่สุดโดยทั่วไปแล้วน่าจะอยู่ที่ 3.00 น. -  6.00 น. แต่อย่างไรก็ตามต้องสังเกตที่เว็บเราด้วยนะครับ[/size]


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มีนาคม 21, 2012, 22:07:25
สำหรับรูปแบบคำสั่งเป็นดังนี้

rm [options] files

โดยที่ files สามารถเป็นได้ทั้ง ไฟล์ และ ไดเร็คทอรี (folder)
นอกจากนี้ยังมี Options ที่มีการใช้บ่อย เช่น
-d : ลบไดเร็คทอรี (directory) ถึงแม้ว่าจะมีไฟล์บรรจุอยู่ภายใน แต่ใช้ได้เฉพาะกับ privileged user เท่านั้น
-f : เป็นการบังคับลบ หรือลบแบบ force โดยไม่มีคำสั่งเตือนก่อนลบ
-r, -R : การลบแบบ recursive คือการลบทุกไฟล์และทุกไดเรคทอรีย่อย ควรระมัดระวังก่อนใช้คำสั่งนี้นะครับ

สำหรับการใช้อ็อปชั่นก็ให้พิมพ์ต่อกันไปเลยครับ เช่น

โค๊ด:
rm -f -r testfolder




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มีนาคม 23, 2012, 09:48:55
วิธีแก้ How to Fix “An old version of the database format was found” While Starting PostgreSQL

[root@server]# service postgresql start

An old version of the database format was found.
You need to upgrade the data format before using PostgreSQL.
See /usr/share/doc/postgresql-8.2.13-1PGDG.fc10.i386/README.rpm-dist for more information.

Solution:
1. Assume that you have successfully backup the postgresql database.
2. Run this command.


โค๊ด:
[root@server ~]# cd /var/lib/pgsql/data
[root@server data]# ls
base    pg_clog      pg_ident.conf  pg_multixact  pg_tblspc    PG_VERSION  postgresql.conf
global  pg_hba.conf  pg_log         pg_subtrans   pg_twophase  pg_xlog     postmaster.opts
[root@server data]# rm -rf *


Reinitialize the database.


โค๊ด:
[root@server data]# service postgresql initdb
Initializing database:                                     [  OK  ]


or you can proceed to directly start the database service.


โค๊ด:
[root@server data]# service postgresql start
Starting postgresql service:                               [  OK  ]


Credit:  ehowstuff.com (http://www.ehowstuff.com/how-to-fix-an-old-version-of-the-database-format-was-found-while-starting-postgresql/)



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ เมษายน 11, 2012, 00:03:04
แก้ database postgres: FATAL บน Fedora C 10

โค๊ด:
createuser: could not connect to database postgres: FATAL:  database "postgres" does not exist

อันดับแรก stop postgresql ก่อน
โค๊ด:
/etc/init.d/postgresql stop

จากนั้นลบข้อมูลทั้งหมดของ postgres ที่อยู่ใน pgsql
โค๊ด:
rm -rf /var/lib/pgsql/data

ประมวลผล service postgresql
โค๊ด:
service postgresql initdb

คอนฟิกตามปกติ



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ เมษายน 11, 2012, 00:39:59
การใช้งาน crontab


หลายๆคนน่าจะมีบ้างที่มีความจำเป็นที่จะต้องตั้งเวลาให้เครื่องของเราทำงานบางอย่างให้โดยอัตโนมัติ ในเวลาที่เราต้องการ เช่น ทุกๆวันเวลาเที่ยงคืนเราต้องการให้มีการสั่งรัน script เพื่อ backup ข้อมูล ไอ้ครั้นจะมานั่งรอเวลาให้ถึงเที่ยงคืนแล้วก็มานั่งสั่งรัน script ด้วยตัวเองมันก็ออกจะเกินไปหน่อย ถ้าจะให้ดีพอถึงเวลาเที่ยงคืน ระบบมันก็ควรจะ backup ให้เองโดยอัตโนมัติเลยดิฟะ ซึ่งถ้าอยากจะให้เป็นเช่นนั้นก็ไม่ยากเพราะ linux มีเครื่องมือที่จะช่วยแก้ปัญหาในเรื่องนี้มาให้ อยู่แล้วในตัวไม่ต้องลงอะไรเพิ่ม นั่นก็คือ crontab น่ะเองครับ

วิธีการใช้งาน crontab ครับ

step 1: เข้า terminal แล้วก็พิมพ์ crontab -e เพื่อสร้าง crontab ที่จะใช้งาน โดยครั้งแรกที่เรียก crontab ขึ้นมาจะเห็นเป็นไฟล์เปล่าๆ มีแค่ comment บอกรูปแบบการเขียน crontab คร่าวๆดังนี้

 
#   m   h   dom   mon   dow   command
 
*** อธิบายเพิ่มเติมครับ ***
...
Field                                        มีค่า                                        รายละเอียด
...
m(minute)                    0-59 เวลาเป็นนาที               จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
h(hour)                         0-23 เวลาเป็นชั่วโมง            จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
dom(day of month)       1-31 เวลาเป็นวัน                 จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
mon(month)                 1-12 เวลาเป็นเดือน              จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
dow(day of week)          0-6 วันของแต่ละสัปดาห์        มีค่าดังนี้(อาทิตย์=0,จันทร์=1,...,เสาร์=6)
command                     คำสั่ง                                  เราสามารถกำหนดคำสั่งหรือ script ที่ต้องการรันลงไปได้ ...
 
step 2: เขียนคำสั่งลงไป เช่น
 
# m   h   dom   mon   dow    command
 
   
0    0      *          *       *        /home/rooney/backup.sh
เป็นการสั่งให้รัน backup script เวลา 24.00 น. ของทุกวัน โดยเครื่องหมาย * หมายถึงเอาทั้งหมด อย่างกรณีข้างต้น เครื่องหมาย * ตรง dom หมายถึงทำทุกๆวันของเดือน

 
step 3: หลังจากสร้าง crontab เสร็จก็ save ซะครับ แต่ถ้าอยากจะแก้ไขก็ให้พิมพ์ crontab -e อีกครั้งเพื่อเรียก file ขึ้นมาแก้ หรือถ้าต้องการจะเรียกดูว่าเราได้มีการสร้าง crontab อะไรไปแล้วบ้างให้พิมพ์ crontab -l เพื่อให้ระบบมันลิสต์crontab ทั้งหมดที่ได้สร้างไว้โดย user คนนี้ขึ้นมาให้ดู แต่ถ้าเกิดอยากจะลบ crontab ของ user นี้ทิ้งก็ให้พิมพ์ crontab -r เพื่อ remove ครับ




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ ตุลาคม 24, 2012, 15:28:45
ไม่ได้จับ Linux นานแระ มารอบนี้ขอเก็บเข้าคลังหละกันครับ กัน(ตัวเอง)ลืม

กรณีใช้ mysql dump ฐานข้อมูลแล้วเจอ error ต่อไปนี้

mysqldump: Got error: 1556: You can't use locks with og tables. when using LOCK TABLES

ให้บังคับ LOCK TABLES ซะเลย

โค๊ด:
mysqldump -uroot -p --lock-tables=0 --all-databases  > mysql.sql

เป็นอันเสร็จพิธี





หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ ตุลาคม 25, 2012, 13:58:34
ลืมรหัสผ่าน MySQL root แก้ไขได้นะครับ (เพราะตัวเองทำพัง เลยต้อง Memory เก็บไว้ซะหน่อย)

อันที่จริงมีเยอะแยะครับทางแก้ ลอง search google ดูก็เยอะแยะครับหรือจะทำตามนี้ก็ได้นะครับ
เมื่ือ login เข้าเครื่องแล้วนะครับ
   1. ให้ Stop service MySQL ก่อน

      [root@khonkaensoft]#sudo /etc/init.d/mysql stop     # for ubuntu or debian base
      หรือ
      [root@khonkaensoft]# service mysqld stop                # for redhat base

   2. ให้ Start MySQL เป็น save mode. โดยคำสั่ง

     [root@khonkaensoft]# mysqld_safe ?skip-grant-tables &

   3. ต่อไปก็ให้ Login  MySQL โดยยูเซอร์ root

      [root@khonkaensoft]# mysql -u root

   4. ทำการ Update พาสเวิด root

     mysql> use mysql;
      mysql> update user set password=PASSWORD(?NEW PASSWORD?) where user=?root?;
      mysql> flush privileges;
      mysql> quit;

   5. Restart the MySQL service & try to login using the new password.

      [kk-soft@khonkaensoft]# sudo /etc/init.d/mysql stop
      [kk-soft@khonkaensoft]# sudo /etc/init.d/mysql start
      หรือ
     [root@khonkaensoft]# service mysqld start

แล้วลองเข้า MySQL ดูอีกที
     [root@khonkaensoft]# mysql -u root -p

=============================================================
อีกทางหนึ่งสำหรับ MySQL on ubuntu

        [kk-soft@khonkaensoft]# sudo /etc/init.d/mysql reset-password

แล้วลอง
        [kk-soft@khonkaensoft]# mysql -u root -p
ระบบจะถามพาสเวิด ก็ไม่ต้องใส่ให้ Enter ผ่านไปเลยแล้วก็ทำการ Update password ตามปกติ
        mysql> use mysql;
        mysql> update user set password=PASSWORD(?NEW PASSWORD?) where user=?root?;
        mysql> flush privileges;
        mysql> quit;

=============================================================

ของ CentOS

1. ให้หยุดการทำงานของ mysql ก่อน

# service mysqld stop

2. ให้ Start MySQL เป็น save mode. โดยคำสั่ง

# mysqld_safe --skip-grant-tables &

3. ต่อไปก็ให้ Login  MySQL โดย user root

# mysql -u root

4. ทำการ Update password root (ที่ขีดเส้นใต้คือให้ใส่รหัสใหม่ลงไป)

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW PASSWORD") where user='root';
mysql> flush privileges;
mysql> quit;

5. แล้วก็ restart service ของ mysql ซะ เป็นอันเรียบร้อย

# service mysqld restart

6. แล้วลองเข้าใหม่ดูครับ

# mysql -u root -p

7.พอเข้าได้แล้ว ก็ไปเข้าของ phpmyadmin เอาด้วย ก็น่าจะเข้าได้เช่นกันครับ




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: kindness ที่ พฤศจิกายน 06, 2012, 21:55:04
ได้ Ubuntu มาก็ยังไม่ได้ลองเทสสักทีเลย  :P


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มีนาคม 07, 2013, 02:08:38
แก้ปัญหา Linux ฟ้อง  PHP 5.2+ is required

nano /etc/yum.repos.d/utterrambling.repo

เพิ่มข้อมูลต่อไปนี้

โค๊ด:
[utterrambling]

name=Jason's Utter Ramblings Repo

baseurl=http://www.jasonlitka.com/media/EL5/x86_64/

enabled=1

gpgcheck=1

gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka


หมายเหตุ: สำหรับเครื่องที่ไม่ได้ติดตั้งแบบ 64bit ให้แก้ไข baseurl=http://www.jasonlitka.com/media/EL5/i386/


อัพเดท php โดยใช้คำสั่ง yum

yum upgrade php


หรือ

โค๊ด:
wget -q -O - http://www.atomicorp.com/installers/atomic | sh


หรือ


โค๊ด:

wget http://download.fedora.redhat.com/pu...5-4.noarch.rpm

wget http://rpms.famillecollet.com/enterp...-release-5.rpm

rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

yum --enablerepo=remi update php



หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มีนาคม 08, 2013, 09:46:36
เทคนิคการตรวจสอบ Version ของ Linux RedHat , CentOS , Fedora

Linux ค่ายเดียวกันกับ RedHat ทั้ง Centos และ Fedora ก็จะมีไฟล์ redhat-release ซึ่งมันจะเก็บ version ไว้ข้างใน

โค๊ด:

# cat /etc/redhat-release
CentOS release 5.5 (Final)



หรือถ้าจะเอาให้ แน่ใจเลยก็

โค๊ด:

# rpm -q centos-release
centos-release-5-5.el5.centos.1



อีกอัน

โค๊ด:

uname -a



ถ้าเป็น redhat ลอง

โค๊ด:
cat /etc/redhat-release

หรือ

โค๊ด:
cat /proc/version


เช็คเวอร์ชั่นของ FreeBSD

โค๊ด:
# uname -mrs
server# uname -mrs
FreeBSD 7.4-RELEASE i386


เช็คเวอร์ชั่นของ Linux

โค๊ด:
# cat /etc/issue
CentOS release 5.7 (Final)

การตรวจสอบ Version PHP ใน linux

เช็ครุ่น PHP

โค๊ด:
php -v

รุ่น syslog-ng

โค๊ด:
syslog-ng -V

รุ่น Apache

โค๊ด:
httpd -v

คำสั่งในการตรวจสอบเวอร์ชั่นของระบบปฏิบัติการลีนุกซ์ (Linux distribution version RedHat, CentOS, Fedora)

$ cat /etc/*-release
$ uname -a
$ cat /proc/version
$ cat /etc/issue
$ dmesg | head -1
$ /etc/fedora-release

[Ubuntu]
$ lsb_release -a

[Debian, Slackware]
$ cat /etc/*version
$ cat /etc/slackware-version
$ /etc/slackware-release
$ /etc/debian_version
$ /etc/debian_release

[SuSE]
$ cat /etc/SuSE-release

[Gentoo]
$ /etc/gentoo-release

[/size]


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มีนาคม 24, 2013, 23:02:55
ปรับแต่งคอนฟิกพื้นฐานของ Apache เว็บเซิร์ฟเวอร์

การแก้ไขทั้งหมดในบทความนี้เป็นการแก้ไขคอนฟิกในไฟล์ /etc/httpd/conf/httpd.conf ซึ่งจะเป็นไฟล์คอนฟิกหลักของ Apache เว็บเซิร์ฟเวอร์


คำเตือน
กรุณาทดสอบการแก้ไขคอนฟิกในเครื่องทดลองก่อนที่จะนำไปใช้กับเว็บเซิร์ฟเวอร์จริงๆ
แนะนำให้สำรองไฟล์ (backup) ก่อนที่จะแก้ไขคอนฟิก


ตรวจสอบความถูกต้องของรูปแบบไฟล์ httpd.conf

เมื่อแก้ไขไฟล์ httpd.conf เสร็จสิ้น ให้ใช้คำสั่ง httpd –t เพื่อตรวจสอบรูปแบบ (syntax) ของไฟล์ก่อนว่าถูกต้องหรือไม่ ผลลัพธ์จากการรันคำสั่งต้องขึ้นว่า Syntax OK ก่อนที่จะ restart เซอร์วิสใหม่อีกครั้งเพื่อให้คอนฟิกที่แก้ไขมีผล

ตัวอย่างการใช้คำสั่ง httpd –t เพื่อตรวจสอบ syntax ของไฟล์ httpd.conf

[root@web-server ~]# httpd -t
Syntax OK
ตัวอย่างผลลัพธ์การตรวจสอบในกรณีที่รูปแบบ syntax ของไฟล์ httpd.conf ไม่ถูกต้อง

[root@web-server ~]# httpd -t
Syntax error on line 44 of /etc/httpd/conf/httpd.conf:
Invalid command 'ServerToken', perhaps misspelled or defined by a module not included in the server configuration
ผลลัพธ์จะฟ้องว่าผิดตรงไหนในไฟล์คอนฟิก พร้อมทั้งคำแนะนำในการแก้ไข ซึ่งต้องแก้ไขจนกว่าจะได้ผลลัพธ์ “Syntax OK” แล้วค่อยใช้คำสั่ง service เพื่อทำการ restart เว็บเซิร์ฟเวอร์

ServerTokens OS

ServerTokens จะเป็นคอนฟิกที่ใช้ควบคุมการส่งข้อมูลของ Server: ใน HTTP Header กลับไปยังเว็บไคลเอนต์ เพื่ออธิบายถึงโปรแกรมที่ใช้รันเป็นเว็บเซิร์ฟเวอร์ และรายละเอียดเพิ่มเติม

แนะนำให้เปลี่ยนคอนฟิกจาก OS เป็น Prod เพื่อลดรายละเอียดของโปรแกรมที่ใช้ ด้วยเหตุผลทางด้านความปลอดภัยของตัวเซิร์ฟเวอร์เอง

ดีฟอลต์จากการติดตั้ง

ServerTokens OS
ข้อมูล Server: ใน HTTP Header ที่ส่งกลับไปยังไคลเอนต์จะมีทั้งชื่อโปรแกม เวอร์ชั่น และระบบปฏิบัติการที่ใช้ เช่น Apache/2.2.8 (Fedora)

คำแนะนำ

ServerTokens Prod

ข้อมูล Server: ใน HTTP Header จะส่งแค่คำว่า Apache


ServerSignature On

คอนฟิก ServerSignature จะควบคุมการแสดงข้อมูลของเว็บเซิร์ฟเวอร์ในหน้าเว็บเพจที่เปิดแล้วมีปัญหา เช่น Apache Server at 10.3.3.91 Port 80

แนะนำให้เปลี่ยนจาก On เป็น Off เพื่อปิดการแสดงข้อมูล

ดีฟอลต์จากการติดตั้ง

ServerSignature On
คำแนะนำ

ServerSignature Off


ปิดการใช้คุณสมบัติ Indexes

ดีฟอลต์คอนฟิกที่ติดตั้งมานั้น จะเปิดการใช้ Indexes เพื่อแสดงชื่อไฟล์ต่างๆ ที่อยู่ในไดเร็คทอรี่ ที่ไม่มีไฟล์ index.html

ดีฟอลต์จากการติดตั้ง

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

คำแนะนำ

ปิดการใช้งาน Indexes โดยลบออกจากบรรทัด Options ในคอนฟิก Directory ต่างๆ

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

ปิดคอนฟิกการแสดงรูป icons

หลังจากการปิดการใช้งาน Indexes เพื่อแสดงชื่อไฟล์ต่างๆ ที่อยู่ในไดเร็คทอรีที่ไม่มีไฟล์ index.html เราสามารถปิดคอนฟิก icons ในบรรทัดต่อไปนี้ในไฟล์ได้ วิธีการปิดที่แนะนำคือใส่เครื่องหมาย # ไว้ด้านหน้า

ตัวอย่างการปิดคอนฟิก icons ในไฟล์ httpd.conf ด้วยการใส่เครื่องหมาย #

#Alias /icons/ "/var/www/icons/"
#<Directory "/var/www/icons">
#   Options Indexes MultiViews FollowSymLinks
#    AllowOverride None
#    Order allow,deny
#    Allow from all
#</Directory>
#IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
#AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
#AddIconByType (TXT,/icons/text.gif) text/*
#AddIconByType (IMG,/icons/image2.gif) image/*
#AddIconByType (SND,/icons/sound2.gif) audio/*
#AddIconByType (VID,/icons/movie.gif) video/*
#AddIcon /icons/binary.gif .bin .exe
#AddIcon /icons/binhex.gif .hqx
#AddIcon /icons/tar.gif .tar
#AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
#AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
#AddIcon /icons/a.gif .ps .ai .eps
#AddIcon /icons/layout.gif .html .shtml .htm .pdf
#AddIcon /icons/text.gif .txt
#AddIcon /icons/c.gif .c
#AddIcon /icons/p.gif .pl .py
#AddIcon /icons/f.gif .for
#AddIcon /icons/dvi.gif .dvi
#AddIcon /icons/uuencoded.gif .uu
#AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
#AddIcon /icons/tex.gif .tex
#AddIcon /icons/bomb.gif core
#AddIcon /icons/back.gif ..
#AddIcon /icons/hand.right.gif README
#AddIcon /icons/folder.gif ^^DIRECTORY^^
#AddIcon /icons/blank.gif ^^BLANKICON^^
#DefaultIcon /icons/unknown.gif
#ReadmeName README.html
#HeaderName HEADER.html
#IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t


ปิดการใช้งาน CGI (ในกรณีที่ไม่ใช้งาน)

หากเว็บเซิร์ฟเวอร์ไม่มีการใช้งาน CGI แนะนำให้ปิดคุณสมบัตินี้ออกไป วิธีการปิดคือใส่เครื่องหมาย # นำหน้า บรรทัดต่อไปนี้

ตัวอย่างการปิดการใช้งาน CGI โดยการใส่เครื่องหมาย # นำหน้าบรรทัด

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#<Directory "/var/www/cgi-bin">
#    AllowOverride None
#    Options None
#    Order allow,deny
#    Allow from all
#</Directory>


ปิดการใช้งาน Server-Side Includes (SSI)

หากไม่มีการใช้งาน Sever-Side Includes (SSI) แนะนำให้ปิดคุณสมบัตินี้ออกไป วิธีการปิดคือใส่เครื่องหมาย # นำหน้า บรรทัดต่อไปนี้

ตัวอย่างการปิดการใช้งาน Server-Side Includes (SSI) โดยการใส่เครื่องหมาย # นำหน้าบรรทัด

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มีนาคม 24, 2013, 23:37:25
เปลี่ยนรหัสผ่านให้ user root โดยการใช้คำสั่งเหล่านี้
shell# mysql -u root -poldpassword
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
หรือ
shell# mysql -u root -poldpassword
mysql> UPDATE mysql.user SET Password = PASSWORD('newpassword') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

-poldpassword คือใช้ option -p แล้วตามด้วยรหัสผ่านเดิม


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ พฤษภาคม 09, 2013, 14:12:24
การสร้างและแตกไฟล์ zip, tar, tar.gz and tar.bz2 บน Linux

ZIP

 เป็นนามสกุลที่นิยมและสนันสนุนหลาย platforms เช่น Linux, Windows, และ Mac OS

คำสังในการ ZIP คือ
#zip -r ชื่อไฟล์ ZIP ที่ต้องการ.zip ไดเรคทอรี่ที่ต้องการzip
ตัวอย่าง # zip -r archive_name.zip directory_to_compress
คำสั่งในการ UNZIP
# unzip  ชื่อไฟล์ ZIP ที่ต้องการ UNZIP ตัวอย่าง # unzip archive_name.zip

TAR

เป็นคำสั่งที่นิยมสำหรับระบบปฎิบัติการ Linux เป็นคำสั่งที่ใช้เวลาและ CPU น้อยในการบีบอัด
คำสั่งในการสร้างไฟล์ TAR
# tar -cvf archive_name.tar directory_to_compress
คำสั่งในการแตกไฟล์
# tar -xvf archive_name.tar.gz
และสามารถแตกไฟล์ไปยังคำสั่งอื่นๆได้โดยใส่ชื่อไดเรคทอรี่ที่ต้องการ
# tar -xvf archive_name.tar -C /tmp/extract_here/

TAR.GZ

เป็นคำสั่งที่บีบอัดไฟล์ได้ดีใช้พลัง CPU มาก

คำสั่งในการสร้างไฟล์
TAR.GZ


# tar -zcvf archive_name.tar.gz directory_to_compress

คำสั่งในการแตกไฟล์

# tar -zxvf archive_name.tar.gz

และสามารถแตกไฟล์ไปยังคำสั่งอื่นๆได้โดยใส่ชื่อไดเรคทอรี่ที่ต้องการ

# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
TAR.BZ2

เป็นคำสั่งที่บีบอัดไฟล์ได้ดีมากใช้พลัง CPU และเวลาในการบีบอัดมากกว่านามสกุลที่ผ่านๆมา
คำสั่งในการสร้างไฟล์


# tar -jcvf archive_name.tar.bz2 directory_to_compress

คำสั่งในการแตกไฟล์

# tar -jxvf archive_name.tar.bz2

และสามารถแตกไฟล์ไปยังคำสั่งอื่นๆได้โดยใส่ชื่อไดเรคทอรี่ที่ต้องการ

# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ พฤษภาคม 09, 2013, 14:32:38
ลบให้สิ้นซากใน Ubuntu

บางครั้งหลายท่านคงหงุดหงิดพราะการจะเอาอะไรออกจาก ubuntu บางครั้งมันออกไม่หมด ทำให้ไม่สามารถติดตั้งใหม่ได้ ลองวิธีนี้เลยครับ

sudo dpkg --get-selections | grep mysql

จะแสดงตัวปัญหาที่ยังค้างคาใจ
libapache2-mod-auth-mysql    deinstall
libdbd-mysql-perl    install
libmysqlclient16    install
mysql-client-5.1    install
mysql-client-core-5.1    install
mysql-common    install
mysql-server    install
mysql-server-5.1    install
mysql-server-core-5.1    install
php5-mysql    install

ลบมันทิ้งไปออกจากใจไม่ให้หลงเหลือ
sudo apt-get remove libapache2-mod-auth-mysql libdbd-mysql-perl libmysqlclient16 mysql-client-5.1 mysql-client-core-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1 php5-mysql


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ พฤษภาคม 20, 2013, 16:28:41
ตั้งเวลา CentOS 6.4

1. สั่งให้เทียบเวลาตรงตามสากลด้วยคำสั่ง sudo ntpdate pool.ntp.org

2.หากต้องการให้ตั้งเทียบเวลาทุกครั้งที่บูทเครื่อง
ให้เพิ่มเข้าไปในแฟ้ม /etc/rc.local ว่า /usr/sbin/ntpdate pool.ntp.org

3. หากต้องการให้ตั้งเทียบเวลาอัตโนมัติทุกวัน ให้สร้างแฟ้มชื่อ /etc/cron.daily/update-time มีข้อมูลว่า
#!/bin/bash
/usr/sbin/ntpdate pool.ntp.org
แก้ไขให้แฟ้มนี้สามารถ execute ด้วยคำสั่ง sudo chmod +x /etc/cron.daily/update-time
แล้วสั่งให้ cron ทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/crond restart

หากไม่ตั้งเทียบเวลาทุกวัน นาฬิกาจะเดินผิดพลาดไปวันละประมาณ 2 วินาที


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ พฤษภาคม 20, 2013, 16:29:53
vsftpd set 755 [upload file/folder]

file_open_mode=0777
local_umask=002




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 01, 2013, 16:57:31
ปรับแก้ ssh

มาทำกันเลยม่ะ
step 1: sudo aptitude install openssh-server > ติดตั้ง package สำหรับทำเครื่องเราให้เป็น ssh-server

step 2: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original > copy ไฟล์ config เก็บไว้ก่อนกันเหนียว

step 3: sudo chmod 555 /etc/ssh/sshd_config.original > ลงยันต์กันเหนียวให้ไม่ให้ใครมา write เล่น

step 4: sudo gedit /etc/ssh/sshd_config > เปิดไฟล์ config ขึ้นมาแก้อ่ะครับ

เนื้อหาข้างในก็จะประมาณนี้ครับ

 
Port 22 > หมายความว่ามันใช้ port เบอร์ 22 ในการ ssh (ถ้าเกิดอยากจะ secure ก็แก้ port เป็นเบอร์อื่นซะก็จะช่วยหลอกล่อ hacker ได้ระดับนึง)
 
PermitRootLogin yes > ถ้าไม่ต้องการให้ root สามารถ ssh เข้ามาได้ก็ตอบ no ซะ (เคยลองไม่ใส่ no แต่ใช้เป็นใส่ # หน้าบรรทัดแทน ปรากฎว่าไม่ workนะครับ ต้องใส่ no เท่านั้นถึงจะปิดการ ssh ของ root ได้อ่ะ)
 
PermitEmptyPasswords no > ถ้ายอมให้ user สามารถ login แบบไม่ต้องใส่ password ได้แก้เป็น yes ซะ (ของจริงผมลองเป็น yes มันก็ยังจะให้กรอก password อีกซะงั้น เซ็งเลยตู - -" )
 
#Banner /etc/issue.net > บรรทัดนี้ให้เอา # ออกซะถ้าต้องการให้มันขึ้น banner เตือน เวลา user เข้ามา login เช่น "Hey! login har papa khun lher" (คำที่เราต้องการให้มันขึ้น show เวลา user กะลัง login ให้ใส่ไว้ใน /etc/issue.net ครับ เคยใส่ภาษาไทยลงไปมันม่ะ work อ่ะ ต้อง english)
* banner มันจะขึ้นเตือนหลังจากกรอก username ไปแล้วนะ
 
step 5: แก้เสร็จก็ save ซะอย่าได้รอรี
 
step 6: sudo chmod 555 /etc/ssh/sshd_config > ป้องกันใครมา write ไฟล์เล่น
 
step 7: sudo /etc/init.d/ssh restart > restart service สักรอบ ไม่ restart มันจะจำค่า config เดิมนะบอกไว้ก่อน
* ปล. จริงๆแล้ว มันสามารถตรวจสอบ public key จาก user ก่อนถึงจะ login ได้ด้วยนะ แต่ติดไว้ก่อนนะขี้เกียจ แบบว่ายังไม่ได้ลอง function นี้อ่ะ

จบแล้วจ้า หวังว่าคงถูกใจเพื่อนๆนะ ^_^ อิอิ



credit: http://mrkohkoh.exteen.com/category/UBUNTU/page/5


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 18, 2013, 11:15:46
คำสั่งลินุกซ์ (Linux Commands) อย่างง่ายๆ หรือขั้นพื้นฐาน ที่มีประโยชน์และสามารถนำมาใช้เพื่อตรวจสอบและแก้ไขปัญหาต่างๆได้ โดยเป็นคำสั่งที่ทดสอบกับ Linux ตระกูล Redhat, CentOS และ Fedora พวกๆนี้นะครับ แต่จริงๆแล้วคำสั่งเหล่านี้เป็นคำสั่งพื้นฐานจริงๆผมว่าใช้ได้กับ linux ทั้งหมดมั้งครับ

1. คำสั่งสำหรับตรวจสอบ Linux เวอร์ชั่น
#cat /proc/version

2. คำสั่งสำหรับตวจสอบ Linux Distribution
#cat /etc/issue

3. คำสั่งตรวจสอบ CPU แสดงทั้ง Model และ Speed
#cat /proc/cpuinfo

4. คำสั่งตรวจสอบ Memory หรือ RAM จากตัวอย่าง -m หมายถึง Mb ถ้าเปลี่ยน m เป็น g จะแสดงเป็น Gb , -t คือแสดง Total ด้วย
#free -mto

5. คำสั่งเกี่ยวกับ Directory
#cd / คือ ไปที่ directory top สุด
#cd – คือ ย้อนกลับไปที่ Directory ก่อนหน้า เช่น ตอนแรกอยู่ที่ /etc/init.d/ แล้วไปที่ Directory /var/log/ ถ้าใช้ cd – จะมาอยู่ที่ /etc/init.d/
#cd.. คือ ย้อนกลับไป Directory บนหนึ่งลำดับ เช่น จาก /var/www/html ถ้าใช้ cd.. จะมาอยู่ที่ /var/www/
#pwd คือ แสดงตำแหน่ง Directory ที่เราอยู่

6.  คำสั่งดูย้อนหลังว่าใช้คำสั่งนั้นๆไป เท่าไหร่ เท่าไหร่
#history | grep <some command name> เช่น history | grep cd

7. คำสั่งสำหรับดู size ของ Directory
#du -sh /var/www/html/ คือ แสดง size ภายใน Directory /var/www/html/

8. ปกติเราจะใช้ man เพื่อดูว่าคำสั่งนั้นใช้ทำอะไรได้บ้าง แต่คำสั่งนี้จะดูว่า อะไรบ้างใช้คำสั่งใดได้ งงมั้ยครับ ตัวอย่างเช่น ผมอยากรู้คำสั่งที่เกี่ยวกับ directory ผมก็ใช้คำสั่งนี้ครับ
#apropos <search phrase> เช่น #apropos directory

9. คำสั่งเปรียบเทียบไฟล์สองไฟล์ ที่มีการแก้ไขค่าไป อาจจะเป็นกรณีแก้ไฟล์คอนฟิกใหม่ เทียบกับคอนฟิกเดิม
#diff config.php config.php.old คือ จะเป็นการเทียบบรรทัดต่อบรรทัดเลยครับ

10. เปรียบเทียบ 2 directory
#diff –urp /old-directory /new-directory

11. หาไฟล์ที่ขนาดมากกว่า 10 M
#find . -size +10M -exec du -h {} \;

12. ค้นหาข้อความในไฟล์ จากตัวอย่าง ข้อความ “matt mullenweg” ในไฟล์ที่เป็น .php
#find . -name “*.php” -exec grep -i -H “matt mullenweg” {} \;

13. โชว์ Process ที่ใช้ CPU สูง แล้วก็ kill มันด้วยคำสั่ง kill -xxx (xxx คือ id)
#ps aux | sort -nrk 3 | head

14. คำสั่งดู load cpu และอื่นๆ (ใช้คำสั่ง top แล้วกดปุ่ม shift+M เพื่อดูรายชื่อ Process ที่ใช้หน่วยความจำสูงสุดจากมากไปน้อย)
#top

15. คำสั่งเกี่ยวกับ Network เช่น
#ifconfig -a คือ แสดง Network Interface เช่น สถานะ ไอพี เป็นต้น
#dhclient eth1 คือ คำสั่งร้องขอไอพีที่ interface eth1 ใหม่
#netstat คือ คำสั่งดูการสื่อสารข้อมูลระหว่างเครื่องเรากับเครื่องอื่น สามารถเพิ่มพารามิเตอร์ตามได้ เช่น -I หรือตามด้วย ?  เพื่อดูคู่มือ


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ มิถุนายน 29, 2013, 11:45:44
หยุดการส่งเมล turn off /var/spool/mail/root

ปกติเวลาทำอะไรกับระบบมักจะมีข้อความแจ้งเข้ามาว่า

You have new mail in /var/spool/mail/root

เคยลองเข้าไปตรวจสอบกันบ้างไหนครับว่าเจ้าไฟล์ตัวนี้มันขนาดใหญ่แค่ไหน (10GB อะไรจะเยอะปานนี้)
งั้นมาปิดการส่งเมลกัน
ใช้อะไรก็ได้ตามถนัด สะดวก vim, nano, vi

โค๊ด:
nano /etc/crontab

ให้เอาตรง MAILTO=root ออกซะ โดยใส่ # เข้าไปข้างหน้า หรือลบไปเลยก็ได้ ก็จะเป็น

โค๊ด:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
HOME=/

หลังจากนั้นสั่งรีสตาร์ทสักรอบ

โค๊ด:
/etc/init.d/crond restart

จากนั้นทำการลบข้อมูลในไฟล์  /var/spool/mail/root  ไม่ได้ลบไฟล์แล้วสร้างใหม่นะครับ โดยใช้คำสั่ง

โค๊ด:
cat /dev/null > /var/spool/mail/root

เป็นอันเรียบร้อย เสร็จพิธี


ขอขอบคุณ google แหละความรู้ชั่นยอด


[/size]


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ สิงหาคม 02, 2013, 10:57:16
ตั้งเวลา reboot shutdown ด้วย crontab

crontab บน Linux
====================
 คำสั่ง crontab เป็นคำสั่งในการทำ schedule ในการสั่งโปรแกรม หรือ script ต่างๆ ทำงานตามเวลาที่กำหนด บนระบบ UNIX/LINUX
ซึ่งอำนวยความสะดวกได้มากเลยที่เดียว งานบางอย่างที่จำเป็นต้องทำซ้ำๆในเวลาเดียวกัน ไม่ว่าจะทุกวัน ทุกสัปดาห์ หรือ ทุกเดือน

การใช้งาน crontab
------------------------
คำสั่งและ option ของ crontab มีดังนี้
Code:

crontab filename        การนำเอาคำสั่ง crontab เข้ามาจาก ไฟล์อื่น
crontab -e                    แก้ไข crontab ปัจจุบัน
crontab -l                    ดูคำสั่ง crontab ทั้งหมดที่มีอยู่
crontab -r                   ลบคำสั่ง crontab ที่มีทั้งหมด
crontab -u user            เป็นคำสั่งของผู้ดูแลระบบเท่านั้น(administrators) เพื่อใช้ดู  แก้ไข ลบ crontab ของ user แต่ล่ะคน
 

 เมื่อเรียกคำสั่งตามข้างบนแล้ว crontab จะเข้าสู่ระบบการ กำหนด หรือ แก้ไข ซึ่งการ กำหนด หรือแก้ไขนี้ จะเหมือนกับการใช้งาน vi ครับ
ถ้าใครเคยใช้งาน vi แล้วก็จะไม่มีปัญหาอะไร ถ้าไม่เคยใช้ ก็ดูคำสั่งพื้นฐานของ vi ด้านล่างนะครับ
เมื่อเรียกโปรแกรม crontab ให้ทำงานและขณะอยู่ในโปรแกรม เราสามารถกดคีย์ ดังต่อไปนี้เพื่อ
Code:

    Esc     เพื่อออกมาสู่โหมดปกติ
    i         เพื่อการเพิ่ม คำสั่ง ข้อความ เข้าไปใหม่
    x        ลบ ตัวอักษรที่ cursor  วางอยู่ ทีละอักษร ในโหมดปกติ
    dd      ลบบรรทัด ทั้งบรรทัด ที่ cursor วางอยู่ทีละแถว ในโหมดปกติ
   :q!      ออกโดยไม่ต้องแก้ไขอะไร
   :wq!    เก็บบันทึกข้อความที่แก้ไขแล้วออกจากโปรแกรม
 คำสั่งเหล่านี้เป็นแค่บางส่วนเท่านั้น แต่ก็พอใช้งานคำสั่ง crontab แล้วล่ะครับ ถ้าใครอยากได้มากกว่านี้ต้องศึกษาเพิ่มเอาอีกที

การกำหนดให้ crontab ทำงาน
-------------------------------------
format ของคำสั่ง crontab มีทั้งหมด 6 fields เป็นดังบรรทัดข้างล่าง
Code:

minute(s) hour(s) day(s) month(s) weekday(s) command(s)

fields 1-5 เป็นการกำหนดเวลา และ field ที่ 6 เป็นการกำหนดคำสั่ง ดังความหมายของแต่ละ fields ดังต่อไปนี้
Code:

...
Field                มีค่า       รายละเอียด
...
minute               0-59          เวลาเป็นนาที จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
hour                0-23          เวลาเป็นชั่วโมง จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
day                1-31          เวลาเป็นวัน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
month               1-12          เวลาเป็นเดือน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง
weekday          0-6         วันของแต่ละสัปดาห์ มีค่าดังนี้ (อาทิตย์ = 0, จันทร์ = 1, อังคาร = 2, พุธ = 3, พฤหัส = 4, ศุกร์ = 5 และ เสาร์ = 6)
command       คำสั่ง          เราสามารถกำหนดคำสั่งได้มากมาย รวมทั้ง script ต่างๆ ตามที่เราต้องการ       
...
 
ตัวอย่างการกำหนด crontab
---------------------------------
 การเพิ่ม crontab โดยเรียกใช้คำสั่ง crontab -e เมื่อเข้าสู่โปรแกรมแล้ว กด i เพื่อเพิ่ม คำสั่งดังตัวอย่างด้านล่างนี้เข้าไป แล้วทำการบันทึก
แล้วออกมาโดยกด Esc แล้วกด :wq!
Code:
0 2 * * * /sbin/shutdown -r now

จากคำสั่งด้านบนจะเป็นการสั่งให้ reboot เครื่อง เวลา 2:00 น. ของทุกๆวัน

Code:
0 23 * * * /sbin/shutdown -h now
จากคำสั่งด้านบนจะเป็นการสั่งให้ shutdown เครื่อง เวลา 23:00 น. ของทุกๆวัน

Code:
0 0 * * 1 /home/tuxzilla/getlogs.pl
จากคำสั่งด้านบน จะทำการ Run script getlogs.pl ที่ path /home/tuxzilla ทุกวันจันทร์ ทุกๆเดือน ตอนเที่ยงคืน

Code:
0 0 * * 1,5 /home/tuxzilla/getlogs.pl
 คำสั่งนี้เหมือนคำสั่งด้านบนครับ แต่จะเพิ่มการทำงานในวันศุกร์ด้วย ซึ่งเราสามารถใช้ "," คั่นไปเรื่อยๆได้ เพื่อที่จะกำหนดเพิ่มให้แต่ล่ะ fields หรือใช้ "*"
เพื่อการกำหนดเป็นทั้งหมด(หมายความว่า หากที่ field ชั่วโมง เป็น * ก็หมายความว่าต้องทำงานทุกชั่วโมง)

 ถึงจะมีหลาย user ในเครื่องเดียวกันแต่ยังไง crontab ก้ยังเป็นของใครของมันไม่กวนกันครับ และไม่สามารถดูของกันและกันได้ นอกจากเป็น
ผู้ดูแลระบบครับ ถึงตรงนี้แล้วก็คงไม่มีอะไรยากเกินกว่าแล้ว หากแต่ความสะดวกเท่านั้นที่จะมาแทนที หรือใครจะเอามาเป็นนาฬิกา อย่างผมก็ไม่ว่าครับ

คำสั่งเพิ่มเติมที่ควรรู้
------------------------
man crontab
man cron
man at
man batch

หลังจาก แก้ไข crontab แล้ว ก็สั่ง restart cron โดยใช้
service crond restart


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ ธันวาคม 11, 2013, 11:43:36
CentOS ลีนุกซ์อัปเดทเป็นเวอร์ชั่น 6.5 แล้ว

หลังจากปล่อยลีนุกซ์รีลีส 6.4 มาเกือบปี ทางทีมพัฒนา CentOS ได้อัปเดทเป็นรีลิส 6.5 เมื่อวันที่ 1 ธันวาคม 2556 ช่วงที่เกิดสถานการณ์ประท้วงในกรุงเทพฯ พอดี เลยไม่ค่อยมี Admin ท่านใดติดตามข่าว เนื่องด้วยสถนะอินเทอร์เน็ตแถวตึก CAT บางรัก สำหรับ CentOS 6.5 ได้ทำการเปลี่ยน และอัปเดทแพ็กเกจใหม่หลายตัวด้วยกัน OpenSSL, NSS, KVM, python-qmf, ฯลฯ และอัปเดท VirtualBox เป็น 4.3.4

สำหรับสาวก CentOS Linux สามารถดาวน์โหลดได้จากลิงค์เหล่านี้
-http://mirrors.bangmodhosting.com/centos/6.5/isos/x86_64/
- http://mirror1.ku.ac.th/centos/6.5/isos/x86_64/
- http://mirrors.thzhost.com/centos/6.5/isos/x86_64/
- http://mirrors.psu.ac.th/pub/centos/6.5/isos/x86_64/

**ความสามารถใหม่ใน CentOS 6.5
1. รองรับ Precision Time Protocol (PTP)
2. อัปเดทเวอร์ชั่น OpenSSL เป็น 1.0.1
3.รองรับ TLS 1.1, TLS 1.2 ใน SSL และ NSS
4. ส่วนของ KVM สนบสนุน VMDK และ VHDX-Files
5. สนับสนุน CPU hot plugging
6. อัปเดทเครื่องมือ virt-v2v-/virt-p2v-conversion
7. อัปเดทไดร์ฟเวอร์สำหรับ Hyper-V และ VMware
8. อัปเดท LibreOffice เป็น 4.0.4
9. อัปเดท Evolution เป็น 2.32
** CentOS 6.5 เป็นการนำโค้ดต้นฉบับมาจาก Red Hat Enterprise Linux (EL) 6.5

เครดิต: @Arnut Ruttanatirakul

สำหรับการ update หากไม่ต้องการติดตั้งใหม่

[root@host1 ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[root@host1 ~]# yum clean all
[root@host1 ~]# yum update -y
[root@host1 ~]# reboot
[root@host1 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)

หรือ
[root@host1 ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m

ลองดูกันนะครับ


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ สิงหาคม 04, 2014, 13:28:42
เกี่ยวกับการตั้งค่า lease-time บน Linux

กำหนดระยะเวลาให้หมายเลข IP Address ที่เครื่องลูกข่ายได้รับไปจะหมดอายุในระยะเวลาเท่าไหร่มีหน่วยเป็นวินาที (seconds) ยกตัวอย่างเช่น ต้องการให้ได้ 1 วัน ต้องกำหนด 1 วัน = 24 ชั่วโมง 1 ชั่วโมง = 60 นาที 1นาที = 60 วินาที รวมแล้วคิดด้วยสูตร 24*60*60 = 86400 (ศึกษาให้ดีนะครับก่อนปรับแต่ง จากประสบการณ์ หากกำหนดระยะเวลาน้อยเกินปัญหาที่จะพบ คือ IP Address อาจชนได้)


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ สิงหาคม 12, 2014, 14:36:06
ปิด firewall บน Ubuntu Server 12.0.x up

คำสั่ง sudo ufw disable
เสร็จแล้ว reboot 1 ครั้ง


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ สิงหาคม 12, 2014, 14:38:42
[Linux] Copy File&Folder to Another Server

ก๊อปปี้ไฟล์และโฟลเดอร์ ไปยังเครื่องแม่ข่ายอื่น

login สิทธ์ root เข้าเครื่องต้นทางที่จะก๊อปปี้

รูปแบบคำสั่ง
scp -r sourcedir/ user@dest.com:/dest/dir/

ตัวอย่าง
root# scp -r /data/users/staff/* root@192.168.1.100:/home/files/abc

เครื่องจะให้ยืนยัน พิมพ์ yes
ใส่รหัสผ่านสิทธิ์ root เครื่องปลายทาง :
เริ่มก๊อปปี้


หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ กันยายน 10, 2014, 08:16:09
แก้ owncloud error

Cannot write into "config" directory!
This can usually be fixed by giving the webserver write access to the config directory.

#sudo chown -R <php-user>:<php-user> /path/to/your/webservers/document-root/owncloud

#sudo chown -R www-data:www-data /var/www/owncloud

#chown -R http:http /path/to/your/owncloud

#chown -R apache:apache /path/to/your/owncloud




หัวข้อ: Re: บันทึกการติดตั้ง Linux
เริ่มหัวข้อโดย: ชายคนหนึ่ง ที่ ตุลาคม 25, 2014, 11:22:04
การจัดการบริการหรือ Services บนระบบปฏิบัติการ CentOS Linux รีลีสเก่าๆ (CentOS 6.x ลงมา) ในการจัดการบริการต่างๆ จะใช้รูปแบบดังนี้

การเปิดและปิดบริการ
# service service_name start/stop/restart

การเปิดใช้งานบนบู๊ตระบบ
# chkconfig service_name on/off
# chkconfig -list

ใน CentOS Linux 7.0 และ RHEL 7.0 ขึ้นมาจะใช้การควบคุมบริการด้วย Systemd แทน ดังนั้นการควบคุมบริการทั้งหมดจะถูกเปลี่ยนแปลงไป โดยการจัดการบริการทั้งหมดจะใช้คำสั่ง systemctl แทนคำสั่ง service และ chkconfig ที่ใช้ในรีลีสก่อนหน้า โดยในปัจจุบันมีระบบปฏิบัติการหลายตัวได้หันมาใช้งาน Systemd

ระบบปฏิบัติการที่เปลี่ยนมาใช้งาน Systemd
- Arch Linux / October 2012
- CentOS Linux เวอร์ชั่น 7.0 ขึ้นไป / July 2014
- CoreOS / July 2013
- Debian GNU/Linux / April 2012
- Fedora เวอร์ชั่น 15 ขึ้นไป / May 2011
- Frugalware Linux เวอร์ชั่น 1.5 ขึ้นไป / August 2011
- Gentoo Linux / 2011
- Mageia เวอร์ชั่น 2.0 ขึ้นไป / May 2012
- openSUSE เวอร์ชั่น 11.4 ขึ้นไป / March 2011
- Red Hat Enterprise Linux เวอร์ชั่น 7.0 ขึ้นไป / June 2014
- Sabayon Linux เวอร์ชั่น 13.08 ขึ้นไป / August 2013
- Ubuntu เวอร์ชั่น 13.04 ขึ้นไป / April 2013

คำสั่งการใช้งานของ Systemd โดยมีรายละเอียดคำสั่งคร่าวๆ ดังนี้
การตรวจสอบรายชื่อบริการ (List all running services )

# systemctl

การเปิดบริการ (Activates a service)
# systemctl start service_name
ตัวอย่าง เช่น
# systemctl start httpd

การปิดบริการ (Deactivates a service)
# systemctl stop service_name
ตัวอย่าง เช่น
# systemctl stop httpd
# systemctl stop iptables
# systemctl stop ip6tables

การปรับใช้งานบริการใหม่ (Reload a service)
* ใช้ในกรณีหลังการปรับแต่งค่าบริการหรือ config file โดยไม่ให้รบกวนบริการที่กำลังทำงานอยู่
# systemctl reload service_name
ตัวอย่าง เช่น
# systemctl reload httpd

การเรียกใช้งานบริการใหม่ (Restarts a service)
# systemctl restart service_name
ตัวอย่าง เช่น
# systemctl restart httpd

การเริ่มบริการที่มีอยู่แล้วให้ทำงานใหม่ (Restarts if the service is already running)
# systemctl condrestart service_name
ตัวอย่าง เช่น
systemctl condrestart httpd

การตรวจสอบดูสถานะของบริการ (Shows status of a service)
# systemctl status service_name
ตัวอย่าง เช่น
# systemctl status httpd
# systemctl status iptables

การเปิดใช้งานบริการตอนบู๊ตระบบ
การเปิดบริการตอนบู๊ตเครื่อง (Enables a service to be started on bootup)
# systemctl enable service_name
ตัวอย่าง เช่น
# systemctl enable httpd

การปิดบริการตอนบู๊ตเครื่อง (Disables a service to not start during bootup)
# systemctl disable service_name
ตัวอย่าง เช่น
systemctl disable httpd

การเปิดบริการแบบ Manual (masked)
# systemctl mask service_name
ตัวอย่าง เช่น
# systemctl mask dovecot

การตรวจสอบว่าบริการที่มีอยู่ถูกเปิดใช้งานอยู่หรือไม่
# systemctl is-enabled service_name
หรือ
# systemctl is-enabled service_name; echo $?
โดยที่
0 มีการเปิดใช้งาน
1 มีการปิดการใช้งาน
ตัวอย่าง เช่น
# systemctl is-enabled httpd
masked
# systemctl is-enabled httpd ; echo $?
masked
1

เปรียบเทียบคำสั่ง CentOS 6.x down vs CentOS 7.x up
service service_name start = systemctl start service_name
service service_name stop = systemctl stop service_name
service service_name restart = systemctl restart service_name
service service_name reload = systemctl reload service_name
service service_name status = systemctl status service_name
chkconfig service_name on = systemctl enable service_name
chkconfig service_name off = systemctl disable service_name
chkconfig --list service_name = systemctl is-enabled service_name
chkconfig --list = systemctl list-unit-files --type=service
--

ที่มา:
- http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities
- https://fedoraproject.org/wiki/Systemd
- http://www.freedesktop.org/software/systemd/man/systemctl.html
- http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet



Write by Arnut Ruttanatirakul, Ph.D.
 See more at: http://www.sysadmin.in.th/node/309