크론 작업을 생성하고 실시간으로 출력을 확인하세요.

크론 작업을 생성하고 실시간으로 출력을 확인하세요.

이 포럼의 질문과 답변을 읽은 후 질문의 문턱이 매우 높다는 것을 느꼈습니다. 적어도 나처럼 Linux에 대해 거의 모르는 사람에게는 말이죠. 크론 작업에 관한 대부분의 질문은 답변을 포함하여 제 능력을 넘어서는 것입니다. 그래서 조금 당황스러운 마음으로 가장 간단한 질문을 드려보겠습니다.

분당 데이터/시간을 표시하는 cron 작업을 만들고 싶습니다. 콘솔에서 실시간으로 보고 싶습니다. 나는 이것이 결국 bash 스크립트나 Python을 통해 수행될 것이라고 추측하지만 지금은 명령줄을 사용하고 싶습니다.

crontab -e
* * * * * /bin/date >> /home/pi/cron_date

별의 개념을 이해했어요. "날짜"가 어디에 있는지 찾기 위해 "which" 명령을 사용합니다. 이 "날짜" 정보를 아직 생성되지 않았지만 Enter 키를 누르면 cron_date라는 파일이 생성될 파일로 리디렉션합니다.

저는 "nano" 편집기를 사용하고 있습니다. Control + O는 WriteOut입니다(저장/다른 이름으로 저장).

File Name to Write: /tmp/crontab.D3AZm/crontab

질문 1: Enter 키를 사용하여 "nano"가 원하는 대로 호출하도록 했습니다. 내 cron_date 파일은 여전히 ​​/home/pi 아래에 생성됩니다. 나에게 주어진 파일 이름 "nano"는 임시 파일이라는 것을 알고 있습니다. 하지만 이 파일을 내 것으로 만들기로 결정했으므로 "나노" 제안을 제거하고 다음으로 바꿔야 할까요?

File Name to Write: /home/pi/cron_date

아니면 실제로 생각할 필요가 없는 것에 대해 생각하고 있는 걸까요? 현재 저는 아무것도 대체하지 않고 이 임시 파일의 이름을 "nano"로 지정했습니다.

crontab: installing new crontab
crontab -l

내 파일이 존재합니다. 이제 문제는 파일을 실시간으로 보는 것입니다. 다음을 통해 날짜/시간을 확인할 수 있습니다.

nano cron_date
cat /home/pi/cron_date

하지만 정보를 업데이트하려면 동일한 명령을 사용해야 합니다. 내가 가지고 있는 파일의 유일한 라이브 뷰는 다음과 같습니다.

tail -f /home/pi/cron_date

질문 2: 전체 파일이 업데이트되는 것을 볼 수 있는 방법이 있나요?

이것은 제가 하고 싶은 취미 프로젝트의 시작일 뿐입니다. 라즈베리파이를 이용해 강바닥 사진을 찍어보세요. 취미용 ROV를 만들 예정입니다. 카메라가 장착된 Raspberry Pi가 물에 잠기면 온도와 시간을 측정하고 싶습니다. 과열되면 팬을 보고 켤 수 있습니다. 제가 틀렸을 수도 있지만 크론 작업에 대한 이해가 프로젝트의 출발점입니다.

Raspberry Pi 1 모델 B: Debian을 사용합니다.

답변1

이 명령을 실행하면 crontab -e임시 파일을 편집할 수 있습니다. 편집기를 종료하면 임시 파일에 구문 오류가 있는지 검사하고 오류가 없으면 사용자의 crontab이 포함된 시스템 디렉터리에 설치됩니다. 파일을 다른 위치에 저장하면 임시 파일은 수정되지 않으므로 이전 crontab은 그대로 유지됩니다. crontab -lcrontab의 내용을 확인하려면 명령을 실행하십시오 .

각 cron 작업은 홈 디렉터리에서 실행됩니다. 이는 편집하는 임시 파일의 위치와 전혀 관련이 없습니다. 작업을 다른 디렉터리에서 실행하려면 다음 명령을 사용하여 시작하세요 cd.

* * * * * cd ~/subdir && date >>somefile

이는 홈 디렉토리(이미 존재해야 함)의 디렉토리로 변경되고 subdir의 출력이 date기록됩니다 /home/pi/subdir/somefile. cd명령이 실패하면(예를 들어 디렉토리가 존재하지 않기 때문에) date명령이 실행되지 않습니다 &&.

date기본 명령 검색 경로에 있는 것처럼 전체 경로를 작성할 필요가 없습니다 .

"업데이트되는 전체 파일 보기"가 무슨 뜻인지 잘 모르겠습니다. 이 명령은 tail -f실행될 때 파일의 마지막 10줄을 표시한 다음 영원히(또는 사용자가 종료할 때까지) 실행되고 추가된 줄을 표시합니다. 새로 추가된 줄만 표시하려면(즉, 시작 시 아무것도 표시하지 않음 tail) 0줄을 출력하도록 지시하세요.

tail -n 0 -f /home/pi/cron_date

전체 파일을 표시한 다음 추가된 새 줄을 인쇄하려면 tail줄 1에서 시작하라고 지시합니다.

tail -n +1 -f /home/pi/cron_date

관련 정보