Câu trả lời:
Sử dụng một .wgetrc
tệp ( hướng dẫn GNU ) trong đó bạn có thể đặt tên người dùng và mật khẩu cho một hoặc cả hai ftp và http.
Để sử dụng cùng một thông tin cho cả hai chỉ định
user=casper
password=CasperPassword
hoặc cá nhân
ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
.wgetrc
cung cấp sự linh hoạt để làm việc với nhiều hơn một máy chủ không? Nếu không, .netrc
là một giải pháp tốt hơn, hãy xem câu trả lời khác từ tobias.pal
.netrc
tập tin, nhưng nó được ghi lại .
Tôi ngạc nhiên không ai đề cập đến các .netrc
tập tin. Trước tiên hãy tạo tệp nếu nó không tồn tại và đặt quyền an toàn:
touch ~/.netrc
chmod 600 ~/.netrc
Sau đó, bạn có thể thêm tên máy chủ, tên người dùng và mật khẩu trên một dòng:
echo 'machine example.com login casper password CasperPassword' >> ~/.netrc
Sau đó, khi bạn làm wget https://example.com
và máy chủ phản hồi 401 Authorization Required
, wget sẽ thử lại với tên người dùng và mật khẩu từ ~/.netrc
tệp.
Khi sử dụng từ cron này, hãy chắc chắn rằng bạn có đúng HOME
thư mục. Thông thường các bộ cron HOME=/
(trong trường hợp đó bạn sẽ phải tạo tệp như /.netrc
, nhưng tốt hơn là đặt đúng HOME
ở đầu tập lệnh của bạn, như export HOME=/root
).
Bạn có thể chỉ định nhiều máy chủ trong ~/.netrc
, một máy chủ trên mỗi dòng. Thêm thông tin trong man netrc
.
man netrc
OP, tự hỏi TẠI SAO điều này hoạt động, sau đó @ryenus bình luận của bạn giúp tôi tiết kiệm, cảm ơn ~ Hướng dẫn luôn được chào đón: P Sau đó tôi biết đó là một tệp RC được sử dụng bởi ftp
, đó là không làm việc cho http. Tôi sẽ thử nó trên http sau.
Trong nhiều vấn đề curl có thể là một lựa chọn tốt hơn. Wget trở nên hơi cũ theo thời gian.
Công tắc -n của curl có thể được sử dụng cho nhiệm vụ này: http://curl.haxx.se/docs/manpage.html#-n
-i
tùy chọn và cung cấp tên người dùng và mật khẩu từ đầu vào tiêu chuẩn.