Google
 

Tuesday, February 24, 2009

export mysql บาง field

เมื่อวานมีคำถามมาว่า
พี่ครับ ผมต้องการ export ข้อมูลบาง field โดยใช้ mysql command ได้รึเปล่า

ลองค้น อาจารย์ กูเกิ้ล ได้คำตอบประมาณนี้

select a,b from tableA into outfile '/tmp/filename.csv' FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

ปล. ใช้ข้อมูล เสร็จ อย่าลืมลบ /tmp/filename.csv นะน้อง ^^

Friday, January 9, 2009

MailScanner Error

หลังจาก upgrade ClamAV เป็นเวอร์ชัน 0.94.2 แล้ว MailScanner ก็ขึ้น error ดังนี้

Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --unzip
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --jar
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --tar
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --tgz
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --deb
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --unrar
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --arj
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --lha
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --unzoo
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --max-ratio
Jan 9 00:00:11 name MailScanner[19103]: WARNING: Ignoring deprecated option --unrar

วิธีแก้ไข
/usr/local/libexec/MailScanner/clamav-wrapper
จากนั้น comment ExtraScanOptions="" และ comment บรรทัดอื่นๆ
เช่น ExtraScanOptions="$ExtraScanOptions --unzip"

จากนั้น restart MailScanner ใหม่

error จะหายไป

Monday, January 5, 2009

compile TUN/TAP ใน kernel ของ Gentoo

genkernel --menuconfig all

Device Drivers --->
Networking support --->
[*] Universal TUN/TAP device driver support

เมื่อ compile เสร็จเรียบร้อยแล้ว ให้ reboot

วิธีตรวจสอบว่า tun อยู่ใน kernel

dmesg |grep -i tun

tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky

Thursday, January 1, 2009

ป้องกัน RSI


โปรแกรมที่ช่วยเตือนให้หยุดพักสายตา พร้อมท่าออกกำลังกาย  ป้องกันโรค RSI

ปล. ควรปรับแต่ง Preference ให้เหมาะกับ lifestyle ของตัวเอง ไม่เช่นนั้น โปรแกรมจะชวนพักตลอด ^^

สนใจดาวน์โหลดได้ที่นี่ http://www.workrave.org/welcome/

Wednesday, December 10, 2008

ทำลายข้อมูล

การทำลายข้อมูลด้วยวิธี format ไม่เพียงพอสำหรับข้อมูลสำคัญๆ ที่มีชั้นความลับ (sensitivity) สูง
มีคำสั่งที่ใช้ในการทำลาย และไม่สามารถนำกลับมาใช้ได้ (หรือได้ก็คงจะต้องใช้พละกำลังมากโข)

ใช้คำสั่ง scrub -p dod /dev/(ชื่อ device)

-p dod คือ การ scrub แบบ compliant มาตรฐาน DoD 5220.22-M

อ่านรายละเอียด วิธีใช้เพิ่มเติมได้ที่นี่

http://www.cyberciti.biz/tips/linux-unix-make-retrieving-data-more-difficult.html

Wednesday, December 3, 2008

Get Today ด้วย Perl

มีคำถามมาว่า พี่ครับ เวลาจะดึงวันที่วันนี้ด้วย Perl ใช้ localtime รึเปล่า
คำตอบใช่ ไม่ต้องเสียเวลาเขียน เอา coding นี้ไป

## Getting today

@Today=localtime(time);
($tday,$mon,$year) = @Today[3,4,5];
$year += 1900;
++$mon;
$tday = zero($tday);
$mon = zero($mon);
$year = zero($year);

print "$year $mon $tday\n";

##sub routine for adding zero
sub zero {
if (length($_[0]) == 1) {
return '0'.$_[0];
}
else {
return $_[0];
}
}

Friday, November 14, 2008

เจอ Too many connections ทำงัยดี

เมื่อวานนี้ มีน้องมาปรึกษาว่า เว็บเซิร์ฟเวอร์ขึ้น error "Too many connections" แบบนี้

แก้ปัญหาโดยการเพิ่มจำนวน connection เข้าไป เนื่องจาก default ของ mysql จะกำหนดไว้ 100 connection (แหล่งอ้างอิง)

แก้ไขโดยเพิ่ม "set-variable=max_connections= n" ใน /etc/mysql/my.cnf โดยที่ n : คือจำนวน connection ที่เพิ่มขึ้น

จากนั้น restart mysql เป็นอันเสร็จ

