วันจันทร์ที่ 25 กุมภาพันธ์ พ.ศ. 2551

shell script crontab(การตั้งเวลา)

การตั้งเวลา( crontab )เพื่อ run shell script

เข้าไปดูว่า มีรายการอะไร ถูกตั้งไว้บ้าง

$ crontab -l

เข้าไปทำการตั้ง job

$ crontab -e

format ในการตั้ง job ลักษณะการตั้ง job จะเหมือนเป็นการเข้าไปใน vi (text editor)

0 2 25 1 2008 /usr/local/freebc2/transfercampaign.sh


โดยที่

0 << minute
2 << hour
25 << day
1 << month
2008 << year

/usr/local/freebc2/transfercampaign.sh << path script file to run by crontab schedule



java parse String to Decimal

// java parse String to Decimal

String thaiStr = "ก - ฮ นกเอี้ยง abc ABC \n \t";
Character ch;
String strNum;
Integer intNum;

for(int i=0; i<thaiStr.length(); i++){
ch = thaiStr.charAt(i);

System.out.println(" Char at : " + i + " " + ch);

strNum = Integer.toHexString(ch);

System.out.println(" Code String to 16 : " + strNum);

intNum = Integer.valueOf(strNum, 16);

System.out.println(" Code 16 to 10 : " + intNum);
System.out.println(" ------------------------ ");
}

shell script mode vi

ในส่วนของ linux, unix จะมี editor สำหรับแก้ไข text file อยู่ ตัวนึง ชื่อ vi
โดนทำการ พิมพ์
$ vi (filename) (Enter)
หาก (filename) ไม่เคยมีอยู่จริงก็จะถูกสร้างขึ้น เมื่อเราทำการ save file หลังจากทำงานเสร็จด้วยคำสั่ง wq! ใน editor และหาก filename นั้นมีอยู่จริงก็จะเป็นการเข้าแก้ไข
การทำงานในส่วน text mode นี้ก็จะมี command ที่ใช้สำหรับแก้ไข เพิ่มเติม และ อื่น ๆ ได้แก่
(โดยส่วนใหญ่ จะมีก่อนที่จะ พิมพ์ command นี้ เราจะต้อง clear ระบบ ด้วยการกดปุ่ม Esc ไว้ก่อน)
1. i
ใช้สำหรับเริ่มต้น insert ข้อความลงไป
2. x
ใช้สำหรับลบข้อความในตำแหน่งที่ cursor อยู่ในขณะนั้น
3. dd
ใช้สำหรับ ลบข้อความทั้งบรรทัด ที่ cursor อยู่ในขณะนั้น
4. h
ใช้สำหรับ เลื่อน cursor ไปทางซ้าย 1 ตำแหน่ง
5. l
ใช้สำหรับ เลื่อน cursor ไปทางขวา 1 ตำแหน่ง
6. j
ใช้สำหรับเลื่อน cursor ลง 1 บรรทัด
7. k
ใช้สำหรับเลื่อน cursor ขึ้น 1 บรทัด
8. u
ใช้สำหรับต้องการ undo คือย้อนกลับในสิ่งที่ทำ 1 ครั้ง
9. w! (Enter)
ใช้สำหรับ save file ในขณะนั้น
10. wq! (Enter)
ใช้หรับหรับ save file แล้วออกจาก editor นั้น ๆ
11. /(data) (Enter)
ใช้ทำการ search data ใน file ขณะนั้น และเมื่อต้องการค้นหาต่อไป กดปุ่ม n
12. o
เป็นการ new line หรือแทรกขึ้นบรรทัดใหม่
13. q!
เป็นการออกจากระบบ หากว่าเรายังไม่ได้มีการ save แล้วเราออกด้วยคำสั่งนี้ file ที่เราเข้าไปแก้ไข หรือทำการสร้าง ก็จะไม่มีผลกระทบ หรือไม่ถูกสร้างขึ้นจริง
14. yy
เป็นการคัดลอง ข้อมูล ทั้งบรรทัด ที่่ cursor อยู่
15. p
เป็นคำสั่งต่อเนื่องจาก yy คือ paste บรรทัดถัดจาก บรรทัดที่ cursor อยู่
16. P
เป็นคำสั่งต่อเนื่องจาก yy คือ paste ในตำแหน่งที่ cursor อยู่
คำสั่งที่ใช้โดยทั่วไปก็จะมีประมาณนี้ครับ
----------------- END -----------------

