내 직장에서는 일반적으로 다음 구문을 사용하여 Linux 서버에서 스크립트를 실행합니다.
./<whatever absolute path to script>/<script>
분명히 이것은 올바른 사용자와 올바른 권한으로 실행되면 일반적으로 스크립트를 실행합니다.
이제 최근에 서버에 어떤 변경 사항이 적용되었는지 전혀 알 수 없습니다. SA는 종종 알림을 전혀 제공하지 않고 업그레이드, 패치 및 수정 사항을 관리합니다. 문제는 최근 동일한 구문을 사용하여 스크립트를 실행하려고 하면 "스크립트를 찾을 수 없음"으로 인해 실행에 실패한다는 것입니다.
해결 방법은 다음과 같은 유효한 구문을 사용하는 것입니다.
bash /<whatever absolute path to script>/<script>
저는 SA 또는 Unix 서버 구성 전문가가 아닙니다. 이러한 문제가 발생하는 이유와 해결 방법을 아는 사람이 있습니까?
미리 감사드립니다.
답변1
예제에서 절대 경로를 언급했듯이 다음 명령을 사용해야 합니다.
/<whatever absolute path to script>/<script>
oa 점은 상대 경로 검색을 의미하기 때문입니다(점은 현재 디렉터리입니다). 사용 지점은 현재 디렉터리가 /
(루트) 인 경우에만 유효합니다.
또한 권한 및 실행 플래그를 확인하세요. Sor 스크립트에서는 읽기 권한도 설정해야 합니다.
답변2
ls -l
스크립트가 있는 디렉터리에서 스크립트를 실행하여 스크립트가 "실행 가능"한지 확인할 수 있습니다. 출력의 첫 번째 열에는 소유자, 그룹 또는 다른 사람의 "linux 권한"이 표시됩니다.
실행 가능 비트가 설정되었음을 나타내는 "x"가 표시됩니다.
-rwxr-xr-x
이 예에는 세 개가 있으므로 파일 소유자, 소유 그룹의 모든 사람 및 다른 사람이 파일을 실행할 수 있습니다. 권한 비트에 대한 다음 블로그 항목을 찾았습니다.https://www.linuxfoundation.org/blog/blog/classic-sysadmin-understanding-linux-file-permissions.
답변3
- 스크립트가 실행 가능한지 확인하세요.
chmod +x <name of the script>
PATH
어디서나 실행하려면 해당 위치에 배치하세요. 경로를 찾으려면 다음을 실행하세요.echo $PATH