crontab에 -e라고 치면 정기적으로 하는일을 정의할 수가 있다.
정기적으로 실행시키고 싶은 어떤 작업을 안에 적어주면 적어준 대로 크론이라는 프로그램이 동작해서 그것을 실행시켜 준다.
첫 번째 자리는 실행되는 분의 주기 즉, 분당 몇 번 실행할 것인가인데
10은 매 시간 10분이란 뜻이고 /1 이렇게 하면 1분에 한 번 /10은 10분에 한 번이 된다.
그리고 시간에서 여러분이 별표 치면 *, 시간과는 상관 없이 실행이 되는 것이고 근데 만약에 10 1은 한 시 10분에 실행된다는 뜻을 가진다,.
dom은 day of month로 한 달에서 며칠인지 24라 적으면 매달 24일이란 뜻이죠.
mon 다음은 month 즉 몇 월인지 즉 요일을 설정해준다.
crontab expressio 검색
그리고 커맨드(command, 명령)가 오게 되는데, 여기에 1분에 한 번씩 실행하고 싶은 명령을 적어주면 된다.
컨트롤 알파벳 제트(Ctrl+z)를 누르면 백그라운드로 나간다.
date(데이트) 현재 시간을 알려주는 명령의 결과를 date.log(데이트 점 로그)라고 하는 파일에다가 기록하고 꺽쇠를 두 번 하면 어떻게 되나요?
실행할 때마다 date(데이트)의 실행 결과가 date.log(데이트 점 로그)에 끝에 추가되는 방식의 IO 리다이렉션이다.
fg (에프 지) 포그라운드(foreground)란 뜻이죠?
command란에 date >> date.log 파일에다가 추가한다
잘 됐는지를 확인할 때는 crontab -l 쳐보면 처리한 내용을 화면에 출력해준다.
cd ~로그인한 계정의 홈 디렉터리에서 이렇게 ls를 치고 date.log(데이트 점 로그)라는 파일이 잘 업데이트되고 있는지를 확인하기 위해서
tail(테일) 뒤에다가 파일을 주게 되면 그 파일의 제일 뒤쪽에 있는 텍스트를 출력해 준다.
tail이라는 명령의 옵션으로 -f를 주면 tail이라는 명령은 자동으로 date.log 파일을 감시하고 있다가 그 파일에 뒤쪽에 텍스트가 추가되면, 그것을 자동으로 화면을 리프레쉬 해준다.
crontab -e(크론탭 마이너스 이)
이 명령을 실행했는데 여기 있는 명령에서 에러가 발생하면, 에러는 standard(스탠다드)
output(아웃풋)이 아닌 standard error(스탠다드 에러)라는 별도의 출력이기 때문에
에러가 쌓이지 않아서, 에러가 일어났는지 안 일어났는지 알 수가 없다.
따라서 숫자 2 standard error 표준 에러를 숫자 1, 표준출력으로 리다이렉션시킨다. 즉
표준 에러를 표준 출력화시킨다.
date >> date.log 2>&1 에러가 있을 때 1이라는 파일에 저장된다.
1 앞에 앰퍼샌드(&)를 붙여줘야 표준 출력이 된다.
date(데이트)라고 하는 명령을 실행한 결과 어떤 에러가 발생하면 그 에러는 표준 출력으로
리다이렉션 됐기 때문에 함께 저장이 된다.