Skip to content

Engiblog.com

ก็แค่ engineer ที่อยากเขียน blog – Just a Simple engineer's blog.

Archive

Category: Linux tricks

เคยเจอไหมครับเวลา edit โค้ด อะไรซักอย่างด้วย editor (เช่น vim) จะเจอกัับข้อความ(ที่ไม่อยากจะเจอ) ดังนี้

E325: ATTENTION
Found a swap file by the name “.config.inc.php.swp”
owned by: root   dated: Wed Aug 25 12:12:43 2010
file name: /var/www/vhosts/xxxxxxxx.com/httpdocs/config.inc.php
modified: no
user name: root   host name: xxxxxx.com
process ID: 5133 (still running)
While opening file “config.inc.php”
dated: Wed Aug 25 13:54:53 2010
NEWER than swap file!
(1) Another program may be editing the same file.
If this is the case, be careful not to end up with two
different instances of the same file when making changes.
Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use “:recover” or “vim -r config.inc.php”
to recover the changes (see “:help recovery”).
If you did this already, delete the swap file “.config.inc.php.swp”
to avoid this message.
Swap file “.config.inc.php.swp” already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

E325: ATTENTIONFound a swap file by the name “.config.inc.php.swp”          owned by: root   dated: Wed Aug 25 12:12:43 2010         file name: /var/www/vhosts/xxxxxxx.com/httpdocs/config.inc.php          modified: no         user name: root   host name: xxxxxxxx.com        process ID: 5133 (still running)While opening file “config.inc.php”             dated: Wed Aug 25 13:54:53 2010      NEWER than swap file!
(1) Another program may be editing the same file.    If this is the case, be careful not to end up with two    different instances of the same file when making changes.    Quit, or continue with caution.
(2) An edit session for this file crashed.    If this is the case, use “:recover” or “vim -r config.inc.php”    to recover the changes (see “:help recovery”).    If you did this already, delete the swap file “.config.inc.php.swp”    to avoid this message.
Swap file “.config.inc.php.swp” already exists![O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

พอเจอแล้วก็งงเลยดิ มันขึ้นมาทำอะไร?

วิธีแก้ไม่อยากครับ อย่างเช่นผมใช้คำสั่งเรียก editor (vim) ไฟล์ config.inc.php

จะเจอกับข้อความด้านบนครับ สังเกตนิดนึงตรง

Swap file “.config.inc.php.swp” already exists!

มันบอกว่ามีไฟล์ที่เป็น swap file สร้างขึ้นมาชื่อ .config.inc.php.swp ถ้าไม่อยากเจอข้อความนี้อีกก็ให้

ลบไฟล์ชื่อดังกล่าวซะก็จะหมดปัญหาข้อความมากวนใจแล้วครับ


คำสั่งประจำวันนี้ขอนำเสนอ

คำสั่ง SCP (SCP command)

เป็นคำสั่งที่ใช้ในการส่งไฟล์จากเครื่องนึงไปอีกเครื่องนึง (Transfer file) ที่เป็น Linux หรือ Unix ครับ

วิธีการใช้งาน

scp filename username_remote@computername:filename_on_remote

รายละเอียดของคำสั่ง

filename คือ ชื่อไฟล์บนเครื่องเราที่ต้องการ Transfer

username_remote คือ username ของเครื่องที่เราจะต้องการ transfer ไฟล์ไป

computername คือ ชื่อเครื่องที่ต้องการจะ transfer ไฟล์ไประบุเป็น hostname หรือว่า IP ก็ได้

filename_on_remote คือ path ที่ต้องการเก็บไฟล์ และชื่อไฟล์ เช่น /home/username/test.txt

เป็นไงครับไม่ยากเลยใช่ไหมครับ ง่ายๆแต่มีประโยชน์อย่างแรงงงงงงงงง ผมใช้บ่อยยยยย

จริงๆแล้วก็ไม่มีอะไรหรอกครับ แค่พอดีมีลูกค้าคนนึงมา Onsite เพื่อ Setting Server แล้วจำเป็น

ต้อง Copy file ทับของเก่าหมดเลย เค้านั่งทำไปได้ซักพักเค้าก็หันมาถามว่า

“พี่ผมขี้เกียจตอบ Y เพื่อ Overwrite อ่ะครับ ทำไงดี มีคั้ง 10,000 กว่าไฟล์ผมมือหงิกพอดี

ผมก็ฮาเลยครับนั่นดิ เอางี้ครับใส่ –reply=yes ไปด้วยครับ เดี๋ยวมันก็จัดการเองอ่ะครับ

ตัวอย่างนะครับ

cp -rp * /data/ –reply=yes แค่นี้เองครับ จัดไปครับ มือจะได้ไม่หงิก

8.8.8.8 ผมไม่ได้มาใบ้หวยอะไรหรอกครับ พอดีนึกขึ้นได้ว่ามีของเล่นอีกตัวจากทางกูเกิล

ที่มันอาจจะไม่ใหม่แต่อาจจะมีบางคนที่ยังไม่รู้ หรือว่ายังไม่ได้ใช้งานกัน คือ

Free DNS หรือที่พี่กู(เกิล) เรียกว่า Public DNS เอาไว้ใช้งานกัน มีสอง IP นะครับ

จำกันง่ายมากๆ คือ IP: 8.8.8.8 และ IP: 8.8.4.4 ครับ

ส่วนวิธีการใช้งานก็ไม่อยากครับ

รายละเอียดของ Public DNS

http://code.google.com/intl/th-TH/speed/public-dns/

วิธีการใฃ้งาน Public DNS

http://code.google.com/intl/th-TH/speed/public-dns/docs/using.html

จากการใช้งานจริงก็โอเคดีนะครับ แต่ก็เสียวๆอยู่ว่า พี่กูเกิลแกจะแอบเก็บข้อมูลการใช้งาน

ต่างๆของผม หรือเปล่า ถ้าอย่างนั้นก็ตัวใครตัวมันล่ะครับ พี่น้อง engiblog อิ อิ

อยู่ดีๆวันนี้ก็งานเข้า เรื่องมันมีอยู่ว่า อยู่ดีก็มีลูกค้ารายนึงต้องการให้ Import ไฟล์ .sql เข้า MySQL

จริงๆแล้วมันไม่ยากหรอกครับที่จะ Import Database แต่มันติดตรงที่ว่า ไฟล์ sql เจ้าปัญหาตัวนี้

มีขนาดถึง 33MB ครับ sql ก็ประมาณ 20,000 กว่าบรรทัด ทำไงดีล่ะครับ เลยคิดได้อย่างนี้

1. เอาไป zip แล้ว import เข้าเลย หลังจากคิดแล้วก็ลอง ปรากฎว่า zip แล้วเหลือ 2MB กว่า

แต่พอเอาไป import แล้วก็ไม่ได้ timeout เสียก่อน ใจจริงอยากตั้ง timeout มากขึ้นแต่ไม่อยากไปเซ็ตเพิ่ม

เนื่องจากลูกค้าใช้งานกันหลายราย เลยไม่สำเร็จด้วยวิธีนี้ แต่ก็ได้รู้ว่าถ้าเรา import ไม่เสร็จ timeout เสียก่อน

สามารถสามารถ import ไฟล์เดิมอีกรอบ ซ้ำไปเรื่อยๆได้เลย ระบบ phpmyadmin จะทำต่อให้เอง แจ่มจริง

แต่ขี้เกียจรออ่ะ

วิธีต่อไป

2. เลยคิดถ้าเอาไฟล์ sql  import ที่เครื่อง notebook แล้วค่อยใช้โปรแกรม Navicat ช่วย copy database

ดีกว่า แต่ก็ทำไมได้เพราะว่าไม่ได้เปิด Policy Firewall สำหรับ port MySQL(3306) เลยจบกัน

วิธีสุดท้าย

3. คิดได้ว่าทำไมไม่ใช้ MySQL command มันใช้ได้นี่หว่า เลยจัดการใช้โปรแกรม WinSCP

เอาไฟล์ sql โยนไปบน MySQL server แล้วก็ใช่ MySQL command ดังต่อไปนี้

mysql -u username -p password –database=databasename < sqlfile.sql

แค่นี้แหละจบเลย ง่ายๆ

มี trick ฝากนิดหน่อย คือ

- u username และ -p password ทั้ง username และ password พิมติดกับ ตัว -u และ -p เลย

ไม่ต้องเว้นวรรค และถ้าตัว password มีตัวอักษรพิเศษก็ใช้วิธีการดังนี้ ‘password’ คือใช้ ‘ ‘

คร่อม password เลยครับ

แจ่มไหมล่ะครับบบบบบบบ

เนื่องจากหลังจากติดตั้ง MySQL ลงบน server เรียบร้อยแล้วก็เลยใช้อยากจะเปลี่ยน password ซักหน่อย

คำสั่งที่ใช้ในการเปลี่ยนไม่ยากเลยครับ มีดังนี้
mysqladmin -u root -p’oldpassword’ password newpass
แค่นี้เองครับ อยากได้ password อะไรก็จัดไปกันตามสะดวกครับ
แจ่มไหมครับ

ปล. Username และ Password default ของ MySQL หลังติดตั้งคือ
Username: root
Password: password

เนื่องจากคำสั่ง locate เป็นคำสั่งอีกอันที่ผมใช้งานบ่อยมากๆ เนื่องจากจำไม่ค่อยได้ว่า

ไฟล์ต่างๆ อยู่ที่ไหนในเครื่อง จึงเรียกใช้บ่อยๆ แต่เมื่อใช้งานแล้วเกิด

locate: can not open `/var/lib/mlocate/mlocate.db’: No such file or directory

เนื่องจากเพิ่งติดตั้ง OS ลงไปใหม่เลยยังใช้งานไม่ได้

วิธีแก้ไขปัญหา locate: can not open `/var/lib/mlocate/mlocate.db’: No such file or directory

ง่ายเลยครับพิมพ์คำสั่งนี้ลงไปได้เลยครับ updatedb ทีเดียวจบเลย

เป็นคำสั่งที่ให้ทำการ update database ของคำสั่ง locate ครับ

ปล. ผมใช้งาน CentOS 5.4 นะครับ

สงวนลิขสิทธิ์

สงวนลิขสิทธิ์ข้อความทั้งหมดบนเว็บไซต์ หากต้องการนำไปใช้งาน หรือเผยแพร่ต่อ กรุณาขออนุญาติกับทางผู้เขียน มิฉะนั้น "หากผู้ใดละเมิด ไม่ว่าการลอกเลียน หรือนำส่วนหนึ่งส่วนใดของที่นี่ไปใช้ โดยไม่ได้รับอนุญาติเป็นลายลักษณ์อักษร จะถูกดำเนินคดี ตามที่กฏหมายบัญญัติไว้สูงสุด"