Execute Command 노드 관련 일반적인 문제
n8n v2.29Execute Command 노드에서 발생하는 몇 가지 일반적인 오류와 문제, 그리고 이를 해결하거나 문제를 해결하는 단계를 안내합니다. 이 오류는 셸 환경이 Command 파라미터에 있는 명령 중 하나를 찾을 수 없을 때 발생합니다.
Execute Command 노드에서 발생하는 몇 가지 일반적인 오류와 문제, 그리고 이를 해결하거나 문제를 해결하는 단계를 안내합니다.
Command failed: <command> /bin/sh: <command>: not found#
이 오류는 셸 환경이 Command 파라미터에 있는 명령 중 하나를 찾을 수 없을 때 발생합니다.
이 오류를 해결하려면 다음을 확인하세요.
- Command 파라미터에서 명령과 인수에 오타가 없는지 확인하세요.
- n8n을 실행하는 사용자의
PATH에 해당 명령이 있는지 확인하세요. - Docker로 n8n을 실행 중이라면, 해당 명령을 수동으로 실행해 보아 컨테이너 내에서 사용 가능한지 확인하세요. 명령이 컨테이너에 포함되어 있지 않다면, 해당 명령을 포함하는 사용자 지정 이미지로 공식 n8n 이미지를 확장해야 할 수 있습니다.
- n8n이 이미 실행 중인 경우:
# Find n8n's container ID, it will be the first column docker ps | grep n8n # Try to execute the command within the running container docker container exec <container_ID> <command_to_run> - n8n이 실행 중이 아닌 경우:
# Start up a new container that runs the command instead of n8n # Use the same image and tag that you use to run n8n normally docker run -it --rm --entrypoint /bin/sh docker.n8n.io/n8nio/n8n -c <command_to_run>
- n8n이 이미 실행 중인 경우:
Error: stdout maxBuffer length exceeded#
이 오류는 명령이 반환하는 출력이 Execute Command 노드가 한 번에 처리할 수 있는 양보다 많을 때 발생합니다.
이 오류를 방지하려면 명령이 생성하는 출력을 줄이세요. 명령의 매뉴얼 페이지나 문서를 확인하여 출력을 제한하거나 필터링하는 플래그가 있는지 확인하세요. 그런 플래그가 없다면, 출력을 다른 명령으로 파이프하여 불필요한 정보를 제거해야 할 수도 있습니다.
PowerShell 명령이 줄바꿈 지점에서 잘리는 문제#
Windows에서 Execute Command 노드는 Command 파라미터를 시스템 셸에 하나의 문자열로 전달합니다. 명령에 줄바꿈이 포함되어 있으면, 셸은 첫 번째 줄만 실행하고 나머지는 무시합니다.
이는 Windows 셸의 제한 사항입니다. 내부적으로 사용되는 cmd.exe 프로세스는 각 줄바꿈을 명령의 끝으로 처리합니다.
이를 해결하려면 PowerShell 명령을 한 줄로 작성하세요. 명령이 복잡하다면, 세미콜론으로 문장을 연결하세요.
powershell -Command "Get-ChildItem C:\Data; Write-Output 'Done'"
더 긴 스크립트의 경우, 스크립트를 파일로 저장한 후 -File 플래그를 사용해 실행하세요.
powershell -File C:\Scripts\my-script.ps1
```</content>