답변:
그냥 로그인하여 해당 사용자의 crontab에 추가 할 수 없다고 가정하면 파일을 /etc/cron.d
. 그것은 일반 cronjob로 포맷해야하지만 여분의 필드가 있습니다. 명령을 실행하기 전에 타이밍을 잡은 후에 사용자를 배치하십시오. 이미 시스템에서 예제를 찾을 수 있어야합니다.
예:
#<timing> <user> <command>
11 * * * * root /usr/lib/command
crontab -u <user> -e
한 곳에서 모든 것을 유지하기 위해 루트로 할 수 있습니다. 필자는 cron 작업을 사용자별로 그룹화하는 대신 기능별로 그룹화하는 것을 선호하므로 이것이 나에게 바람직한 해결책입니다.
root로 user1의 cron을 편집하려면 다음을 입력하십시오.
crontab -u user1 -e
다음 명령으로 명령을 시작할 수도 있습니다.
su user1 -c foo bar
그러나 종종 스크립트 자체는 루트로 시작할 때 자신의 액세스를 줄입니다.
나는 이것을 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 항목을 확인할 수도 있습니다.
평화
때때로 "rbenv", "nvm"을 사용할 때 특히 다음과 같이 사용자가 자신의 환경을로드하기를 원할 수 있습니다.
0 0 * * * source ~/.bash_profile && cd /opt/app/current && bundle exec ruby ...
(여기에 명령 source ~/.bash_profile
루비 또는 노드 환경을로드합니다.