Tuesday, March 3, 2009

Script FTP

ทำสคริปสำหรับ ftp ไฟล์บน server

# บล็อคของคนไทยเนี๋ย มีเนื้อหาสาระดีมากเลย
# จากที่เคยแวะไปอ่านหลายๆ ที่ซึ่ง ความรุ้ที่เค้าเขียนแบ่งปันไว้น่ะ มีแต่เรื่องน่าสนใจท้างนั้น ^^'
# บทความเนี๋ยก็นำมาจากบล็อคอื่นเค้าอีกที แล้วก็นำมาเขียนให้ตัวเองเข้าใจคนเดียวพอ
# ครั้งก่อนๆ เกี่ยวกับงานเขียน backup ฐานข้อมูลแหละ จะเก็บตัว bak ไว้ที่เครื่องเดียวกับ ฐานข้อมูลมันก็กระไรอยู่
# ตอนแรกคิดว่าต้องเขียนโปรแกรมเกี่ยวกับ network เพื่อไปดึง file.bak มาจาก server เลยหรือป่าวเรา
# คิดไปคิดมา ไม่ทำอ่ะ ขี้เกียจเขียนแหละ
# สิ่งที่ทำคือเข้าไป ftp แบบ manual เลย ^^'
# แต่วันก่อน ค้นหาข้อมูลเกี่ยวกับ schedule task ของ xp โชคดีไปเจอบทความเกี่ยวกับ script ftp

ก่อนอื่นเรามาเขียนสคริปก่อนเลย

 open "myservername/serverip"
  "%username%"
  "password"
  cd /upload
  bin
  hash
  put/get "filename.cab"
  bye


open <hostname/ip>
<user>
<password>
ascii
get filename
quit

2. สร้างไฟล์จาก pattern

# สมมุติ

host = 111.111.111.111
user = administrator
password = helo
file = a.bak

# เราต้องเขียนประมาณนี้

open 111.111.111.111
administrator
helo
ascii
get a.bak
quit

3. บันทึกไฟล์สิครับ สมมุติเราบันทึกเป็นชื่อ getftp.scr ไว้ที่ไดร์ d: (ชื่อและนามสกุลไฟล์อาไรก็ได้)

# ที่นี้ทดสอบเรียก script โดยเปิด command prompt พิมพ์ประมาณนี้

ftp -s:d:\getfile.scr

# หรือถ้าอยากเก็บ log ไว้ด้วยว่าสำเร็จหรือป่าว สำหรับ ftp ครั้งนี้ก็ใช้ > มาช่วยสิครับ

ftp -s:d:\getfile.scr > d:\ftplog.txt

ทีนี้เรามาสร้าง batch ไฟล์กัน

1. เปิด text editor อาไรก็ได้ขึ้นมาหนึ่งตัว นำคำสั่งที่เราได้ลองพิมพ์บน command prompt เมื่อตะกี้วางในไฟล์

ftp -s:d:\getfile.scr > d:\ftplog.txt

2. ให้เราทำการบันทึกสิครับเป็น .bat หรือ .cmd ก็ได้
3. ทดสอบ ftp script ของเราโดยคลิกไฟล์ .bat

Notes:
  • เราสามารถประยุกต์ใช้ในการนำไฟล์จากเครื่องเราไปวางที่ server ก็ได้นะคือ ใช้ put แทน get ไง
  • ถ้าเราต้องการให้ .bat ของเราทำงานก็นำไปใช้กับ schedule task ของ windows สิครับ
  • คิดว่าบน linux ก็น่าจะเขียน shell script ประมาณนี้ได้นะ

References:

No comments:

Post a Comment