Nginx 캐시에서 항목을 제거하는 Bash 스크립트

thd

Ubuntu에서 Nginx를 실행하고 있습니다. Nginx 캐시에서 항목을 삭제하는 스크립트를 작성하려고합니다.

스크립트 : clear_single_cache_object.sh

#!/bin/bash
echo "Deleting: " $1
grep -lr $1 /path/to/cache/* | xargs rm
echo "Done"

이 스크립트는 내 홈 디렉토리에 있으며 다음과 같이 터미널에서 스크립트를 실행합니다.

sh clear_single_cache_object.sh '/images/test.jpg'

출력은 다음과 같습니다.

Deleting: /images/test.jpg
: No such file or directory
Done

즉, 스크립트가 작동하지 않고 항목이 캐시에서 제거되지 않았습니다. 또한 스크립트를 루트로 실행하려고 시도했습니다.

터미널에 다음 명령을 입력하면 제대로 작동하고 항목이 캐시에서 제거됩니다.

grep -lr '/images/test.jpg' /path/to/cache/* | xargs rm

스크립트를 실행할 때 작동하지 않는 이유는 무엇입니까? 스크립트의 "| xargs rm"부분과 관련이 있다고 생각합니다.

무루

첫째, glen jackman 이 가까웠습니다. 스크립트가 CR-LF ( \r\n) 줄 끝을 사용하고 있습니다. 예를 들어 CRLF 줄 끝을 사용하여 스크립트를 수동으로 다시 만들었습니다.

$ cat foo.sh     
#!/bin/bash
echo "Deleting: " $1
grep -lr $1 foo.txt | xargs echo
echo "Done"
$ file foo.sh 
foo.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators
$ sh foo.sh bar
Deleting:  bar
: No such file or directory
Done

다음을 설치 dos2unix하고 변환하여 사용 하여 줄 끝을 일반 형식으로 변경하십시오 .

sudo apt-get install dos2unix
dos2unix clear_single_cache_object.sh

둘째, 당신은 shebang을 제공하고 있기 때문에 왜 스크립트를 호출 sh합니까? 실행 가능하게 만들고 제대로 실행하십시오.

chmod +x clear_single_cache_object.sh
./clear_single_cache_object.sh /images/test.jpg

그렇게했다면 문제를 더 일찍 발견했을 수 있습니다.

$ ./foo.sh 
bash: ./foo.sh: bad interpreter: /bin/bash^M: no such file or directory

셋째, 편집기를 수정하십시오. Windows에서 스크립트를 만든 다음 서버에 복사하는 경우 Unix 줄 끝 (LF)을 지원하는 Notepad ++와 같은 괜찮은 편집기를 사용하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

줄에 주석을 달고 주석을 제거하는 Bash 스크립트

분류에서Dev

Python 스크립트 내에서 .bash_history와 같은 최신 항목을 설정 해제하거나 제거합니다.

분류에서Dev

파일을 숨기거나 표시하는 Bash 스크립트

분류에서Dev

단어 목록을 포함하는 줄을 제거하는 Bash 스크립트

분류에서Dev

Bash 스크립트에서 awk의 echo가 줄 바꿈을 제거하는 이유는 무엇입니까?

분류에서Dev

줄 바꿈을 제거하는 Bash 스크립트?

분류에서Dev

줄 바꿈을 제거하는 Bash 스크립트?

분류에서Dev

조건에서 다른 항목을 제거하도록 스크립트 수정

분류에서Dev

자바 스크립트를 사용하여 배열에서 중복 항목을 제거하는 방법

분류에서Dev

공백 및 목록 항목을 제거하는 스크립트

분류에서Dev

sed를 사용하여 bash 스크립트에서 정확한 문자열을 포함하는 행을 제거하십시오.

분류에서Dev

Cygwin에서 Jenkins Console에 bash 스크립트 실행을 표시하는 방법

분류에서Dev

Mac의 Bash 스크립트에서 Chrome을 실행하려는 문제

분류에서Dev

histroy에서 마지막 10 줄을 삭제하는 bash 스크립트

분류에서Dev

BASH 스크립트에서 다음 줄을 피하는 방법

분류에서Dev

html에서 공백을 대체하는 bash 스크립트

분류에서Dev

apollo-client의 클라이언트 측 캐시에서 항목을 제거하는 올바른 방법

분류에서Dev

쉘 스크립트 (bash)의 인수 목록에서 마지막 인수 제거

분류에서Dev

화면 잠금에서 '모션'을 시작하는 Bash 스크립트

분류에서Dev

화면 잠금에서 '움직임'을 시작하는 Bash 스크립트

분류에서Dev

스트립 (자식을 제거하는 동안 링크에서

분류에서Dev

Bash 스크립트는 PID를 반복하고 항목을 죽입니다.

분류에서Dev

파일 이름 내에서 GUID를 제거하는 Bash 셸 스크립트

분류에서Dev

x, y 또는 z로 시작하지 않는 모든 텍스트 줄을 제거하는 bash 스크립트 작성

분류에서Dev

자바 스크립트의 목록에서 행을 제거하는 방법

분류에서Dev

bash 스크립트에 stdin을 해당 bash 스크립트에서 호출되는 python 스크립트에 전달하고 싶습니다.

분류에서Dev

스크립트에서 실행할 때 Bash 스크립트가 명령을 제대로 실행하지 않음

분류에서Dev

BASH 스크립트는 Java 스캐너에 값을 입력합니다.

분류에서Dev

쉘 스크립트의 목록에서 항목을 제거하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    줄에 주석을 달고 주석을 제거하는 Bash 스크립트

  2. 2

    Python 스크립트 내에서 .bash_history와 같은 최신 항목을 설정 해제하거나 제거합니다.

  3. 3

    파일을 숨기거나 표시하는 Bash 스크립트

  4. 4

    단어 목록을 포함하는 줄을 제거하는 Bash 스크립트

  5. 5

    Bash 스크립트에서 awk의 echo가 줄 바꿈을 제거하는 이유는 무엇입니까?

  6. 6

    줄 바꿈을 제거하는 Bash 스크립트?

  7. 7

    줄 바꿈을 제거하는 Bash 스크립트?

  8. 8

    조건에서 다른 항목을 제거하도록 스크립트 수정

  9. 9

    자바 스크립트를 사용하여 배열에서 중복 항목을 제거하는 방법

  10. 10

    공백 및 목록 항목을 제거하는 스크립트

  11. 11

    sed를 사용하여 bash 스크립트에서 정확한 문자열을 포함하는 행을 제거하십시오.

  12. 12

    Cygwin에서 Jenkins Console에 bash 스크립트 실행을 표시하는 방법

  13. 13

    Mac의 Bash 스크립트에서 Chrome을 실행하려는 문제

  14. 14

    histroy에서 마지막 10 줄을 삭제하는 bash 스크립트

  15. 15

    BASH 스크립트에서 다음 줄을 피하는 방법

  16. 16

    html에서 공백을 대체하는 bash 스크립트

  17. 17

    apollo-client의 클라이언트 측 캐시에서 항목을 제거하는 올바른 방법

  18. 18

    쉘 스크립트 (bash)의 인수 목록에서 마지막 인수 제거

  19. 19

    화면 잠금에서 '모션'을 시작하는 Bash 스크립트

  20. 20

    화면 잠금에서 '움직임'을 시작하는 Bash 스크립트

  21. 21

    스트립 (자식을 제거하는 동안 링크에서

  22. 22

    Bash 스크립트는 PID를 반복하고 항목을 죽입니다.

  23. 23

    파일 이름 내에서 GUID를 제거하는 Bash 셸 스크립트

  24. 24

    x, y 또는 z로 시작하지 않는 모든 텍스트 줄을 제거하는 bash 스크립트 작성

  25. 25

    자바 스크립트의 목록에서 행을 제거하는 방법

  26. 26

    bash 스크립트에 stdin을 해당 bash 스크립트에서 호출되는 python 스크립트에 전달하고 싶습니다.

  27. 27

    스크립트에서 실행할 때 Bash 스크립트가 명령을 제대로 실행하지 않음

  28. 28

    BASH 스크립트는 Java 스캐너에 값을 입력합니다.

  29. 29

    쉘 스크립트의 목록에서 항목을 제거하려면 어떻게해야합니까?

뜨겁다태그

보관