2009-06-26 39 views

Trả lời

7

Giả sử một giống như UNIX hệ điều hành bạn có thể thiết lập một công việc định kỳ mà chỉ vào một kịch bản shell như sau:

#!/bin/sh 
cd [source directory] 
ftp -n [destination host]<<END 
user [user] [password] 
put [source file] 
quit 
END 

Tùy thuộc vào giá trị mặc định ftp client của bạn và loại tập tin nguồn mà bạn có thể cần phải xác định binary trước put.

1

Có thể bạn đang tìm kiếm một chương trình có tên "mong đợi" được thiết kế để xử lý các quy trình tương tác.

http://expect.nist.gov/

Nếu bạn có "cron", bạn có thể đã có "mong đợi" là tốt, những ngày này.

0

Chỉ cần tạo công việc CRON của bạn để gọi WGET để tải lên hoặc tải xuống tệp của bạn qua FTP!

+0

Thực ra, bạn muốn sử dụng wput (http://wput.sourceforge.net/) để đặt nội dung trên máy chủ từ xa. – tomzx

2

Bạn có thể sử dụng ncftp - họ có một công cụ tiện dụng được gọi là "ncftpput"

Nó là dễ dàng hơn sau đó sử dụng mong đợi - nó chỉ là một lệnh duy nhất với mã trở lại hữu ích.

1

Lập lịch cuộc gọi tập lệnh từ cron.
Trong kịch bản,

  • Sử dụng Public Key Authentication để mở một giao tiếp Secure FTP với máy chủ của bạn
  • Thực hiện một tập tin thực thi của PUT s đến máy chủ của bạn (có một tùy chọn -b trong sftp)

Đối với điều này,

  • bạn sẽ cần phải thiết lập p xác thực khóa công khai giữa máy chủ và máy khách của bạn.
  • bạn sẽ cần một máy khách sftp trên máy khách (có khách hàng cho tất cả các nền tảng - PuTTY, Winscp.net, các biến thể Unix thường có cài đặt này).
  • cuối cùng, hãy thử các PUT bằng tay với chứng thực khóa công khai và ghi lại các lệnh - bạn có thể viết chúng ra vào tập tin thực thi cho tự động hóa

Một số lưu ý khác.

  • expect là quá mức cần thiết cho yêu cầu này.
  • More kết thúc, bất kỳ chương trình mà yêu cầu mật khẩu để được kịch bản là xấu
  • ncftp là tốt cho một phiên tương tác (không phải như vậy tự động hóa)
  • Tôi không biết nếu wput cho phép xác thực khóa công khai (có thể là không), trong trường hợp nó không tốt cho việc tự động hóa như vậy, hoặc là
Các vấn đề liên quan