คำถามของคุณประกอบด้วยคำถามสามข้อจริง:
1) วิธีดาวน์โหลดไฟล์ (ด้วย auth)
2) วิธีอัปโหลดไฟล์ (พร้อมรับรองความถูกต้อง)
3) วิธีกำหนดเวลางาน CRON
คำถามแรกของฉันคือคุณต้องการเก็บ id / passwd อย่างไร
โฆษณา 1) คุณสามารถใช้ทั้งสอง curl
และ wget
ขึ้นอยู่กับสิ่งที่ดีกว่าสำหรับกรณีการใช้งานของคุณ ฉันแนะนำให้อ่านโพสต์ที่ยอดเยี่ยมโดย Daniel Stenberg Curl vs Wget เพื่อทำความเข้าใจความแตกต่าง (สรุปอย่างรวดเร็ว - curl
เป็นนักพัฒนาที่เป็นมิตรมากขึ้นและยังเป็นห้องสมุด wget
เป็นคำสั่ง)
ฉันแนะนำให้ใช้ใบรับรองโดยไม่มีผู้ใช้ / รหัสผ่านเช่นทุกคนที่มีรหัสหรือกลุ่มของคุณจะปรากฏให้เห็น
ในตัวอย่างของฉันฉันจะใช้ curl
และใบรับรอง:
curl --cert certificate_file.pem https://example.com/example.xml
โฆษณา 2) เพื่ออัพโหลดไฟล์ curl -T example.xml --cert certificate_file.pem ftps://ftp.server.com/remotedir/
โฆษณา 3) รูปแบบ Cron:
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 2 12 * * /usr/bin/find
คุณเท่านั้น crontab -e
เพื่อแก้ไขไฟล์ crontab ของคุณ วิธีอื่น ๆ อาจทำให้ไฟล์เสียหายได้
หากคุณต้องการเรียกใช้ไฟล์ของคุณทุกวันพฤหัสเวลา 8:00 น. ให้ทำดังนี้:
0 8 1-31 1-12 4 /path/your_script.sh
หรือคุณสามารถทำได้ด้วย *
: 0 8 * * 4 /path/your_script.sh
.
หากคุณต้องการอ่านเพิ่มเติมทำได้ที่: การใช้งาน Cron และ Crontab และตัวอย่าง
ตอนนี้ใส่กัน:
#!/bin/bash
# $1 is your command line input (e.g. example.xml)
file_download=$1
file_upload=$2
actual_download="curl --cert certificate_file.pem https://example.com/$file_download"
eval $actual_download
if [ -e "$file_upload" ] then
actual_upload="curl -T $file_upload --cert certificate_file.pem ftps://ftp.server.com/remotedir"
eval $actual_upload
else
echo "The $file_upload does not exist!"
fi
จากนั้นคุณจะเรียกใช้งานไฟล์: your_script.sh /path/example_download.xml /path/example_upload.xml