ดาวน์โหลดและประมวลผลไฟล์โดย ftp ตามช่วงเวลาที่กำหนดพร้อมการจัดการข้อผิดพลาดการกำหนดเวลาใหม่และข้อความสถานะ


1

ฉันต้องการดาวน์โหลดไฟล์ข้อมูลจากเซิร์ฟเวอร์ ftp ระยะไกลไปยังเครื่องของฉันในช่วงเวลาปกติ เมื่อดาวน์โหลดไฟล์แล้วฉันต้องการเรียกใช้สคริปต์อื่นซึ่งจะประมวลผลไฟล์

เครื่องพัฒนาของฉันคือ mac os x สภาพแวดล้อมการปรับใช้ในที่สุดคือ linux

ในรายละเอียด:

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

สิ่งที่ฉันต้องการจะทำ:

ทุก ๆ หกชั่วโมงฉันต้องการดาวน์โหลดไฟล์ใหม่จากเซิร์ฟเวอร์ weather bureau ftp หากสิ่งนี้ล้มเหลวฉันต้องการ: ส่งอีเมลและกำหนดเวลาการดาวน์โหลดใหม่

หากการดาวน์โหลดยังคงล้มเหลวหลังจากหกชั่วโมงฉันต้องการหยุดพยายามรับไฟล์นี้เนื่องจากตอนนี้ควรมีไฟล์ใหม่ที่มีชื่อใหม่

เมื่อดาวน์โหลดไฟล์สำเร็จแล้วฉันต้องการเรียกเครื่องมือของฉันเพื่อประมวลผลไฟล์ หากเครื่องมือล้มเหลวเนื่องจากไฟล์เสียหายมันจะส่งคืนข้อผิดพลาดและฉันต้องการกำหนดเวลาไฟล์ใหม่เพื่อดาวน์โหลด

มาตรฐานหุ้นจะทำสิ่งนี้โดยอัตโนมัติอย่างไร

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

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

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

นั่นคือสิ่งที่ 'คาดหวัง' มีไว้เพื่ออะไร?

คุณจะแนะนำอะไร


บางทีนี่อาจจะได้รับการตอบสนองที่ดีขึ้นจาก cos ที่พวกเขารู้จักเกี่ยวกับเครื่องมือที่เกี่ยวข้องกับการเขียนโปรแกรม และถ้ามีการโยกย้ายที่นั่นฉันขอแนะนำอย่างดีที่สุดถ้าเป็นไปได้ทำอย่างใดอย่างหนึ่งในขณะที่ผสม (ผู้เขียนคำถาม) จะตื่นขึ้นและสิ่งต่าง ๆ ออนไลน์ตอบกลับอย่างรวดเร็วที่นั่นแล้วหลายคนอาจไปอย่างอื่น!
barlop

@barlop: ฉันไม่แน่ใจว่านี่เป็นข้อกำหนดการเขียนโปรแกรมที่บริสุทธิ์ - มีแนวโน้มที่สคริปต์หนึ่งจะรวมสตริงชุดคำสั่งมาตรฐานเข้าด้วยกัน
Linker3000

@ Linker3000 พวกเขาครอบคลุมเช่นกัน
barlop

คำตอบ:


1

อืมมันเป็นข้อมูลจำเพาะทั่วไปที่กว้างมากมันยากที่จะแม่นยำ

  • เครื่องทั้งหมดที่ให้ข้อมูลใช้งานกับ Linux หรือไม่ ถ้าเป็นเช่นนั้นให้ดูที่การใช้rsync (หรือscp ) เพื่อดึงไฟล์ข้อมูลลงมาเพราะจะช่วยลดความต้องการสคริปต์การถ่ายโอนไฟล์จำนวนมาก (ไม่ใช่ว่าจะมีมาก) และอาจไม่จำเป็นต้องคาดหวัง ซึ่งมักจะถูกสะดุดโดยข้อความหรือเหตุการณ์ที่ไม่ได้วางแผน

  • คุณไม่ได้บอกว่าต้องการ 'การประมวลผล' ในไฟล์ที่ดาวน์โหลด / ถ่ายโอนดังนั้นจึงยากที่จะแสดงความคิดเห็น

  • การจัดกำหนดการใหม่อาจถูกจัดการโดย cron หรือในกรณีที่เกิดข้อผิดพลาดในการถ่ายโอนเพียงแค่อ่านสถานะ rsync หรือสถานะการออกของ scp อาจเพียงพอ

  • ข้อความสถานะที่จะส่งเป็นอย่างไร หากผ่านอีเมลคุณสามารถใช้มาตรฐานคำสั่ง ' mail ' บรรทัดคำสั่งหรือมีเครื่องมือที่น่ารักที่สามารถส่งข้อความ SMS ผ่านโมเด็มที่แนบมา

ดูเหมือนว่าการเขียนสคริปต์แบบ bash จำนวนเล็กน้อยจะรวมกันเป็นคำสั่งมาตรฐานที่มากพอที่จะทำสิ่งที่คุณต้องการเพื่อที่คุณจะไม่ต้องยืมรหัสจากที่อื่น แต่ถ้าคุณสามารถทำอย่างละเอียดคุณจะ อาจได้รับคำตอบเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.