반응형

출처 : https://superuser.com/questions/98974/how-to-use-crontab-to-run-a-script-as-nobody

nobody로 스크립트 실행하기 위해 crontab 사용하는 방법

이는 CentOS 머신입니다. 저는 매일 특정 시간에 (최소 권한으로 사용자로써) 사용자 nobody로 스크립트를 실행하려 합니다. 여기에 nobody가 있습니다.

[root@CentOS % ~] grep "^nobody" /etc/passwd  
nobody:x:99:99:Nobody:/:/sbin/nologin  

루트의 crontab에서 제가 실행하려 한 것입니다.

환경변수 SUDO_USER=nobody로 설정하고
15 17 * * * sudo -u nobody /bin/bash /usr/local/bin/bashscript.sh
15 17 * * * su -c /usr/local/bin/bashscript.sh nobody

저는 모두 가능한 루트의 crontab에 엔트리를 유지하고 싶습니다. 나는 또한 해당 설정에 의존할 수 있는 다른 어떤 것도 깨뜨리고 싶지 않기 때문에 아무도 nobody의 계정을 속이지 않는 것을 선호합니다. 나는 권한이 없는 다른 계정을 만들고 그것이 문제가 되는 경우 실제 쉘을 제공하는 것에 반대하지 않습니다.

저도 약간 당혹스러웠던 점은 인정합니다. 도움이 되지 않는다는 점을 제외하고는 이것이 일상적인 문제라고 가정합니다.

5개의 답변

저는 crontab -e 또는 crontab -l 내용에서 당신이 작성했다고 가정합니다?

이것은 사용자 "루트"에 속한 crontab 파일이며 해당 파일은 (일반적으로 개인 작업을 예약하는 데 사용되는 파일) 명령을 실행할 사용자 지정을 지원하지 않습니다 .
시스템 전체의 crontab이고 추가 필드인 사용자 필드가 있는 /etc/crontab을 보십시오. /etc/crontab에 다음과 같은 줄을 추가해 보십시오.

15 17 * * * nobody /usr/local/bin/bashscript.sh
반응형
반응형

출처 : https://stackoverflow.com/questions/2229825/where-can-i-set-environment-variables-that-crontab-will-use

crontab이 사용할 환경 변수를 어디에서 설정할 수 있습니까?

저는 매 시간마다 실행하는 crontab이 있습니다. 그것을 실행하는 사용자는 터미널에서 작업을 실행할 때 작동하는 .bash_profile의 환경 변수를 가지고 있습니다. 하지만, 그것을 실행할 때 환경변수가 crontab에 의해 선택되지는 않습니다.

저는 환경변수를 .profile.bashrc에서 설정을 시도했지만, 그 환경변수는 선택되지 않는 듯 합니다. crontab이 선택할 수 있도록 환경 변수을 어디에 넣어야 하는지 아시는 분 있으신가요?


20개의 답변 중 1개

명령어 라인에서 crontab -e를 실행했을 때 그 crontab 자체에서 환경 변수를 정의할 수 있습니다.

LANG=nb_NO.UTF-8
LC_ALL=nb_NO.UTF-8
# m h  dom mon dow   command

* * * * * sleep 5s && echo "yo"

이 특징은 cron의 특정 구현에서만 가능합니다. 우분투와 데비안은 crontab 파일 ( GNU mcron 도) 에서 선언을 허용하는 vixie-cron을 현재 사용합니다.

ArchlinuxRedhat은 환경변수를 허용하지 않고 cron.log에서 문법 오류를 발생하는 cronie를 사용합니다. 작업은 엔트리 마다 할 수 있습니다.

# m h  dom mon dow   command
* * * * * export LC_ALL=nb_NO.UTF-8; sleep 5s && echo "yo"
반응형
반응형

출처 : https://stackoverflow.com/questions/3241086/how-to-schedule-to-run-first-sunday-of-every-month

매달 첫 번째 일요일에 crontab 스케쥴링 하는 방법

저는 Redhat에서 Bash를 사용하고 있습니다. 저는 매달 첫 번째 일요일 오전 9시에 cron job을 스케쥴링 하고 싶습니다. 이를 어떻게 할 수 있을까요?


10개의 답변 중 1개를 추려냄

crontab 파일에서 이를 다음처럼 할 수 있습니다.

00 09 * * 7 [ $(date +\%d) -le 07 ] && /run/your/script

date +%d 는 오늘의 날짜 중 몇일인지 제공하며, 몇일이 7보다 작거나 같은지 검사할 수 있습니다. 그렇다면 당신의 명령을 실행합니다.

만약 이 스크립트가 일요일에만 실행되기를 원하면, 그 달의 첫번째 일요일에만 실행된다는 뜻이 됩니다.

crontab 파일에서 date 명령의 포멧팅 옵션은 escape 처리가 되어야 합니다.

반응형
반응형

출처 

http://stackoverflow.com/questions/27141238/is-there-any-time-restriction-for-cloud9-ide

cloud9.ide에서 시간과 관련된 제약이 있습니까?

저는 Cloud9 IDE에서 cron tab에서 빠른 php 업데이트를 실행하려 합니다. 여기에 제가 설정한 crontab -l 이 있습니다.

*/2 * * * * php /home/ubuntu/workspace/public_html/updater.php

저는 간단한 php 대신에 "whereis php"로부터 데이터를 사용하려고 하지만 아무 것도 안하고 있습니다. 여기에 제 질문이 있습니다. C9의 cron에 대해 예를 들어 최소한 1시간 같은 시간과 관련된 제약이 있습니까? 아니면 뭔가 제가 잘못한 것이 있을까요? cron은 이미 재시작 하였습니다.

---

3 개의 답변 중 1 개의 답변만 추려냄.

Cron 대몬이 시작되지 않았습니다. 당신은 수동으로 그것을 시작해야 합니다. px -aef | grep cron 의 출력은 grep 을 통해 cron이 실행되지 않았음으로 보여줍니다. 

sudo cron start


반응형

+ Recent posts