개발자

리눅스 계열 서버 특정시간마다 돌릴 수 있는 서비스?

2023년 04월 06일조회 183

리눅스 서버에서 매일 특정 시간마다 실행할 수 있는 서비스가 cron과 crontab 말고도 있나요? vultr과 linode를 사용해봤는데, 이상하게 아마존 서버에서는 몇 일 동안 삽질해도 실행되지 않네요. ㅠㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

인기 답변

김병수님의 프로필 사진

scheduled job은 crontab으로 실행합니다 (제 경험상 aws로 넘어오면서는 거의 사용하지 않습니다) 다른 솔루션으로는 AWS EventBridge 또는 jenkins도 많이 사용합니다 각각은 장단점이 존재하기에 니즈에 맞는 솔루션을 선택하시면 될듯합니다 가장 심플하게 scheduled job을 실행시키시려면 말씀하신 crontab이 가장 좋다고 생각합니다 crontab이 실행되지 않는 이유에 대해서는 정보가 부족하여 말씀드리는데 한계가 있지만 보통 file 권한 or 유저 권한 등의 문제로 실행되지 않는 케이스가 많습니다 몇가지를 간단한 테스트를 해보시면 어느 부분이 문제일지 아실수 있을듯합니다 * 테스트 환경 : Ubuntu 22.04.2 LTS * 모든 테스트는 root 환경에서 테스트하였습니다 1. crontab 서비스 running 확인 - 기대 결과 : crontab service 정상 동작 확인 - 코드 : # service cron status * cron is not running # service cron restart * Restarting periodic command scheduler cron * Stopping periodic command scheduler cron * Starting periodic command scheduler cron # service cron status * cron is running 2. 매분 crontab으로 시간 log 남기기 - 기대 결과 : crontab이 잘 동작하는지 확인 - 코드 : # crontab -e * * * * * echo $(date) >> /home/test2_log # crontab -l * * * * * echo $(date) >> /home/test2_log # cat test2_log Mon Apr 10 09:26:01 UTC 2023 Mon Apr 10 09:27:01 UTC 2023 3. crontab으로 파일 실행 - 기대 결과 : crontab으로 파일 실행이 잘 되는지 확인. 즉 crontab으로 대상 파일 실행 권한이 있는지 확인 - 코드 : # vi /home/exe_file echo $(date) >> /home/test3_log # bash exe_file # cat test3_log Mon Apr 10 09:39:11 UTC 2023 # crontab -e * * * * * bash /home/exe_file >> /home/cron.out 2>&1 # cat test3_log Mon Apr 10 09:39:11 UTC 2023 Mon Apr 10 09:41:01 UTC 2023 Mon Apr 10 09:42:01 UTC 2023 - 기타 : ㄴ /home/cron.out 2>&1로 crontab service log를 확인할 수 있습니다 ㄴ 참고 링크 : https://stackoverflow.com/questions/818255/what-does-21-mean 좀더 다양한 테스트로는 링크를 참고하시면 좋을듯합니다 https://stackoverflow.com/questions/22743548/cronjob-not-running

커리어리 AI 봇님의 프로필 사진

리눅스 서버에서 특정 시간마다 실행할 수 있는 서비스로는 'systemd'를 이용한 방법이 있습니다. 'systemd'는 리눅스에서 시스템 및 서비스의 관리를 담당하는 프로세스 매니저로, 'cron'과는 달리 더 다양한 기능과 설정이 가능합니다. 'systemd'를 이용해 특정 시간마다 실행할 서비스를 등록하려면 다음과 같이 하면 됩니다. 1. 서비스 파일 생성 2. 서비스 파일에 실행할 명령어 작성 아래 예시는 파이썬으로 작성된 스크립트 파일을 실행하는 서비스 파일입니다. 3. 서비스 등록 및 시작 이렇게 등록하면 매일 특정 시간마다 서비스가 실행됩니다. 'systemd'를 이용해 실행할 수 있는 서비스의 설정은 더 다양하기 때문에 필요에 따라서 추가적인 설정도 가능합니다. ----- ✅ Chat GPT의 답변을 평가해 주세요! 틀린 내용은 없는지, 답변이 도움이 되었는지 댓글로 작성해 주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#1
sudo vi /etc/systemd/system/my-service.service

#2
[Unit]
Description=My Service

[Service]
Type=simple
ExecStart=/usr/bin/python /path/to/my_script.py

[Install]
WantedBy=multi-user.target

#3
sudo systemctl enable my-service
sudo systemctl start my-service

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!