현재 CentOS 6 서버에서 다른 사람이 남긴 엉망을 정리하고 있습니다. 6 시간마다 github 계정에 백업해야하는 응용 프로그램이 있습니다. 데이터 준비를 담당하는 스크립트가 있으며 git add 및 git commit을 처리합니다.cron 작업에서 git push가 작동하지 않습니다.
git push는 "expect"스크립트로 처리됩니다. 이것은 ssh가 요청할 때 passphrase가 git push로 전달 될 수 있도록 수행되었습니다. 사용자는 빈 암호 문구를 사용하고 싶지 않습니다.
루트 사용자가 bash 쉘의 명령 행에서 실행할 때 스크립트가 정상적으로 실행됩니다. github로 전송 된 파일을 볼 수 있습니다.
루트에서 만든 crontab에서 스크립트를 실행하면 스크립트가 실행되는 것처럼 보이지만 git 푸시는 발생하지 않습니다. 수동으로 git push를 실행하면 스크립트가 실패한 후 명령 줄에서 호출 한 설명서와 함께 발생해야하는 푸시가 발생합니다. 스크립트에서 발생한 푸시가 캐시되고 github에 푸시되지 않은 것 같습니다.
누구나 내가 여기에없는 것을 제안 할 수 있습니까? 이런 스크립트 내에서 git push를 작동시킬 수 있습니까?
감사
리처드
명령을 수동으로 수행 할 때 루트로 실행합니까? sudo가 아닌가? – Lynch
cron에서 명령이 실패하는 일반적인 이유는 cron 작업에 의해 실행되지 않기 때문에 .profile에 설정된 환경 변수에 의존한다는 것입니다. – Barmar
명령을 수동으로 실행할 때 루트로 실행합니다. –