Có cách nào để viết một tập lệnh để đăng nhập ftp để tôi không phải gõ đi viết lại nhiều lần không?


6

Gần đây tôi đang làm việc rộng rãi với một hệ thống từ xa thông qua kết nối ftp, vì thời gian phiên quá ngắn nên tôi phải đăng nhập lại khá thường xuyên khi tôi hoàn thành công việc của mình trên máy cục bộ, vì vậy tôi cần một cách để tạo lệnh tùy chỉnh / shell script để đăng nhập vào máy chủ ftp chỉ với một từ, nhưng câu hỏi là làm thế nào để làm điều đó.

ví dụ

~$ ftp domainname.com
 ...
 Name (domainname.com): MyName
 ...
 Password: xxxx
 ...
 ftp>

1
Chỉ là một câu hỏi, tại sao ftp và không ssh? ssh an toàn hơn nhiều và đăng nhập như thế này sẽ chỉ là một bí danh bash đơn giản
n0pe

1
Ngoài ra, với SSH, bạn cũng có thể sử dụng các khóa xác thực, nó sẽ tự động đăng nhập bạn mà không phải lưu tên người dùng / mật khẩu của bạn trong một .bashrctệp dưới dạng văn bản thuần túy.
sbtkd85

tốt, tôi cho rằng hệ thống từ xa có hỗ trợ cho ssh, nhưng nó không.
Rn2dy

Câu trả lời:


9

Thông thường, các ftpmáy khách dòng lệnh hỗ trợ tệp cấu hình ~/.netrcnơi bạn có thể định cấu hình thông tin đăng nhập cho các hệ thống từ xa, ví dụ:

machine legacy.system.example.org
login juser
password keins

Khi ftp legacy.system.example.orgđó bạn không phải gõ lại thông tin này nữa.

Nếu bạn cần tự động hóa nhiều hơn, bạn có thể tạo kịch bản ftpthông qua các lệnh đường ống vào nó, ví dụ:

$ cat pushit.sh
# complex logic to set
# EXAMPLE_FILE=
ftp <<EOF
prompt
mput $EXAMPLE_FILE
quit
EOF

Chắc chắn, nếu hệ thống không hỗ trợ ssh, có lẽ nó cũng không hỗ trợ ftps - nhưng bạn có thể thử nó (ví dụ: qua ftp-ssl ) nếu bạn cần bảo mật kết nối của mình.

LTPT

Một thay thế cho một trong các ftplệnh đơn giản là sử dụng lftp, vì nó cung cấp một số tính năng để đăng nhập tự động và thực thi lệnh.

Thí dụ:

$ lftp -e 'source ~/login.lftp'
$ cat login.lftp
open sftp://juser:geheim@backup.example.net
cd /path/to/favorite/dir

Lưu ý rằng ví dụ này hiển thị xác thực mật khẩu tự động cho máy chủ SFTP không được hỗ trợ bởi máy khách sftp OpenSSH tiêu chuẩn .

Tùy chọn này -ehướng dẫn lftp thực thi các lệnh khi khởi động và duy trì tương tác.

Tất nhiên, một tập lệnh lftp mach như vậy cũng nguồn các tập lệnh khác, và cũng tự động ngắt kết nối với máy chủ.

Ngược lại, với -choặc -flftp trực tiếp thoát ra sau khi thực hiện các lệnh được chỉ định làm đối số hoặc đọc từ tệp được chỉ định.


2
LFTPtốt hơn nhiều
Ekeyme Mo

3

Nếu bạn muốn viết kịch bản ra toàn bộ:

#!/bin/sh
HOST='ftp.example.com'
USER='yourid'
PASSWD='yourpw'
FILE='file.txt'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT
exit 0

Xem thêm trang web này .


2

Nếu bạn muốn tự động đăng nhập, bạn có thể sử dụng một .netrctập tin. Tôi sẽ KHÔNG đề nghị điều này vì bạn sẽ phải lưu tên người dùng và mật khẩu của mình ở dạng văn bản không an toàn. Nếu bạn có thể sử dụng ssh, thì tôi khuyên bạn nên sử dụng nó với các khóa xác thực để tự động đăng nhập bạn.

Nếu bạn không thể sử dụng một phương thức bảo mật như ssh bằng các phím, bạn có thể định cấu hình thông tin ftp của mình bằng cách làm theo hướng dẫn này .

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.