답변:
다음 은 crontab이 무엇이며 Ubuntu에서 사용하는 방법에 대한 유용한 자습서 입니다. crontab 줄은 다음과 같습니다.
00 00 * * * ruby path/to/your/script.rb
( 00 00
자정 -0 분 0 시간을 나타내며 *
s는 매월 매일 의미합니다.)
통사론: mm hh dd mt wd 명령 mm 분 0-59 hh 시간 0-23 dd 달 1-31 월 1-12 wd 요일 0-7 (일요일 = 0 또는 7) 명령 : 실행할 내용 모든 숫자 값은 *로 대체 될 수 있습니다.
/etc/crontab
(우분투에서는) 사용자 열 (명령 앞에갑니다)이 허용 되지만 실행할 crontab -e
때이 열을 허용하지 않는 사용자 별 crontab을 편집하고 있습니다. IIRC Ubuntu는 /etc/crontab
덮어 쓰기 때문에 수동으로 종료하지 않는 것이 좋습니다 . 여기를 참조하십시오 : stackoverflow.com/questions/8475694/…
sudo crotab -u root -e
맨 페이지에서
linux$ man -S 5 crontab
cron(8) examines cron entries once every minute.
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
...
# run five minutes after midnight, every day
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
...
사용할 수있는 특수한 "닉네임"(man 페이지에 문서화 됨), 특히 시간과 날짜를 대체 할 수없는 "@reboot"를 기록하는 것이 좋습니다.
# Run once after reboot.
@reboot /usr/local/sbin/run_only_once_after_reboot.sh
이 트릭을 사용하여 분당 cron 작업을 여러 번 실행할 수 있습니다.
# Run every minute at 0, 20, and 40 second intervals
* * * * * sleep 00; /usr/local/sbin/run_3times_per_minute.sh
* * * * * sleep 20; /usr/local/sbin/run_3times_per_minute.sh
* * * * * sleep 40; /usr/local/sbin/run_3times_per_minute.sh
크론 작업을 추가하기 위해 다음 세 가지 중 하나를 수행 할 수 있습니다.
위에 표시된대로 사용자의 crontab에 명령을 추가하십시오 (crontab의 섹션 5, 매뉴얼 페이지).
crontab -e -u <username>
crontab -e
EDITOR
환경 변수를
사용하여 편집기를 설정할 수 있습니다env EDITOR=nano crontab -e -u <username>
export EDITOR=vim
crontab -e
chmod a+x <file>
cron 작업으로 스크립트 / 프로그램을 작성하여 시스템의 anacron /etc/cron.*ly
디렉토리에 추가하십시오.
chmod a+x /etc/cron.daily/script_runs_daily.sh
-실행 가능하게 만들기man anacron
chmod a+x <file>
/etc/crontab
되거나 /etc/anacrontab
실행됩니다./etc/anacrontab
하고 cron.hourly를 정의하십시오./etc/cron.d/0hourly
또는에서 시스템 crontable을 만들 수 있습니다 /etc/cron.d
.
/etc/cron.d
실행 파일 일 필요는 없습니다.someuser
이며 /bin/bash
셸로 사용 하도록 강요합니다. File: /etc/cron.d/myapp-cron
# use /bin/bash to run commands, no matter what /etc/passwd says
SHELL=/bin/bash
# Execute a nightly (11:00pm) cron job to scrub application records
00 23 * * * someuser /opt/myapp/bin/scrubrecords.php
때때로 rvm과 함께 crontab을 사용하여 PATH 및 GEM_PATH를 지정해야합니다.
이처럼 :
# top of crontab file
PATH=/home/user_name/.rvm/gems/ruby-2.2.0/bin:/home/user_name/.rvm/gems/ruby-2.2.0@global/bin:/home/user_name/.rvm/rubies/ruby-2.2.$
GEM_PATH=/home/user_name/.rvm/gems/ruby-2.2.0:/home/user_name/.rvm/gems/ruby-2.2.0@global
# jobs
00 00 * * * ruby path/to/your/script.rb
00 */4 * * * ruby path/to/your/script2.rb
00 8,12,22 * * * ruby path/to/your/script3.rb
크론 작업 설정을위한 빠른 안내서
새 텍스트 파일을 작성하십시오 (예 : mycronjobs.txt).
각 일일 작업 (00:00, 03:45)에 대해 스케줄 라인을 mycronjobs.txt에 저장하십시오.
00 00 * * * ruby path/to/your/script.rb
45 03 * * * path/to/your/script2.sh
cron에 작업 전송 (이 작업을 실행할 때마다 cron은 저장된 내용을 삭제하고 mycronjobs.txt 의 새로운 정보로 업데이트합니다 )
crontab mycronjobs.txt
유용한 정보
현재 크론 작업보기
crontab -l
모든 크론 작업 제거
crontab -r
cron 작업을 사용하거나 쉘 스크립트를 작성하여 두 가지 방법으로 쉘 스크립트를 실행할 수 있습니다.
스크립트 이름이 "yourscript.sh"라고 가정합니다
먼저 스크립트의 사용자 권한을 확인하십시오. 아래 명령을 사용하여 스크립트의 사용자 권한을 확인하십시오.
ll script.sh
스크립트가 루트에 있으면 아래 명령을 사용하십시오.
sudo crontab -e
두 번째로 스크립트에 사용자 "ubuntu"가 있으면 아래 명령을 사용하십시오.
크론 탭 -e
crontab에 다음 줄을 추가하십시오.
55 23 * * * /path/to/yourscript.sh
이 작업을 수행하는 또 다른 방법은 스크립트를 작성하고 backgroud에서 실행하는 것입니다
다음은 매일 23:55 pm에 실행될 스크립트 이름 (예 : youscript.sh)을 입력해야하는 스크립트입니다.
#!/bin/bash
while true
do
/home/modassir/yourscript.sh
sleep 1d
done
파일에 저장하십시오 ( "every-day.sh"로 이름 지정)
sleep 1d-하루 동안 기다렸다가 다시 실행됨을 의미합니다.
이제 스크립트에 권한을 부여하십시오. 아래 명령을 사용하십시오 :-
chmod + x every-day.sh
이제 "nohup"을 사용하여 백그라운드에서이 쉘 스크립트를 실행하십시오. 세션에서 로그 아웃 한 후에도 스크립트가 계속 실행됩니다.
아래 명령을 사용하여 스크립트를 실행하십시오.
nohup ./every-day.sh &
참고 :-매일 오후 23:55에 "yourscript.sh"를 실행하려면 정확히 23:55에 "every-day.sh"스크립트를 실행해야합니다.