Crontab은 위치에 쓰지 않습니다(권한?)

Crontab은 위치에 쓰지 않습니다(권한?)

웹페이지에 게시된 데이터를 다운로드하고 x초마다 로컬에 저장하도록 crontab을 설정했습니다.

* * * * * sleep 0; wget -O /home/lab/Documents/watchdog.xml 'IP-address'

작동합니다!

실제로 파일을 다른 곳에 저장하고 싶으므로 다음과 같이 해보세요.

 * * * * * sleep 0; wget -O /var/cache/watchdog.xml 'IP-address'

이것은 작동하지 않습니다.

대상 파일의 위치를 ​​변경하면 문제가 해결되었으니 권한 문제인 것 같은데요? 권한을 확인/변경하는 방법은 무엇입니까 crontabs?

답변1

run 을 통해 편집하는 사용자 crontab은 crontab -e사용자로 실행되므로 사용자의 권한을 사용합니다.

따라서 사용자가 파일을 쓸 수 있도록 만들어야 합니다. sudo chown "$USER" /var/cache/watchdog.xml파일이 이미 존재하는 경우 이 작업을 수행할 수 있습니다. (그렇지 않으면 sudo touch /var/cache/watchdog.xml빈 파일이 생성됩니다.) 상황에 따라 가장 적합한 다른 방법(예: 그룹을 변경하여 그룹 쓰기 가능으로 설정 또는 ACL 사용)이 있습니다.

또는 모든 사용자로 실행할 수 있는 시스템 crontab을 사용할 수 있습니다( /etc/crontab텍스트 편집기로 편집하거나 시스템에 파일이 있는 경우 파일을 생성하는 것이 좋습니다). /etc/cron.d시스템 crontab은 명령을 실행하는 사용자라는 추가 필드를 추가합니다. 요일 필드와 명령 필드 사이에 위치합니다.

관련 정보