리눅스에서 초단위로 스케줄러 실행하기
전 보통 cron을 이용한 스케줄러를 사용하는데 지금까지 초단위로 지정해서 실행할 일이 없어 분단위로 실행을 했는데 이번에 초단위로 지정해서 실행해야할건이 발생하여 테스트후 정리한 문서 입니다.
systemctl의 타이머를 사용하는데 파일은 2개가 필요합니다.
1) service 파일
oneshot 한번만 실행한다는 의미입니다. 그리고 ExecStart 이 부분에 본인이 실행 시키고 싶은 프로그램이나 스크립트를 넣어주면 됩니다.
2) timer 파일
위 2개는 일반 텍스트파일로 만들면 되고 별도 권한 같은 것은 주지 않았습니다.
root유저로 생성한 상태이고 테스트서버라서 root유저로 드나들고 있음.
# 아래는 사용한 명령어 입니다.
ll /etc/systemd/system/myjob.*
cat /etc/systemd/system/myjob.timer
cat /etc/systemd/system/myjob.service
# 상태보기 및 재시작. restart로 해서 안되면 stop -> start 순서대로 한다.
systemctl status myjob.timer
systemctl stop myjob.timer
systemctl start myjob.timer
systemctl status myjob.timer
# 다음실행 시간 확인
systemctl list-timers myjob.timer
# 로그를 파일로 내보내기
journalctl -u myjob.service > /tmp/myjob.log
# 최근 로그만 확인
journalctl -u myjob.service --since "1 hour ago"
# 오늘 로그만 확인
journalctl -u myjob.service --since today