วิธีแก้ไขให้ Folder Option กลับคืน และการกู้คืน regedit.exe

วิธีแก้ไขให้ Folder Option กลับคืน และการกู้คืน regedit.exe

1. Start >> Run >>
copy ข้อความข้างล่างนี้ และ Paste ลงไป ก่อนจะ Enter
REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f

2. Restart เครื่อง

3. Start >> Run >> Regedit เปิดตำแหน่งตามด้านล่าง
HKEY_CURRENT_USER>Software>Microsoft>Windows>CurrentVersion>Policies>Explorer
ในหน้าต่างด้านขวา ให้ลบ Folder ชื่อ NoFolderOptions = "dword:00000001"
หรือ ถ้าส่วนที่อยู่ใน “” ไม่เหมือนกัน ให้ดูแต่ชื่อข้างหน้า คือ
NoFoloderOptions (ลบทิ้งไป แล้ว Restart เครื่องอีกครั้ง) Folder Option ก็จะกลับมาเหมือนเดิม

shell script ทำการย้าย file ไปยังเครื่อง server

#shell script ทำการย้าย file ไปยังเครื่อง server หรือ เครื่องอื่น.

#!/bin/bash

#ประกาศ path ต้นทางที่จะทำการย้าย file.
LOCALDIR=/usr/local/log/

#ประกาศ path ปลายทาง ที่จะนำ file ไปไว้.
REMOTESERVER=192.168.XXX.XXX
REMOTEPATH=/usr/local/server/log/

#ชื่อ user login.
LOGIN=user

#password login.
PASSWORD=pass

#ไปยัง path ที่ต้องการย้าย file.
cd $LOCALDIR

#connect ไปยัง server ที่ต้องการย้าย file.
ftp -n $REMOTESERVER << INPUT_END

#1. login one line. 
#user $LOGIN $PASSWORD 

#2. login 2 line. 
quote user $LOGIN 
quote pass $PASSWORD 

#ไปยัง path server ที่ต้องการนำ file ไปไว้. 
cd $REMOTEPATH
prompt off 

#ย้ายทุก file ใน directory ปัจจุบัน ไปยัง server. 
mput *.* 

#logout server. 
exit 

INPUT_END 

เอามาเพิ่มเติมให้ครับ กรณีต้องการย้ายสำเนา file ทั้ง folder

ขั้นแรกก็ไปยัง path ปัจจุบันที่เราต้องการให้ file ที่เราต้องการมาวางไว้

และใช้คำสั่งดังนี้ครับ.
scp -r user@host:/the/path/ .

scp -r : คือคำสั่ง ที่เราจะใช้ copy ทั้ง folder
/the/path/ : คือ path folder ที่เราต้องการ copy


เพิ่มเติมอีกหน่อย (27/08/2010)
ตัวอย่าง stfp พร้อม ssh
#!/bin/bash

sftp $LOGIN@$REMOTESERVER:$REMOTEPATH <<EOF
mput *.* #or other command
bye 
EOF 

ssh $LOGIN@$REMOTESERVER <<EOT
cd $REMOTEPATH
./script.sh #or other command
exit 
EOT 


ในตัวอย่างที่เรายกมานี้ต้องใส่ pass word สองครั้ง คือตอนเรียกเพื่อ ftp file และตอน เรียกเพื่อ run script file