![crontab 항목용 쉘 스크립트](https://linux55.com/image/157801/crontab%20%ED%95%AD%EB%AA%A9%EC%9A%A9%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
다음 작업을 수행하기 위해 쉘 스크립트를 작성해 달라는 요청을 받았습니다.
다음에서 크로엔트리 업데이트
\*/15 * * * * /bin/sh /opt/myscript/myscript.sh > /tmp/myscript.check.out
도착하다
\*/30 2,4,6 * * * /bin/sh /opt/myscript/myscript2.sh > /tmp/myscript2.check.out
편집하기 전에 cronentry를 백업하십시오.
다음 스크립트를 시도했는데 작동하는지 또는 수정이 필요한지 확인해야 합니다. 도와주세요!
cronentry의 쉘 스크립트 업데이트(편집 전 백업)
#!/bin/sh
crontab -l > my_crontab.backup
crontab -l | grep -v "*/30 2,4,6 * * * /bin/sh /opt/myscript/myscript2.sh > /tmp/myscript2.check.out" >*/15 * * * * /bin/sh /opt/myscript/myscript.sh > /tmp/myscript.check.out
echo "*/30 2,4,6 * * * /bin/sh /opt/myscript/myscript2.sh > /tmp/myscript2.check.out" >>*/15 * * * * /bin/sh /opt/myscript/myscript.sh > /tmp/myscript.check.out
crontab */15 * * * * /bin/sh /opt/myscript/myscript.sh > /tmp/myscript.check.out
답변1
특정 crontab 항목을 삭제하고 다른 항목으로 바꾸려고 합니다.
다음 명령을 사용하여 기존 crontab 일정을 텍스트 파일로 덤프할 수 있습니다.
crontab -l >crontab-old.txt
기존 crontab 항목이 다음과 같다는 것을 알고 있다고 가정합니다.정확히
*/15 * * * * /bin/sh /opt/myscript/myscript.sh > /tmp/myscript.check.out
(추가 공백 없음) 다음을 crontab-old.txt
사용하여 파일에서 필터링할 수 있습니다.
grep -v -x -F '*/15 * * * * /bin/sh /opt/myscript/myscript.sh > /tmp/myscript.check.out' crontab-old.txt >crontab-new.txt
crontab-new.txt
파일 에 새로운 계획을 추가하려면 다음을 수행하십시오.
cat <<'END_ENTRY' >>crontab-new.txt
*/30 2,4,6 * * * /bin/sh /opt/myscript/myscript2.sh > /tmp/myscript2.check.out
END_ENTRY
마지막으로 다음 코드를 사용하여 새 일정을 로드합니다.
crontab crontab-new.txt
이제 crontab-old.txt
이전 계획과 crontab-new.txt
새 계획이 있고 새 계획이 로드되었습니다.
당연히 넌 그래야 해바라보다이 작업을 수동으로 실행하거나 이를 수행하기 위한 스크립트를 개발하는 경우 위의 각 단계 사이에서 파일을 검토하여 올바르게 편집되었는지 확인하세요.
스크립트에서는 다음과 같이 보일 수 있습니다.
#!/bin/sh
crontab -l >crontab-old.txt
grep -v -x -F '*/15 * * * * /bin/sh /opt/myscript/myscript.sh > /tmp/myscript.check.out' crontab-old.txt >crontab-new.txt
cat <<'END_ENTRY' >>crontab-new.txt
*/30 2,4,6 * * * /bin/sh /opt/myscript/myscript2.sh > /tmp/myscript2.check.out
END_ENTRY
crontab crontab-new.txt
이 명령은 주어진 패턴을 일치시키는 grep
데 사용됩니다.-F
문자열로정규 표현식이 아닌 패턴에는 *
정규 표현식의 특수 문자가 포함되어 있으므로 를 사용하면 -F
이러한 문자를 특수하게 처리하지 않고도 문자열을 일치시킬 수 있습니다. 나는 또한 -x
강제 성공 일치를 사용하여 일치시킵니다.완전한 라인, 줄의 일부가 아닌 처음부터 끝까지.
또한 관련: