우리가 가지고 있는 다양한 서버에 jvm 기반 애플리케이션을 배포하는 bash로 작성된 배포 스크립트가 있습니다. 배포 파일은 Windows 시스템에 패키지된 다음 putty의 scp 명령을 사용하여 zip 파일이 서버에 준비됩니다.
push.ps1 스크립트는 다음과 같습니다.
Remove-Item "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deploy\run\package.zip" -Force
Copy-Item -Path "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deploy\run\*" -Exclude @("debug.sh", "deploy.sh", "main.sh") -Destination "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deploy\package\scripts"
Compress-Archive -Path "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deploy\package" -DestinationPath "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\package.zip" -Force
Move-Item -Path "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\package.zip" -Destination "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deploy\run\package.zip" -Force
Compress-Archive -Path "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deploy\run" -DestinationPath "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deployment.zip" -Force
$pscpOutput = ""
pscp -pw shhhhh...secret! "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deployment.zip" [email protected]:/home/dev/deployment/ | Out-String | Tee-Object -Variable "pscpOutput" | Out-Null
Write-Verbose $pscpOutput
Remove-Item "C:\All\Scripts\Linux\JDA\deployments\dev-20160808\deployment.zip" -Force
# ./deploy.sh -p package.zip -j /home/dev/x -r forward -d -t
실행하는 동안 터미널에서 cp 오류를 발견했습니다.
| 20160810 21:08:41 UTC | 20160810 17:08:41 EDT | > Deployment: 375 -> Copying Deployment Package /templates for dev environment files...
| 20160810 21:08:41 UTC | 20160810 17:08:41 EDT | > Deployment: 376 -> cp -fr "/home/dev/deployment/package/templates/env/dev/." "/home/dev/x/jda/optimizer/runtimes/version/16.1.1/templates/env/dev/"
cp: cannot stat ‘/home/dev/deployment/package/templates/env/dev/.’: Permission denied
나는 디렉토리를 확인했고 이전에 본 적이 없는 다음과 같은 결과를 얻었습니다.
텍스트가 빨간색으로 채워지는 이유는 무엇입니까? ? ? 분수?
답변1
읽기 및 실행 권한이 있는지 확인하기 위해 경로에 있는 다른 상위 디렉터리의 권한을 확인합니다. 디렉터리에 실행 권한이 없을 때 비슷한 문제가 발생하는 것을 보았습니다.