강타하는 초보자입니다. 죄송합니다.
이름에 "bifn*0.2e"가 포함된 current_directory 아래의 모든 디렉터리를 입력한 다음 이름에 "acc"가 포함된 파일을 1분마다 자동으로 삭제하는 스크립트를 생성하고 싶었습니다. 이는 다른 프로세스에 의해 지속적으로 생성됩니다. 이것이 내가 가지고 있는 것이고 작동하는 것 같습니다.
#!/bin/bash
while true
do
find /current_directory/bifn*0.2e* -name '*acc*' -mmin +1 -delete
sleep 60
done
그러나 ./auto_remove 스크립트를 실행한 후 Ctrl+Z를 눌러 bg
백그라운드 실행을 유지했습니다. 터미널을 종료한 후에도 이 스크립트가 파일을 계속 제거하기를 원했습니다. 그 부분도 효과가 있어요. 하지만 이제 나는 그것이 하고 있는 일을 죽일 수 없으며 스크립트가 진행되고 있다는 증거도 볼 수 없습니다(단, acc 파일이 제거되고 있다는 점은 제외!). 입력을 시도했거나 주석 처리 ps fjx
된 jobs.
찾기 행을 사용하여 스크립트를 다시 실행해 보았습니다.
그러니 지금 하고 있는 일을 멈출 수 있도록 도와주세요! 그리고 나중에 사용할 수 있도록 필요할 때 종료할 수 있으면서 내가 하고 싶은 일을 더 우아하게 수행할 수 있는 방법은 무엇일까요?
답변1
글쎄, 종료 문제를 발견했습니다. 해당 스크립트를 실행하는 특정 노드에 로그인한 다음 kill을 실행해야 했습니다. 앞으로 이 문제를 어떻게 피할 수 있을지 아직 잘 모르겠습니다.
답변2
스크립트의 절반은 불필요합니다. 시간에 대한 모든 확인을 제거하십시오. 이름을 확인하고 삭제하도록 설정하면 됩니다. 그런 다음 매분마다 crontab에 설정하십시오. 어떤 이유로든 중지하려면 실행 줄에 주석을 달아 cron을 중지하고 cron을 다시 시작하면 됩니다.