Linux를 배우고/이해하는 과정에서(어렵지만 즐기고 있습니다). 나는 웹사이트에서 index.html 파일을 추출하기 위해 wget을 사용하는 매우 짧은 쉘 스크립트를 작성했습니다.
#!/bin/bash
#Script to wget website mywebsite and put it in /home/pi/bin
index=$(wget www.mywebsite.com)
이는 명령줄에 wget_test 명령을 입력하면 작동합니다. .html 파일을 /home/pi/bin에 출력합니다.
나는 특정 시간에 이 작업을 수행할 수 있도록 cron을 통해 이 작업을 수행하기 시작했습니다. crontab -e를 사용하여 다음을 입력합니다.
23 13 * * * /home/pi/bin/wget_test
이 예에서는 스크립트를 13.23에서 실행하고 .html 파일을 /home/pi/bin에 출력하려고 하지만 아무 일도 일어나지 않습니다.
답변1
이 줄은 index=$(wget www.mywebsite.com)
변수를 $index
공백으로 설정합니다. 이는 (기본적으로) wget
아무것도 기록되지 않기 때문입니다.표준 출력따라서 변수에 넣을 것이 없습니다.
그것이 하는 일은 wget
파일을 현재 디렉터리에 쓰는 것입니다. Cron 작업은 $HOME
디렉터리에서 실행되므로 디렉터리에 파일을 쓰려면 $HOME/bin
두 가지 중 하나를 수행해야 합니다.
- 쓰다
wget -O bin/index.html www.mywebsite.com
- 쓰다
cd bin; wget www.mywebsite.com
그런데 ~/bin
디렉토리는 일반적으로 개인 스크립트와 프로그램이 저장되는 곳이므로 웹사이트에서 정기적으로 검색되는 파일을 다른 곳에 작성하는 것을 고려하는 것이 가장 좋습니다.
답변2
Bash 스크립트에 실행 권한이 있고 필요한 사용자에 대해 cronjob이 설정되어 있는지 확인하세요.
제 생각에는 스크립트의 명령이 다음과 같아야 한다는 것입니다.
wget www.mywebsite.com/index.html