Wget : 파일에서 사용자 이름과 비밀번호를 전달하는 방법이 있습니까?


22

--user 및 --password를 통해 명령 줄 대신 파일에서 사용자 이름과 비밀번호를 전달하는 방법이 있습니까?

배경 : cron을 통해 wget을 실행하고 프로세스보기에 사용자 이름 / 비밀번호를 표시하고 싶지 않습니다.

답변:


13

ftp 및 http 중 하나 또는 둘 모두에 대한 사용자 이름과 비밀번호를 설정할 수 있는 .wgetrc파일 ( GNU manual )을 사용 하십시오.

동일한 자격 증명을 모두 사용하려면

user=casper
password=CasperPassword

또는 개별적으로

ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass

2
GNU wget 매뉴얼-i옵션을 사용하고 표준 입력에서 사용자 이름과 비밀번호를 입력 할 것을 제안 합니다.
Richard

.wgetrc둘 이상의 서버에서 작업 할 수있는 유연성을 제공 합니까 ? 그렇지 않은 경우 .netrc더 나은 솔루션 입니다. tobias.pal
ryenus

분명히 .netrc파일을 사용하는 wget을 놓쳤지만 문서화되어 있습니다.
Mike Renfro

19

아무도 .netrc파일을 언급하지 않은 것에 놀랐습니다 . 파일이 존재하지 않는 경우 먼저 파일을 작성하고 안전한 권한을 설정하십시오.

touch ~/.netrc
chmod 600 ~/.netrc

그런 다음 호스트 이름, 사용자 이름 및 비밀번호를 모두 한 줄에 추가 할 수 있습니다.

echo 'machine example.com login casper password CasperPassword' >> ~/.netrc

그런 다음 wget https://example.com서버가로 응답 401 Authorization Required하면 wget은 ~/.netrc파일 의 사용자 이름과 비밀번호로 다시 시도 합니다.

cron에서 이것을 사용할 때 올바른 HOME디렉토리 가 있는지 확인하십시오 . 종종 cron 세트 HOME=/(이 경우 파일을로 작성해야 /.netrc하지만 HOME스크립트 시작 부분에)를 올바르게 설정하는 것이 좋습니다 export HOME=/root.

~/.netrc한 줄에 하나씩 여러 개의 호스트를 지정할 수 있습니다 . 더 많은 정보를 원하시면 man netrc.


2
의 구문에 .netrc대해서는 매뉴얼 이나 관련 curl doc을 참조하십시오 .
Ryenus

처음 man netrc에는 OP에서 이를보기에는 너무 부주의합니다. 왜 이것이 효과가 있는지 궁금해하고 @ryenus 귀하의 의견이 저를 구해 주셔서 감사합니다 ~ Manual은 항상 환영합니다 : P 그렇다면 나는 그것이 사용하는 rc 파일이라는 것을 알고 ftp있습니다. http에서는 작동하지 않습니다. 나중에 http에서 시도하겠습니다.
주말

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.