특정 사용자로 cron 작업을 실행하는 방법?


64

내 컴퓨터에서 특정 사용자로 cron 작업을 실행하고 싶습니다. cron 작업을 실행할 사용자를 어떻게 지정할 수 있습니까?.

cron 작업은 Ubuntu 10.0.4에서 실행되는 서버에서 실행됩니다. '사용자'는 특정 서버 측 작업을 수행하기 위해 특별히 생성 된 사용자입니다. 이 '사용자'는 공통적으로 다음을 갖습니다.

  • 시스템에 로그온 할 수 없습니다.
  • 특정 폴더 / 파일에 대한 액세스를 제한했습니다.

답변:


75

그냥 로그인하여 해당 사용자의 crontab에 추가 할 수 없다고 가정하면 파일을 /etc/cron.d. 그것은 일반 cronjob로 포맷해야하지만 여분의 필드가 있습니다. 명령을 실행하기 전에 타이밍을 잡은 후에 사용자를 배치하십시오. 이미 시스템에서 예제를 찾을 수 있어야합니다.

예:

#<timing>   <user> <command>
11 * * * *  root   /usr/lib/command

나는 이것이 정답이라고 생각한다. 나는 몇 가지 예를 찾고 좀 더 조사해야 할 것입니다.
morpheous

2
나에게서 플러스 하나, 이것은 당신이 원하는 것을하는 가장 좋은 방법입니다. 좀 더 정확하게 / etc / crontab 파일을 살펴보면 시간 템플릿 이후와 명령 앞에 "root"라고 쓰여 있습니다. 이것은 "root"가 해당 명령을 실행 함을 의미합니다. 자신의 일정을 추가하고 "루트"대신 모든 사용자를 사용하십시오. 또한 사용자 당 crontab을 사용하는 경우 (Eric D에 의해 사용됨) 시스템 전체 crontab (/ etc / crontab 및 /etc/cron.d)의 기능이 느슨해 질 수 있습니다.
Patkos Csaba

3
내가 선호하는 솔루션은 crontab -u <user> -e 한 곳에서 모든 것을 유지하기 위해 루트로 할 수 있습니다. 필자는 cron 작업을 사용자별로 그룹화하는 대신 기능별로 그룹화하는 것을 선호하므로 이것이 나에게 바람직한 해결책입니다.
Stuart H

40

root로 user1의 cron을 편집하려면 다음을 입력하십시오.

crontab -u user1 -e

다음 명령으로 명령을 시작할 수도 있습니다.

su user1 -c foo bar

그러나 종종 스크립트 자체는 루트로 시작할 때 자신의 액세스를 줄입니다.


0

나는 이것을 2 주 동안 찾고 있었는데 마침내이 일이 ...

스크립트를 user1로 작성하십시오.

ssh user1@ipaddress
nano hourly-event.sh

어떤 명령을 입력하십시오

#!/bin/bash
echo "YAY it works" > /home/user1/yay.txt

실행 가능하게 만들자.

chmod 755 hourly-event.sh

user1에 대한 crontab을 편집하십시오.

sudo crontab -u user1 -e

아래쪽에 스크립트를 가리키는 라인을 넣으십시오.

# m h  dom mon dow   command
*   *   *   *   *    bash ./hourly-event.sh

종료 - 변경 사항 저장 (저장할 때 / tmp 디렉토리가 표시됩니다 ... 괜찮습니다)

분의 회전을 기다린다.

새로 생성 된 yay.txt를 엽니 다.

nano /home/user1/yay.txt

당신은 이제 첫 번째와 유일한 라인으로 "YAY it works"라는 나노 윈도우를 열어야합니다. 당신의 나노 창 하단에 New File이 있다면 ... 음 .. 나는 몰라.

/ var / spool / cron / crontabs / user1에서 user1에 대한 새 crontab 항목을 확인할 수도 있습니다.

평화


0

때때로 "rbenv", "nvm"을 사용할 때 특히 다음과 같이 사용자가 자신의 환경을로드하기를 원할 수 있습니다.

0 0 * * * source ~/.bash_profile && cd /opt/app/current && bundle exec ruby ...

(여기에 명령 source ~/.bash_profile 루비 또는 노드 환경을로드합니다.

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