명확하게 말하면 기본 파일이 아닌 crontab 항목에 주석을 달고 싶습니다. 보통은 그렇죠
크론탭 -e
30 * * * * /u01/app/abccompny/scripts/GenerateAWRReport.pl
01,31 * * * * /u01/app/abccompny/scripts/table_growth_monitor.sh
30 0,4,8,12 /u01/shivam/script/getMongoData.sh
각 줄 앞에 "#"을 추가하고 저장합니다. 다시 한번 작업이 완료되면 "#"을 제거합니다.
#30 * * * * /u01/app/abccompny/scripts/GenerateAWRReport.pl
#01,31 * * * * /u01/app/abccompny/scripts/table_growth_monitor.sh
#30 0,4,8,12 /u01/shivam/script/getMongoData.sh
스크립트를 사용하여 이를 수행하는 효율적인 방법이 있습니까?
답변1
현재 crontab을 파일로 내보내고 crontab을 삭제한 후 이전에 생성된 파일을 사용합니다.
$ crontab -l > cron_content
$ crontab -r
$ <this is where you do your stuff>
$ crontab cron_content
답변2
cron을 다른 파일에 복사하고 변경한 다음 cron을 다시 적용합니다.
cron을 일부 파일에 복사하십시오.
crontabl -l > filename
이제 filename
크론이 있으므로 크론을 사용하여 신청할 수 있습니다.
crontab filename
주석은 #으로 시작하므로 줄 시작 부분에 #을 추가하고 제거하겠습니다.
주석을 추가하고 제거하려면 다음을 사용할 수 있습니다.sed
댓글 삭제(#)
sed -i -e 's/^# //g' filename
코멘트 추가(#)
sed -i -e 's/^/# /g' filename
다음을 사용하여 크론을 적용합니다.
crontab filename
예약된 작업을 확인하세요
crontab -l
Happy Scripting
답변3
다음 스크립트를 사용하여 crontab에서 주석을 추가하거나 제거할 수 있습니다.
#!/bin/bash
# you must have permission to read the crontab
if [[ $1 == "-add" ]]; then
crontab -l > /tmp/cron_export
awk '$0="#"$0' /tmp/cron_export > /tmp/cron_comment
crontab -r
crontab cron_comment
elif [[ $1 == "-remove" ]]; then
crontab -l > /tmp/cron_export
awk '{ print substr($0,2) }' /tmp/cron_export > /tmp/cront_uncomment
crontab -r
crontab cron_uncomment
else
echo "no option was selected. Please use -add to add comments or -remove to remove comments"
fi
# Remove all the create files for the operations
for f in /tmp/cron*; do
[ -e "$f" ] && rm cron* || echo "No files to remove were found"
break
done
이 스크립트의 사용법은 다음과 같습니다:
댓글 추가
./youscriptname.sh -add
댓글 삭제
./youscriptname.sh -remove
답변4
오래된 게시물이지만 더 빠르고 간단한 해결책이 있다고 생각합니다.
Linux에서는 모든 것이 파일입니다. crontab은 각 사용자의 cron을 /var/spool/cron/에 저장합니다.
- 우분투 20.04:/var/spool/cron/crontabs/<사용자>
- RHEL7에서:/var/spool/cron/<사용자>
따라서 다음을 수행할 수 있습니다.
# comment
sed -i 's/^/#/' /var/spool/cron/<user>
# uncomment
sed -i 's/^#//' /var/spool/cron/<user>