crontab 파일 내부의 이름 바꾸기

crontab 파일 내부의 이름 바꾸기

내 질문에 대한 답변을 얻을 수 있도록 파일 이름을 바꾸고 더 자세한 내용을 입력하고 싶었습니다.

crontab에 아래 줄이 있습니다

00 * * * * /home/@@@@/ulimit_nofile_status_20480.sh >> /export/####/$$$$$/ulimit_nofile_status.txt

00 * * * * /home/@@@@/ulimit_nproc_status_20480.sh >> /export/####/%%%%/ulimit_nproc_status.txt

파일 이름을 각각 및 ulimit_nofile_status_20480.shulimit_nproc_status_20480.sh변경 하고 싶습니다 .ulimit_nofile_status_40960.shulimit_nproc_status_40960.sh

즉, 20480을 40960으로 이름을 바꾸고 싶습니다.

아래 명령을 시도했지만 작동하지 않았습니다.

crontab -l | sed 's#/_20480\.#/40960.#' | crontab -
crontab -l | sed 's/\<_20480\>/40960/' | crontab -
"sed -i s//40960/" crontab -e

답변1

정규 표현식이 이상해요. 다음이 작동합니다.

crontab -l | sed 's#_20480\.#_40960.#' | crontab -

귀하의 시도에서는 밑줄 앞에 슬래시가 있어야 했지만 물론 파일에 슬래시가 없으므로 crontab정규식은 아무것도 일치하지 않았습니다.

당신은 다음 20480으로 바꾸고 싶다고 말했지만 40960여러 시도 중 숫자 앞의 밑줄도 제거하려는 것처럼 보입니다. 그것이 맞다면 분명히 교체 문자열에서 삭제하십시오.

나는 당신이 그렇지 않으면 좋은 시도였을 것이라는 것을 sed인식하지 못한다고 추측합니다.\<

귀하가 시도한 마지막 시도는 유효한 구문에서 지금까지 제거되었기 때문에 의미 있게 언급할 수 없다고 생각합니다. 문자열을 sed -i s//40960/명령 이름으로 사용하려고 시도하는 것으로 구문 분석하고 인수를 사용 crontab하여 -l매개변수로 전달합니다.

관련 정보