Как запустить git pull из подпроцесса - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь запустить команду подпроцесса для выполнения git pull.

CWD хранилища Git: /home/ubuntu/Ingest.

id_rsa, который я использую с Github, расположен по адресу /home/ubuntu/.ssh/id_rsa.

Как мне запустить вызов подпроцесса, чтобы сделать следующее?

import shlex, subprocess
subprocess.call(shlex.split('git pull origin master'), cwd='/home/ubuntu/Ingest')

Лог выглядит так:

movies_ec2.py:43@__init__ [INFO] Version not up to date...Doing a git pull and exiting...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Сценарий запускается с cron и не запускается на id_rsa. (Примечание: я не собираюсь использовать GitPython). Что мне нужно изменить в моей работе или скрипте cron, чтобы это работало? Моя cron работа в настоящее время:

# sudo crontab -e
*/1 * * * * STAGE=production /home/ubuntu/Ingest/ingest/movies_ec2.py > /home/ubuntu/test.log 2>&1

1 Ответ

0 голосов
/ 29 августа 2018

Следующий ответ достаточно хорошо решает этот вопрос: Как указать в crontab, каким пользователем запускать скрипт? . Однако, короче говоря, это можно сделать, изменив пользователя в crontab на «ubuntu», который является текущим пользователем, который используется для создания всех файлов и т. Д.

$ sudo vim /etc/crontab
*/1 * * * *     ubuntu   /home/ubuntu/Ingest/ingest/movies_ec2.py > /home/ubuntu/test.log 2>&1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...