Solaris tương đương với lệnh Cygwin hoặc Windows Kiếm ftp -s: batch_cmd_file tựa


0

Tôi đang sử dụng tập lệnh FTP chạy bên dưới CygwinWindows cmdsử dụng -schuyển đổi dòng lệnh của ftp để đọc và thực thi các lệnh từ tệp bó:

ftp -i -s:/path/ftp.params 

Tệp bó ftp.paramđược tạo bởi một công việc khác và chứa các lệnh FTP tiêu chuẩn như:

OPEN my_address
my_login
my_password
GET file_a
GET file_b
BYE

Bây giờ tôi phải sử dụng tập lệnh ftp này trong Solaris, nhưng theo trang man ftp của nó , phiên bản Solaris ftpkhông chấp nhận chuyển đổi dòng lệnh -sđể thực thi một tệp bó.

Tôi đã tìm kiếm trong tài liệu đó và cả trên web, nhưng tôi không tìm thấy cách nào để đi. Bạn có gợi ý nào không?

Câu trả lời:


2

Tùy chọn đó dường như chỉ có sẵn cho máy khách windows ftp. Để có kết quả tương tự, bạn có thể cài đặt ứng dụng khách ftp mà bạn có thể viết kịch bản. NcFTP khá thân thiện với điều này. Wget cũng sẽ làm việc.

Với ncftp, bạn sẽ có một tệp với danh sách "nhận" và một tệp có thông tin đăng nhập nếu bạn không muốn nhập chúng mỗi lần. (Hãy nhận biết các rủi ro bảo mật liên quan)

Từ dòng lệnh bằng cách sử dụng bash, bạn có thể nhập đoạn mã sau vào tập lệnh hoặc chỉ chạy:

while read line
do
    ncftpget -f <FILEWITHCREDENTIALS> $line -bb
done < <FILEWITHLIST>
ncftpbatch -d

Tệp thông tin đăng nhập của bạn sẽ ở dạng

host <my_address>
user <my_login>
pass <my_password>

-bb gửi mỗi tệp dưới dạng một công việc hàng loạt đang chờ để chạy. Gọi ncftpbatch sẽ chạy công việc. Làm điều này sẽ giới hạn nó trong một kết nối.

Các tùy chọn khác sẽ là -b (chỉ cần khởi động công việc trong nền ngay lập tức) và bỏ cuộc gọi ncftpbatch và sử dụng tùy chọn người dùng / máy chủ / mật khẩu trong lệnh thay vì -f.

Bạn có thể tìm thấy ncftp ở đâyđây nếu nó chưa được cài đặt.

Đối với wget, bạn có thể sử dụng tập lệnh lặp tương tự và thay thế cuộc gọi ncftpget bằng

wget ftp://user:password@ftp.mydomain.com/path/$line

một lần nữa, nếu nó chưa được cài đặt, bạn có thể lấy wget ở đây hoặc với một trong hai chương trình tra cứu trình quản lý gói thích hợp cho phiên bản Solaris của bạn.

Bạn có thể tìm thêm thông tin về các chương trình với các trang man hoặc thông qua tìm kiếm trên web nhanh.


Cảm ơn @OldWolf! Tôi sẽ có một cái nhìn về điều đó. Mặc dù cuối cùng tôi cũng tìm được giải pháp hiệu quả, bạn có thể linh hoạt hơn và cũng thú vị với tôi đối với các nhiệm vụ khác không liên quan đến chủ đề này.
Shlublu

1
@Shlublu Không có vấn đề, rất vui nếu nó giúp!
OldWolf

1

Ok, tôi đã tìm thấy một giải pháp hoạt động.

Về cơ bản, thay vì mở trang web ftp từ xa từ tệp bó, tôi phải mở nó từ ftplệnh và sau đó sử dụng shell để cung cấp ftpcho tệp bó. Vì tôi luôn sử dụng cùng một địa chỉ ftp nên tôi có thể sống với nó.

Hạn chế thực sự duy nhất là điều này đòi hỏi phải sửa đổi tệp bó một chút, vì vậy công việc tạo ra nó.

  • Phần shell bao gồm thực thi ftplệnh theo cách sau:

    ftp -i -n my_address < /path/ftp.params
    
  • Và tệp bó nên được sửa đổi theo cách đó:

    USER my_login my_password 
    GET file_a
    GET file_b
    BYE
    
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.