Friday, September 14, 2007

แปลง timestamp

โจทย์ คือ pw_lastauth คือ timestamp นับจากปี 1/1/1970
เราใช้วิธีแปลง โดยใช้ from_unixtime ครอบ field นั้นอีกที

$query = "select field_A, from_unixtime(field_B_which_is_timestamp) as login_time from table_name where from_unixtime(field_B_which_is_timestamp) > '2006-12-31 23:59:59'";

เพียงเท่านี้ก็ได้เวลา ที่คนอย่างเราเข้าใจแล้ว

Wednesday, September 12, 2007

ถ่ายโอนไฟล์ ที่มีโคล่อน

มีไฟล์ที่มีรูปแบบ maillog-2007-07-20-05:35:32.gz ต้องการโอนถ่ายข้ามเซิร์ฟเวอร์ ใช้วิธีนี้

scp ./maillog*.gz username@hostname:path/

เหตุผล: The './' or the initial '/' makes it ignore the ':' until after the whitespace.

Sunday, September 9, 2007

ปัญหาในการเปิด vdo บนเน็ต

มีคำถามมาจากที่ทำงานว่า ให้บริการ vdo บนเน็ต โดยใช้ mms protocol
และ file เปิดด้วย windows media

พบปัญหาบางเครื่องเปิดได้บ้าง ไม่ได้บ้าง
วิธีแก้ไข

- เปิดโปรแกรม windows media
- คลิกเมนู Tools -> คลิก Options -> Network tab
(กรณีที่หา เมนู Tools ไม่พบ ให้กด CTRL+M)

- check ถูก ทุก boxes ที่ปรากฎในหน้า Network

ข้อมูลจาก:
http://www.microsoft.com/windows/windowsmedia/player/

สร้าง table

กรณีที่ต้องการสร้าง table ใหม่ โดยมีโครงสร้างเหมือน table เก่า

create table new_table as select * from old_table where field = 'ไม่เคย match';


การ import ไฟล์ เข้า database ใช้คำสั่งนี้

LOAD DATA INFILE 'path/file' INTO TABLE table_name FIELDS TERMINATED BY '|';


ขอบันทึกไว้กันลืม

Monday, September 3, 2007

Notepad Plus

โปรแกรม Notepad++ เป็นโปรแกรม editor โปรแกรมหนึ่ง สามารถรองรับหลายๆ programming Language โดย Notepad++ เป็น opensource โปรแกรมหนึ่ง (ฟรี)

File Test Operators

A file test. This unary operator takes one argument, either a filename or a filehandle, and tests the associated file to see if something is true about it. If the argument is omitted, tests $_, except for -t, which tests STDIN. It returns 1 for true and '' for false, or the undefined value if the file doesn't exist. Precedence is higher than logical and relational operators, but lower than arithmetic operators. The operator may be any of:

-r File is readable by effective uid/gid.
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.
-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.
-e File exists.
-z File has zero size.
-s File has non-zero size (returns size).
-f File is a plain file.
-d File is a directory.
-l File is a symbolic link.
-p File is a named pipe (FIFO).
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-u File has setuid bit set.
-g File has setgid bit set.
-k File has sticky bit set.
-t Filehandle is opened to a tty.
-T File is a text file.
-B File is a binary file (opposite of -T).
-M Age of file in days when script started.
-A Same for access time.
-C Same for inode change time.


The interpretation of the file permission operators -r, -R, -w, -W, -x and -X is based solely on the mode of the file and the uids and gids of the user. There may be other reasons you can't actually read, write or execute the file. Also note that, for the superuser, -r, -R, -w and -W always return 1, and -x and -X return 1 if any execute bit is set in the mode. Scripts run by the superuser may thus need to do a stat() in order to determine the actual mode of the file, or temporarily set the uid to something else.

Example:


while (<>) {
chop;
next unless -f $_; # ignore specials
...
}

Note that -s/a/b/ does not do a negated substitution. Saying -exp($foo) still works as expected, however--only single letters following a minus are interpreted as file tests.

Google Notebook

Notebook : เป็น feature ใหม่บน google สามารถนำมาบันทึกเพื่อเตือนความจำ
หรือ บันทึกข้อมูล ความรู้ ใหม่ๆ หรือ url อะไรก็ได้ แล้วแต่ประยุกต์ใช้
และเป็น Centralized Informaion ในสำหรับตัวเราได้ด้วย เพราะไม่ต้อง save
หลายเครื่อง ออนไลน์ที่ไหนก็เห็นสิ่งที่เราบันทึก ( ไม่แนะนำ
ในการบันทึกรหัสผ่าน หรือ ความลับ ใดๆ)

