Crontab mit SVN und Git

Crontab mit SVN und Git

Ich habe einige Repos, die sowohl in SVN als auch in Git sind. Mein Benutzername ist guyfawkes und in meinem Home-Verzeichnis habe ich den Ordner www, der alle meine Repos enthält. In diesem Verzeichnis habe ich auch die Datei update.sh:

[guyfawkes@guyfawkes-desktop ~/www]$ cat update.sh
cd /home/guyfawkes/www
cd crm
echo "upd crm"
svn up
echo "update crm completed"
echo "-------"
cd ../crm_sql
echo "upd sql"
svn up
echo "update sql completed"
echo "-------"
cd ../crm_old
echo "upd old"
svn up
echo "update old completed"
echo "-------"
cd ../mysqldiff
echo "upd mysqldiff"
git pull sotmarket master
echo "update mysqlidff completed"
git push origin master
echo "push to github completed"
echo "-------"
cd ../mysql-migration-manager
echo "upd mmmm"
git pull
echo "mmm updated"
cd data
echo "upd data"
git pull
echo "data updated"

Meine Crontab ist:

[guyfawkes@guyfawkes-desktop ~/www]$ crontab -l
*/5 * * * * /home/guyfawkes/www/update.sh

Es funktioniert also perfekt mit SVN-Repos, aber ich habe diese E-Mails in /var/spool/mail/guyfawkes (von cron):

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/guyfawkes>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=guyfawkes>
X-Cron-Env: <USER=guyfawkes>

upd crm

Fetching external item into 'public/old'
External at revision 32674.

At revision 483.
update crm completed
-------
upd sql
At revision 29.
update sql completed
-------
upd old
At revision 32674.
update old completed
-------
upd mysqldiff
Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly
update mysqlidff completed
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
push to github completed
-------
upd mmmm
Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly
mmm updated
upd data
Permission denied (publickey,keyboard-interactive).
fatal: The remote end hung up unexpectedly
data updated

Wie kann ich das Problem beheben?

Antwort1

Das Problem besteht darin, dass Sie versuchen, von GitHub aus zu aktualisieren, wofür ein SSH-Schlüssel erforderlich ist. Erstellen Sie entweder einen dedizierten SSH-Schlüssel ohne Kennwort auf Ihrem Server und fügen Sie ihn Ihrem GitHub-Konto hinzu oder verwenden Sie die HTTP-Readonly-URI, um Ihr Repository zu aktualisieren:

git pull --mirror https://github.com/account/repository.git

verwandte Informationen