Câu trả lời:
Sử dụng một .wgetrctệ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
.wgetrccung 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, .netrclà một giải pháp tốt hơn, hãy xem câu trả lời khác từ tobias.pal
.netrctập tin, nhưng nó được ghi lại .
Tôi ngạc nhiên không ai đề cập đến các .netrctậ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.comvà 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ừ ~/.netrctệp.
Khi sử dụng từ cron này, hãy chắc chắn rằng bạn có đúng HOMEthư 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 netrcOP, 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
-itù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.