준호씨의 블로그

linux - 쉘커맨드로 특정 cronjob 만 제거 하기 본문

개발이야기

linux - 쉘커맨드로 특정 cronjob 만 제거 하기

준호씨 2017. 10. 11. 02:05
반응형

보통은 특정 cron job 을 제거 하고 싶을 때 crontab -e 로 에디터를 열고 제거 할 라인을 지우면 된다. 그러나 관리하는 서버가 많아서 일괄 작업이 필요 한 경우 쉘커맨드를 활용해서 지우면 편리 하다.

"some job" 이란 문구가 있는 내용 제거

crontab -u junho85 -l | grep -v "some job" | crontab -u junho85 -

crontab -l 하면 cron 내용이 나온다. 거기서 "some job" 이 들어간 부분만 제거 한 후 그 내용으로 다시 업데이트 하는 것이다.

ansible 로 여러 서버 작업

ansible dev -i hosts -m shell -a 'crontab -u junho85 -l | grep -v "some job" | crontab -u junho85 -'

hosts 파일의 dev 그룹 호스트 대상으로 커맨드 날리는 것이다. task 로 직접 작성해도 된다.

ansible 로 등록한 cron 인 경우

- cron:
  name: "ansible cron job name"
  state: absent

ansible 이용해서 cron job 등록하면

#Ansible: ansible cron job name

형식으로 등록 되는데 그 내용을 제거 해 주는 기능이다.

참고

How to remove or delete single cron job using linux command? https://askubuntu.com/questions/408611/how-to-remove-or-delete-single-cron-job-using-linux-command

cron - Manage cron.d and crontab entries. http://docs.ansible.com/ansible/latest/cron_module.html

반응형
Comments