crontab이 좋은 선택이라고 들었지만 라인을 어떻게 작성하고 서버에서 어디에 배치해야합니까?
답변
다음 은 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) 명령 : 실행할 내용 모든 숫자 값은 *로 대체 될 수 있습니다.
답변
맨 페이지에서
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을 루트로 편집하십시오.
crontab -e -u <username>
- 또는 현재 사용자의 crontab을 편집하여
crontab -e
EDITOR
환경 변수를
사용하여 편집기를 설정할 수 있습니다env EDITOR=nano crontab -e -u <username>
- 또는 전체 쉘 세션에 대해 EDITOR의 값을 설정하십시오.
export EDITOR=vim
crontab -e
- 스크립트를 사용하여 실행 가능하게 만들기
chmod a+x <file>
- 사용자의 crontab을 루트로 편집하십시오.
-
cron 작업으로 스크립트 / 프로그램을 작성하여 시스템의 anacron
/etc/cron.*ly
디렉토리에 추가하십시오.- anacron /etc/cron.*ly 디렉토리 :
- /etc/cron.daily
- /etc/cron.hourly
- /etc/cron.monthly
- /etc/cron.weekly
- 에서와 같이 :
- /etc/cron.daily/script_runs_daily.sh
chmod a+x /etc/cron.daily/script_runs_daily.sh
-실행 가능하게 만들기
- anacron 매뉴얼 페이지를 참조하십시오.
man anacron
- 스크립트를 사용하여 실행 가능하게 만들기
chmod a+x <file>
- 이 cron. * ly 스크립트는 언제 실행됩니까?
- RHEL / CentOS 5.x의 경우 설정된 시간에 구성
/etc/crontab
되거나/etc/anacrontab
실행됩니다. - RHEL / CentOS 6.x + 및 Fedora 17+ Linux 시스템에서는이 항목 만 정의
/etc/anacrontab
하고 cron.hourly를 정의하십시오./etc/cron.d/0hourly
- RHEL / CentOS 5.x의 경우 설정된 시간에 구성
- anacron /etc/cron.*ly 디렉토리 :
-
또는에서 시스템 crontable을 만들 수 있습니다
/etc/cron.d
.- 앞에서 설명한 crontab 구문 (사용자에게 각 작업을 실행할 수있는 추가 기능 제공)이 파일에 저장되고 파일은 /etc/cron.d 디렉토리에 놓입니다.
- 이들은 시스템 패키징 (예 : RPM 패키지)에서 관리하기 쉽기 때문에 대개 응용 프로그램에 따라 다를 수 있습니다.
- 구문 차이는 시간 / 날짜 필드 이후와 명령을 실행하기 전에 cron 작업에 대해 사용자를 지정해야한다는 것입니다.
- 추가 된 파일은
/etc/cron.d
실행 파일 일 필요는 없습니다. - 다음은 user로서 실행되는 작업의 예
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”스크립트를 실행해야합니다.
답변
이 문장을 crontab 파일에 넣으십시오 : 0 * * * / usr / local / bin / python /opt/ByAccount.py> /var/log/cron.log 2> & 1