นอกจากนีสามารถติดตั้ง Google Notebook plug-in ใช้ร่วมกับ Firefox
ทีนี้จะเห็นข้อความที่เราบันทึกไว้ คิวงานต่างๆ ได้ เมื่อเปิด Firefox
เป็นการเตือนความจำ :)

Monday, August 13, 2007

แตกไฟล์ที่มีนามสกุล tgz

ขอบันทึกไว้ ดาวน์โหลดโปรแกรมมา ได้ไฟล์นามสกุล .tgz แล้วจะแตกได้อย่างไร
ใช้คำสั่ง tar บน unix

tar zxf filename.tgz

Thursday, August 9, 2007

ทำอย่างไรดี ติดตั้ง PHP บน FreeBSD ไม่ได้

มีน้องๆ ถามมาว่า ติดตั้ง package ใน port ของ FreeBSD ไม่ได้ แก้ไขได้อย่างไร

/usr/ports/lang/php5-extensions
www# make install
On FreeBSD before 6.2 ports system unfortunately can not set default X11BASE by
itself so please help it a bit by setting X11BASE=${LOCALBASE} in make.conf.
On the other hand, if you do wish to use non-default X11BASE, please set variable USE_NONDEFAULT_X11BASE.
*** Error code 1

Stop.

วิธีแก้ไข

สร้างไฟล์ /etc/make.conf แล้วใส่ ลงไป
X11BASE=${LOCALBASE}

เพียงเท่านี้ก็ติดตั้ง package ได้แล้ว

Sunday, July 29, 2007

ติดตั้ง syslog-ng บน FreeBSD

เมื่อติดตั้ง FreeBSD มี syslog ถ้าต้องการใช้ syslog-ng ซึ่งสามารถ customize log file name เป็น ชื่อ อื่นได้ จึงลองใช้ดู

เริ่มต้น

cd /usr/ports/sysutils/syslog-ng
make & make install


เมื่อติดตั้งเรียบร้อยแล้ว แก้ไขที่ /etc/rc.conf เพื่อให้เรียกใช้ syslog-ng แทน
โดยเพิ่มบรรทัดนี้
syslog_ng_enable="YES"


และต้องการยกเลิกตัว syslog เดิม โดยเพิ่มบรรทัดนี้ใน /etc/rc.conf
syslogd_enable="NO"


หลังจากนั้น kill process syslogd เดิม โดยใช้คำสั่งนี้

kill `cat /var/run/syslog.pid`


ทำการ copy /usr/local/etc/syslog-ng/syslog-ng.conf.sample ให้ /usr/local/etc/syslog-ng/syslog-ng.conf

cp /usr/local/etc/syslog-ng/syslog-ng.conf.sample /usr/local/etc/syslog-ng/syslog-ng.conf


ทำการ start syslog-ng โดยรันคำสั่งนี้

usr/local/etc/rc.d/syslog-ng.sh start

เพียงเท่านี้ก็ได้ใช้ syslog-ng ไว้จะมาพูดใหม่

sendmail:: QueueLA

ปัญหาของระบบ mail่ เข้ามาถึง queue บาง message id มีการบันทึกใน log แล้วว่ามี mail เข้ามา แต่ sendmail ไม่ deliver อีเมล์ออกไปที่ mailbox ระหว่างที่หาสาเหตุใช้วิธี force แต่ละ message id

sendmail -qI[message id] -v


ที่แก้ไขปัญหาโดย เพิ่มค่าของ QueueLA ให้สูงกว่า RefuseLA ซึ่งโดย default QueueLA =8 และ RefuseLA =12

google groups และ Reference

Why's Teknote?

จุดเริ่มต้นของ blog นี้ต้องการบันทึกและถ่ายทอดประสบการณ์ด้านเทคนิค หรือ สิ่งที่สนใจด้านเทคนิค สำหรับชื่อ blog เป็นการผสมระหว่าง techno + note แล้วนำมาตัดเหลือเพียงคำว่า technote ด้วยคำว่า techno เป็นคำที่ซ้ำ จึงหาคำที่มีความหมายเช่นเดียวกับ techno ได้คำว่า tekno ซึ่งเป็นภาษาดัซช์ จึงเป็นที่มา teknote